首页 > 其他分享 >OpenGL 鼠标位置转换世界坐标系 射线实现方法

OpenGL 鼠标位置转换世界坐标系 射线实现方法

时间:2023-02-09 10:06:24浏览次数:48  
标签:鼠标 OpenGL -- 矩阵 posNDS mousey mousex 坐标系


[-1 --  1]mousex  [1 -- -1]mousey
裁剪坐标系全是 1 -1  直接就z=1  x=2*mousex/winWidth-1;  y=1-2*mousey/winHeight


vec4 posNDS(x,y,z,1.0)  然后本身是MVP得到的


pro的逆矩阵*posNDS一下得到视觉坐标系 再view的逆矩阵*一下 得到世界坐标系

然后全部/W 这里W是1 相机位置搭配这个位置 可以得到相机为起点的射线


逆矩阵就不要手动求了 一般的库都有这个功能的吧。。

标签:鼠标,OpenGL,--,矩阵,posNDS,mousey,mousex,坐标系
From: https://blog.51cto.com/u_11889343/6045834

相关文章

  • OpenGL绘制球
    有俩角度a是球面点与z轴正方向夹角另一个是b是连线在xy这个面的投影与x正轴夹角 R作为球半径每个点的xyzz很好看出来就是R*cosa     R*sina得到在xy平面......
  • OpenGL API学习记录 glBlitFramebuffer
    glBlitFramebuffer将FBO中指定的东西copy到指定地方去配合bind函数使用下面例子拷贝的颜色缓存在延迟渲染时可以拷贝GL_DEPTH_BUFFER_BIT来结合正向渲染和延迟渲染glBin......
  • OpenGL API学习记录glBufferData glBuferSubData glBindBufferRange
    glBufferDataglBufferSubDataglBindBufferRange第一个参数为targetbuffer第二个这个是把buffer的内容进行修改第三个有点像malloc但这个是UBO学到的先设定好第二个参数ind......
  • OpenGL API学习记录glMapBuffer
    除了glBufferSubData还有MapBuffer这种方式来修改数据floatdata[]={0.5f,1.0f,-0.35f...};glBindBuffer(GL_ARRAY_BUFFER,buffer);//获取指针void*ptr=glMapB......
  • OpenGL三点求圆心
    思路先手一个平面方程三个点到圆心距离相等三个方程3-12-1联立构造构成这样的矩阵D移到右边xyz就变为半径就  ......
  • OpenGL 视锥体求法
    讲的是假设P是空间的一点(x,y,z)写成vec4(x,y,z,1)最终[-1,1]的时候P2(x1/w1,y1/w1,z1/w1,1) 然后proj*viewModelMatrix之后第一行是abcd第四行是efgh那么a*x+b*y+c*z+d=......
  • 干货分享 | UE游戏鼠标双击判定
    UE虚幻引擎对于游戏开发者来说都不陌生,市面上有47%主机游戏使用虚幻引擎开发游戏。作为是一款游戏的核心动力,它的功能十分完善,囊括了场景制作、灯光渲染、动作镜头、粒子特......
  • 发送post请求,鼠标移入显示内容
    <!DOCTYPEhtml><html> <head> <metacharset="utf-8"> <title> </title> <style> #result{ width:300px; height:100px; border:1pxsolid......
  • Selenium学习之鼠标键盘操作
     在测试的时候,我们不可避免地需要用到鼠标键盘操作,那么在自动化测试中如何编写对应的代码呢?这就不得不提到Selenium中的ActionChains模块。ActionChains,顾名思义就是动作......
  • 自定义鼠标右键菜单
     鼠标右键弹出框<template><divclass="conversation-item-menubox-shadow1"><spanclass="menu-itemoperation-text"@click.stop="openNewPage">打......