2017-01-27 2 views
1

赤い点灯を除いて、完全に白いシーンを作りたいです。だから、基本的には現在どのような光が届いていないのか黒でなければなりません。 どのように私はこれを達成することができますか?赤い点灯が付いた白いシーン

答えて

0

独自のコードの欠如にもかかわらず、あなたはこれが白にシーン「背景」色を設定しますrenderer.setClearColor(0xFFFFFF, 1)

で起動することがあります。あなたは、自分の材料/テクスチャなどを嫌うシーンの子供たちに対処しなければならないでしょう

また、可能な影で作業したり、霧を使用する必要があります。

1

シーンの色を反転させるパスを使用するよりも、想像もできませんでした。アイデアはhereから取られました。

const uniforms = { 
    "tDiffuse": { 
    type: "t", 
    value: null 
    } 
}; 

const vertexShader = ` 
varying vec2 vUv; 
    void main() { 
    vUv = uv; 
    gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0 ); 
} 
` 

const fragmentShader = ` 
varying vec2 vUv; 
uniform sampler2D tDiffuse; 
void main() { 
    vec4 color = texture2D(tDiffuse, vUv); 
    gl_FragColor = vec4(1.0 - color.x, 1.0 - color.y, 1.0 - color.z, 1.0); 
} 
` 

var shader = { 
    uniforms: uniforms, 
    vertexShader: vertexShader, 
    fragmentShader: fragmentShader 
} 

... 
composer = new THREE.EffectComposer(renderer); 
composer.addPass(new THREE.RenderPass(scene, camera)); 

var pass = new THREE.ShaderPass(shader); 
composer.addPass(pass); 
pass.renderToScreen = true; 
pass.enabled = true; 

、その後、アニメーションループであなたは

composer.render(scene, camera); 

を配置する必要があります代わりにrenderer.render(scene, camera);

jsfiddle例の

PS誰かが良いアイデアを持っている場合は、私がしたいのですがそれについて知っている。 enter image description here

関連する問題