OpenGL 中的视口更改如何以及何时发生? (gl视口)
How and when does viewport change happen in OpenGL? (glViewport)
我有一个关于计算机图形管道的问题。
在OpenGL中,我们通常在reshape回调中使用glViewport函数。
听说glViewport跟viewport transformation有关
在我们的顶点着色器中,我们通常会计算我们的顶点,并使这些顶点在裁剪坐标(归一化裁剪立方体)中定义。
视口变换什么时候起作用?
我猜如果顶点着色器将顶点信息输出到光栅化器,然后管道会转换这些顶点信息。
X(v) = (x + 1)/2 * 宽度 + 左
y(v) = (y + 1)/2 * 高度 + 底部。
(视口变换)
因此,我认为 glViewport 只是设置在完成顶点着色器工作后如何进行视口变换。
对吗?
In OpenGL, we usually use glViewport function in reshape callback
不,"we"不。 glViewport
属于展示功能
Consequently, I thought glViewport just set how to work viewport transformation after finishing vertex shader work.
是的,这就是它的工作原理。本质上,视口只是另一个变量,与制服没有太大区别,它包含顶点变换步骤的参数。然而,由于转换的最后一步,同质划分和裁剪是硬连线的,视口转换发生在之后,它必须单独设置。
我有一个关于计算机图形管道的问题。
在OpenGL中,我们通常在reshape回调中使用glViewport函数。 听说glViewport跟viewport transformation有关
在我们的顶点着色器中,我们通常会计算我们的顶点,并使这些顶点在裁剪坐标(归一化裁剪立方体)中定义。
视口变换什么时候起作用?
我猜如果顶点着色器将顶点信息输出到光栅化器,然后管道会转换这些顶点信息。
X(v) = (x + 1)/2 * 宽度 + 左 y(v) = (y + 1)/2 * 高度 + 底部。 (视口变换)
因此,我认为 glViewport 只是设置在完成顶点着色器工作后如何进行视口变换。
对吗?
In OpenGL, we usually use glViewport function in reshape callback
不,"we"不。 glViewport
属于展示功能
Consequently, I thought glViewport just set how to work viewport transformation after finishing vertex shader work.
是的,这就是它的工作原理。本质上,视口只是另一个变量,与制服没有太大区别,它包含顶点变换步骤的参数。然而,由于转换的最后一步,同质划分和裁剪是硬连线的,视口转换发生在之后,它必须单独设置。