Opengl es WebGL/Three.js着色器.r和.g是什么意思?
所以我通过示例学习着色器,我经常看到.r和.g,这两个字母是什么意思 我甚至不知道该用谷歌搜索什么,因为我不知道在GL着色器程序中使用这两个字母G和R的术语和用法Opengl es WebGL/Three.js着色器.r和.g是什么意思?,opengl-es,three.js,webgl,Opengl Es,Three.js,Webgl,所以我通过示例学习着色器,我经常看到.r和.g,这两个字母是什么意思 我甚至不知道该用谷歌搜索什么,因为我不知道在GL着色器程序中使用这两个字母G和R的术语和用法 vec2 uvNoiseTimeShift = vUv + noiseScale * vec2( noiseGeneratorTimeShift.r, noiseGeneratorTimeShift.g ); 当用g替换r时,效果似乎是
vec2 uvNoiseTimeShift = vUv + noiseScale * vec2( noiseGeneratorTimeShift.r,
noiseGeneratorTimeShift.g );
当用g替换r时,效果似乎是一样的,所以我不确定这些属性的作用是什么。这是所谓的,返回向量的相应分量,其中,
r
对应于x
等等。所以x和y在webgl中的名称不同?我在本文中不理解的是我们为什么需要它们。如果使用myVec.x
或者myVec.r
或者myVec.s
或者甚至myVec[0]
,都没有关系。它们都返回或设置相同的值。这是一种更好的访问向量组件的方法。我非常感谢您提供的信息,尤其是术语,因为我现在能够进一步加深我的知识。也希望它能帮助其他用户。我需要再等5分钟才能接受你的回答如果他们说“r”表示红色,“g”表示蓝色,那么接受的答案会更有意义。这是一种GLSL方法,用于访问向量的R、G、B和a(lpha)。十、 Y、Z和W也可以用在它们的位置上,因为它们的意思是相同的,向量的第一、第二、第三和第四个元素。@beiller哇,这非常有用。谢谢他们选择x、y、z、w作为替代品有什么原因吗?颜色和顶点位置的基本数据格式是相同的,一个浮点数数组。所以这是为了方便起见,在做向量数学时可以使用xyz,在处理代码中的颜色时可以使用rgb。@beiller这非常有用。顺便问一下,贝勒,你可能对我关于mipmapping stackoverflow.com/questions/3404978/mipmap-a-planet-in-three-js的最新问题感兴趣