2015-11-06 71 views
0

我正在使用ShaderMaterial为渲染纹理生成噪点。THREE.MeshPhongMaterial.displacementMap映射负值

然后,我使用生成的纹理作为使用phong阴影材质的平面上的位移贴图。

会发生什么情况是位移贴图将从[0-displacementScale]开始。 意思是说我的噪声纹理将每个像素被解释为:0x000000处像素意味着0顶点偏移和0XFFFFFF像素意味着displacementScale值...

我以为displacementBias,让我来映射范围内,但它种只是抵消了“平均水平”。

我想知道我怎么能映射范围从displacementMap所以0x000000处可能意味着如:-100和0XFFFFFF可能意味着100 ...

回答

1

在源文件中displacementmap_vertex.glsl,你会发现位移公式:

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

所以你的情况,设置displacementBias = -100和displacementScale = 200

three.js所r.73