Din*_*ino 2 camera three.js directional-light
在我的三个 js 设置中,我对定向光进行了以下设置:
private aLight: THREE.DirectionalLight;
this.aLight = new THREE.DirectionalLight(0xffffff, 1.0);
this.aLight.position.set(-5, 5, 5);
this.aScene.add(this.aLight);
Run Code Online (Sandbox Code Playgroud)
为了让光线跟随我的相机并始终照亮我的网格,我在渲染函数中设置了以下内容:private onRender() {
this.aLight.position.copy(this.aCamera.getWorldPosition());
window.requestAnimationFrame(_ => this.onRender());
this.aRenderer.render(this.aScene, this.aCamera);
Run Code Online (Sandbox Code Playgroud)
现在,物体总是被照亮:
但是如果我放大面向相机的表面是暗的:
我想让我的光总是从我的相机指向物体。我究竟做错了什么?
如果您希望光源与您的相机重合,最简单的解决方案是使用点光源并将其添加为相机的子项。您可以使用这样的模式:
camera.position.set( 10, 10, 10 );
scene.add( camera ); // required in this case since the camera will have a child
// ambient
scene.add( new THREE.AmbientLight( 0xffffff, 0.1 ) ); // optional
// light
var light = new THREE.PointLight( 0xffffff, 1 );
camera.add( light );
Run Code Online (Sandbox Code Playgroud)
如果您使用的是平行光,请记住平行光有一个target属性,一个Object3D。因此,如果放大,则可能需要更改target.position. 正如我上面所解释的,使用点光源更容易。
三.js r.86
| 归档时间: |
|
| 查看次数: |
1805 次 |
| 最近记录: |