目标:计算顶点着色器中移位顶点的法线。
当前状态:我不相信的一些hacky代码是100%正确的。
---进步---
vert是顶点
的修改位置vertNormal是应用于法线的顶点的修改位置(基本上是克隆)
vec3 objectNormal = normalize(cross(vert-position,vertNormal-position));
vec3 transformedNormal = normalMatrix * objectNormal;
vNormal = normalize( transformedNormal );
http://fallingcode.com/servedFiles/normals.jpg
此时我只需要一些有关顶点着色器代码部分的反馈。
答案 0 :(得分:0)
在@ WestLangley的帮助下,我达到了目标。图像中的波只是为了显示结果。我必须研究方程式,使它们看起来更自然。
因此,正常计算法线并且环境反射(THREE.JS立方体贴图)也正常工作。
http://www.fallingcode.com/servedFiles/calculatedNormals.jpg
顶点着色器中的以下代码用于计算顶点沿法线移动后的法线(在本例中为z轴)。
CnewV = CnewV + alpha2 * r