![]() |
1
130
这里有些混乱。
OpenGL是 在物体空间和世界空间。 但是在窗口空间(又名屏幕空间),我们突然 左撇子 . ?
远的 和 应该是肯定的 远的 近的 . 说 远的 =1。则C=—(1001)/(999)=-1.002。 看到了吗 here 从一个 正射透视 ,格洛托生成一个矩阵:
左边 正确的 和 顶部 只是 the coordinates for left vertical , right vertical , bottom horizontal , top horizontal clipping planes (resp) . 这个 近的 和 远的 但是飞机, 有不同的规定 . 这个 近的 参数定义为
而且远:
减号有效地将z按-1缩放 左手左转 在视图转换过程中,大多数人并不知道,因为他们只是在OpenGL中作为一个“右手”坐标系工作。 所以,如果你打电话
你前面10个单位 负z轴 "By default, the camera is situated at the origin, points down the negative z-axis, and has an up-vector of (0, 1, 0)." ). 所以近平面是z=-10。远点的飞机是 你身后10个单位,z=+10 |
![]() |
2
25
默认情况下,标准化设备坐标为左手坐标。 glDepthRange默认为[0,1](near,far),使+z轴指向屏幕,+x向右,+y向上,这是一个左手系统。
引用以前的 answer from Nicol :(罢工通过是我的工作,解释如下)
我确实找到了一部分,因为它与我的发现有出入。 要么改变脱党 或 |
![]() |
3
13
仅NDC你应该注意到 OpenGL只知道NDC! 无论使用什么坐标系——左手坐标系还是右手坐标系——都需要镜像到NDC。如果你愿意,你完全可以把世界空间当作左手坐标系来处理。 为什么我们在世界空间中通常使用右手坐标系?我觉得这很传统。就是这样。也许它只是想区别于DirectX。 |
![]() |
4
7
书中说:
我不完全同意“两者都不是”的说法,但这可能是一个哲学问题。 |
|
5
3
编辑:如果你不相信我,只要在你的顶点着色器中添加一个转换矩阵,你就可以很容易地看到Opengl是否是左撇子。 |
![]() |
6
0
通过使用OpenGL内置的投影和变换函数,观察屏幕上的运动遵循 右手的 坐标系。例如,如果视图前面的对象沿z轴正方向平移,则该对象将向您移动。 左撇子 坐标系。 还有一个坐标系,那就是视口!视口的坐标系为+x指向右侧,+y指向下方。我认为在这一点上用手是没有意义的,因为我们现在只处理x,y。 最后,引擎盖下的gluLookAt必须否定lookat向量。因为数学假设一个向量指向它正在看的对象的正方向,而摄影机向下看-z,所以必须对“注视”向量求反,以便它与摄影机对齐。
|
![]() |
Jimmy Yang · 何时需要进行透视分割? 2 年前 |
![]() |
Max Mister · 使用鼠标事件计算相机的位置和旋转 6 年前 |
![]() |
Lane will · OpenGL选择区域 6 年前 |
![]() |
synchronizer · openGL 2D视差滚动纹理撕裂/接缝 6 年前 |
![]() |
Steven Venham · OpenGL单通道到多通道的可行性 6 年前 |
![]() |
Andrew Lundgren · 如何在OpenTK(迷你地图!) 6 年前 |
![]() |
Kevin Su · 无法在opengl中正确绘制我的汽车 6 年前 |
![]() |
user1832287 · 来自细分控制点的边上的瑕疵 6 年前 |