OpenGL管道中的剪切空间

jai*_*esh 0 opengl graphics pipeline clipping matrix

剪切和投影如何在简化的解释中工作?它与标准化顶点和矩阵乘法有关,包括将x,y,z除以第四个变量.我无法理解实际发生的事情.

fra*_*llt 5

它非常简单.剪切是指如果原始(点,线或三角形)可见的过程.(并且在模型视图*投影矩阵变换之后完成)如果三角形是部分可见的,则将三角形分成更多适合于平截头体的三角形.

裁剪完成后,我们需要对顶点(x,y,z,w)坐标进行标准化,以便将它们投影到屏幕(窗口坐标).这称为透视分割:新坐标是x,y,z,1 = x/w, y/w, z/w, 1.Windows坐标取决于视口设置,转换非常简单.

window_x = viewport_x + vertex_x * half_viewport_width + half_viewport_width;
window_y = viewport_y + vertex_y * half_viewport_height + half_viewport_height;
Run Code Online (Sandbox Code Playgroud)