Realistic lighting (sunlight) with Three.js?

后端 未结 2 943
天命终不由人
天命终不由人 2021-02-01 05:51

I\'m attempting to create a small 1st-person game using Three.js, but I\'m having trouble with the lighting. Basically I want to simulate the sun and have it rotate around casti

2条回答
  •  心在旅途
    2021-02-01 06:15

    Yes, you'll have to use multiple lights to achieve this, faking the reflected light. Computing real reflected light isn't built in (and computationally very complex/expensive). You have a variety of options.

    A second directional light that could always be in the opposite position and direction of your sun.

    A hemisphere light that remains constant. Hemisphere lighting gets a sky color and a ground color and intensity and adds a nice extra bit of depth to your lighting.

    //                                    sky color ground color intensity 
    hemiLight = new THREE.HemisphereLight( 0x0000ff, 0x00ff00, 0.6 ); 
    

    here's a working example http://mrdoob.github.com/three.js/examples/webgl_lights_hemisphere.html

    you could use any combination of different lights but be careful there's a performance trade off.

    It's also worth mentioning half-lambert shading which is enabled by setting the wrapAround property to true in your material. This gives a nicer falloff to black that results in less harsh lighting. More mid tones and less blacks.

提交回复
热议问题