在OpenGL中视口如何以及何时发生更改?(GLV视口)

在OpenGL中视口如何以及何时发生更改?(GLV视口),opengl,graphics,transformation,vertex-shader,raster-graphics,Opengl,Graphics,Transformation,Vertex Shader,Raster Graphics,我有一个关于计算机图形管道的问题 在OpenGL中,我们通常在重塑回调中使用glViewport函数。 我听说glViewport与视口变换有关 在我们的顶点着色器中,我们通常计算顶点,并使这些顶点在剪裁坐标(规范化剪裁立方体)中定义 视口转换何时工作 我猜如果顶点着色器将顶点信息输出到光栅化器,那么管道将转换这些顶点信息 X(v)=(X+1)/2*宽度+左侧 y(v)=(y+1)/2*高度+底部。 (视口变换) 因此,我认为glViewport只是在完成顶点着色器工作后设置如何进行视口变换 是

我有一个关于计算机图形管道的问题

在OpenGL中,我们通常在重塑回调中使用glViewport函数。 我听说glViewport与视口变换有关

在我们的顶点着色器中,我们通常计算顶点,并使这些顶点在剪裁坐标(规范化剪裁立方体)中定义

视口转换何时工作

我猜如果顶点着色器将顶点信息输出到光栅化器,那么管道将转换这些顶点信息

X(v)=(X+1)/2*宽度+左侧 y(v)=(y+1)/2*高度+底部。 (视口变换)

因此,我认为glViewport只是在完成顶点着色器工作后设置如何进行视口变换

是这样吗

在OpenGL中,我们通常在重塑回调中使用glViewport函数

不,“我们”没有
glViewport
属于显示功能

因此,我认为glViewport只是在完成顶点着色器工作后设置如何进行视口变换

是的,这就是它的工作原理。从本质上讲,视口只是另一个变量,与统一变量没有太大区别,它包含顶点变换步骤的参数。但是,由于变换的最后一步,同质分割和剪裁是硬连线的,视口变换在这之后发生,因此必须单独设置