gpt4 book ai didi

opengl - 在 OpenGL 顶点着色器中,w 是什么,为什么要除以它?

转载 作者:行者123 更新时间:2023-12-03 07:20:01 25 4
gpt4 key购买 nike

void main(void)
{
vec4 clipCoord = glModelViewProjectionmatrix * gl_Vertex;
gl_Position = clipCoord;

gl_FrontColor = gl_Color;

vec3 ndc = clipCoord.xyz / clipCoord.w;

因此,clipCoord 只是进行标准的固定管道转换。为什么我要除以 w,我能从中得到什么?

最佳答案

W是三维顶点的第四个坐标;该顶点称为齐次顶点坐标。

简单来说,W 分量是除以其他向量分量的因子。当 W 为 1.0 时,齐次顶点坐标被“归一化”。要比较两个顶点,您应该将 W 值标准化为 1.0。

考虑顶点 (1,1,1,1)。现在增加 W 值 (w > 1.0)。标准化位置正在缩放!它会回到原点。考虑顶点 (1,1,1,1)。现在减小 W 值 (W < 1.0)。标准化位置将达到无限点。

除了缩放顶点坐标之外,W 坐标也是必需的,因为您必须将 4x4 矩阵(模型 View 和/或投影矩阵)与 4x1 矩阵(顶点)相乘。

当然,红皮书是明确的指南:

Red Book Appendix

关于opengl - 在 OpenGL 顶点着色器中,w 是什么,为什么要除以它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2422750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com