【问题标题】:Clipping Space In OpenGL PipelineOpenGL管道中的裁剪空间
【发布时间】:2012-01-14 16:29:45
【问题描述】:
在简化的解释中,剪切和投影是如何工作的?它与归一化顶点和矩阵乘法有关,其中涉及将 x,y,z 除以第四个变量。我无法理解实际发生的情况。
【问题讨论】:
标签:
opengl
graphics
matrix
pipeline
clipping
【解决方案1】:
它非常简单。
裁剪是表示原始(点、线或三角形)是否可见的过程。 (并且在模型视图*投影矩阵变换之后完成)如果三角形部分可见,则三角形被分割成更多适合平截头体的三角形。
剪辑完成后,我们需要对顶点 (x,y,z,w)坐标进行归一化,以便将它们投影到屏幕上(窗口坐标)。这称为透视分割:新坐标为x,y,z,1 = x/w, y/w, z/w, 1。视窗坐标依赖于视口设置,变换非常简单。
window_x = viewport_x + vertex_x * half_viewport_width + half_viewport_width;
window_y = viewport_y + vertex_y * half_viewport_height + half_viewport_height;