THREE.MeshPhongMaterial.displacementMap映射负值

时间:2015-11-06 05:41:29

标签: three.js

我使用ShaderMaterial为渲染纹理生成噪点。

然后我使用phong着色材料在平面上使用生成的纹理作为displacementMap。

会发生的是位移图将从[0-displacementScale]开始。 这意味着我的噪声纹理将按像素解释为:0x000000像素表示0顶点偏移,0xffffff像素表示displacementScale值...

我认为displacementBias允许我映射范围,但它只是抵消了平均值"。

我想知道如何映射displaMap的范围,所以0x000000可能意味着例如:-100而0xffffff可能意味着100 ......

1 个答案:

答案 0 :(得分:1)

在源文件displacementmap_vertex.glsl中,您将找到位移公式:

transformed += normal * ( texture2D( displacementMap, uv ).x * displacementScale + displacementBias );

因此,在您的情况下,请设置displacementBias = -100和displacementScale = 200。

three.js r.73