javascript
three 天空球_javascript – 分配给相机的three.js天空盒
我正在嘗試將天空盒分配給播放器相機.
當相機移動時(天空箱隨之移動),紋理會變得拉長.
如何擺脫這個?
碼:
var textureCube = THREE.ImageUtils.loadTextureCube( urls );
textureCube.format = THREE.RGBFormat;
var shader = THREE.ShaderUtils.lib[ "cube" ];
shader.uniforms[ "tCube" ].value = textureCube;
cubematerial = new THREE.ShaderMaterial({
fragmentShader: shader.fragmentShader,
vertexShader: shader.vertexShader,
uniforms: shader.uniforms,
depthWrite: false,
side: THREE.BackSide
});
skyBox = new THREE.Mesh(new THREE.CubeGeometry(1000,1000,1000), cubematerial);
camera.add(skyBox);
最佳答案 因此,在深入研究Three.js示例之后,我找到了一種方法.
http://learningthreejs.com/blog/2011/08/15/lets-do-a-sky/已經過時了.示例中使用的方法是使用固定攝像頭將天空盒添加到第二個場景中,并渲染兩個場景.查看webgl_materials_cars.html示例.
另外因為我使用分配給角色的第三人稱相機,我必須從角色相機到天空盒相機進行世界旋轉.這可以在渲染時完成:
function render(){
skyboxCamera.rotation.setEulerFromRotationMatrix( new THREE.Matrix4().extractRotation( camera.matrixWorld ), skyboxCamera.eulerOrder );
renderer.render(skyboxScene, skyboxCamera);
renderer.render(scene, camera);
}
總結
以上是生活随笔為你收集整理的three 天空球_javascript – 分配给相机的three.js天空盒的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三星显示投资 4.1 万亿韩元升级牙山工
- 下一篇: 三星投资4.1万亿韩元用于OLED生产