![]() |
1
4
vulkan中的着色器和投影的行为与opengl中的完全相同。深度范围(opengl中的[1,1],[0,1]在vulkan中)或坐标系原点(opengl中的左下角,vulkan中的左上角)存在微小差异,但原理完全相同。硬件仍然是一样的,它在opengl和vulkan中以同样的方式执行计算。 四分量矢量有多种用途:
所有这些我们都可以用4x4矩阵来实现,因此我们需要4个分量向量(因此它们可以乘以4x4矩阵)。同样,我写这篇文章是因为上面的规则同时适用于opengl和vulkan。
所以为了
在正交投影中,硬件执行的步骤完全相同,但用于计算的值不同。因此透视分割步骤仍然由硬件执行,但它什么也不做(位置被1.0分割)。 |
![]() |
2
2
投影矩阵描述从场景中的三维视图点到视口中的二维点的映射。它从眼睛空间转换到剪辑空间,剪辑空间中的坐标通过与
在透视投影中,投影矩阵描述了从针孔相机看到的世界上的3d点到视区的2d点的映射。
透视投影矩阵:
当
Cartesian coordinate
通过透视投影矩阵对视空间进行变换,得到的结果是
齐次坐标
.这个
|
![]() |
3
0
在计算机图形学中,变换用矩阵表示。如果要旋转某个对象,则将其所有顶点(向量)乘以旋转矩阵。想让它移动吗?乘以平移矩阵等。
TL;博士:
你不能用3D矩阵和向量来描述Z轴上的平移。你至少还需要1个维度,所以他们只是添加了一个虚拟维度
无论如何,现在我们先来快速回顾一下矩阵乘法:
你基本上
所以如果你要翻译一个向量,你需要像:
看看怎么做
但是,如果你能确定
现在更清楚的是这个矩阵允许你在x-y平面上移动
但你看到这里的图案了吗?有了三维矩阵和三维向量,你就可以在二维中描述所有的基本运动。那么如果我们增加一个第四维呢?
看起来很熟悉。如果我们继续
我们走了,现在你得到所有3轴的翻译。这就是所谓的齐次坐标。
但是,如果您正在进行一些大型复杂的转换,导致
接下来,看看每个组件是如何收缩的
|
![]() |
char8_t · Vulkan Android上带有MSAA的黑屏 7 年前 |
|
Clmelissa · 在vulkan中使用main旁边的不同入口点 7 年前 |
![]() |
Max · 我在用vulkan绘制图像时有一个错误 7 年前 |
![]() |
Antoine Morrier · 编写RGBA8图像作为R32UI 7 年前 |
![]() |
hidayat · 在Vulkan中翻转视口 7 年前 |