一直很好奇这些变量怎么回事,各处google搜集整理了这些GPU里用到的变量的历史和细则:
rgba不用多说啊,就是四个颜色分量:red,green,blue,alpha
xyzw,三维坐标系的齐次坐标
stpq,重点要说的,是描述纹理坐标用的
从OpenGL说起:
第一版的OpenGL Programming Guide解释:“纹理坐标可以由一维,二维,三维或者思维组成。一般用strq来区别于对象的坐标xyzw和计算用的坐标uv。一维用s,二维用st,现在r被忽略掉没用,或许将来有用”
我感觉用s的理由是因为s一般用来代表一个"scalar"(标量)。所以是一维数字。t是因为字母表s后面的字母。不能继续用u和v是因为uv已经被他们用来作计算用的坐标了。因此就用了向前的字母了。(strq)淡然,后来他们发现r与rgba的r冲突了,就用p替换了r。就是stpq了。
动画工具一般用t来表示时间的概念,所以就不用s和t来表示纹理的坐标了。因此,他们就用了u和v,因为他们根本不关心相关的计算。
s和t的命名来自于对平面的描述:
r=r0+sv+tw
v和w是用来定义一个平面的两个向量,r0代表平面任意位置的一个点,s和t代表任意数字。(纹理就是那个平面)
图形渲染的那些rgba,xyzw,strq分量的是怎么命名的
最新推荐文章于 2024-07-03 20:30:00 发布