用于THREE.JS对象的自定义Phong着色器

时间:2015-07-13 01:15:55

标签: three.js webgl shader

目标:计算顶点着色器中移位顶点的法线。

当前状态:我不相信的一些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

此时我只需要一些有关顶点着色器代码部分的反馈。

1 个答案:

答案 0 :(得分:0)

在@ WestLangley的帮助下,我达到了目标。图像中的波只是为了显示结果。我必须研究方程式,使它们看起来更自然。

因此,正常计算法线并且环境反射(THREE.JS立方体贴图)也正常工作。

http://www.fallingcode.com/servedFiles/calculatedNormals.jpg

顶点着色器中的以下代码用于计算顶点沿法线移动后的法线(在本例中为z轴)。

CnewV = CnewV + alpha2 * r