If you want to use fog with your custom ShaderMaterial
, you need to be sure to specify the required fog uniforms
. For example,
var uniforms = {
topColor: { type: "c", value: new THREE.Color( 0x0077ff ) },
bottomColor: { type: "c", value: new THREE.Color( 0xffffff ) },
offset: { type: "f", value: 33 },
exponent: { type: "f", value: 0.6 },
fogColor: { type: "c", value: scene.fog.color },
fogNear: { type: "f", value: scene.fog.near },
fogFar: { type: "f", value: scene.fog.far }
}
var skyMat = new THREE.ShaderMaterial( {
vertexShader: vertexShader,
fragmentShader: fragmentShader,
uniforms: uniforms,
side: THREE.BackSide,
fog: true
} );
Also specify fogDensity
if you decide to use it. You will also have to incorporate the fog logic into your shader.
three.js r.59
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…