你能在 three.js 中反映几何体(不是纹理)吗?
Can you reflect geometry (not textures) in three.js?
我找到了很多three.js反射图像的例子,但是完全可以反射直线、三角形和形状吗?我想创建一个反射线条的镜像金字塔。
例如:http://www.gus.graphics/buffer.html >这个页面有很多行。
我想将它们反映到位于中间的 3d 形状上。
例如:http://www.gus.graphics/ball1.html>本页有镜球
这些是我正在查看的代码行。不确定是否可行。
var textureCube = THREE.ImageUtils.loadTextureCube( urls );
var material = new THREE.MeshBasicMaterial( { color: 0xffffff, envMap: textureCube } )
shader.uniforms[ "tCube" ].value = textureCube;
目前上面的代码正在接收一堆图像 "urls",但你现在可能知道我想在我提供的第一个 link 中反映几何形状。
你可以看看THREE.CubeCamera
。它创建了 6 个渲染到 WebGLRenderTargetCube 的相机,然后将其用作 envMap。一个例子是:
//Create cube camera
var cubeCamera = new THREE.CubeCamera( 1, 100000, 128 );
scene.add( cubeCamera );
//Create material and mesh
var chromeMaterial = new THREE.MeshLambertMaterial( { color: 0xffffff, envMap: cubeCamera.renderTarget } );
var car = new Mesh( carGeometry, chromeMaterial );
scene.add( car );
//Update the render target cube
car.setVisible( false );
cubeCamera.position.copy( car.position );
cubeCamera.updateCubeMap( renderer, scene );
//Render the scene
car.setVisible( true );
renderer.render( scene, camera );
看到这个:http://threejs.org/docs/#Reference/Cameras/CubeCamera
这里也有用法示例:
我找到了很多three.js反射图像的例子,但是完全可以反射直线、三角形和形状吗?我想创建一个反射线条的镜像金字塔。
例如:http://www.gus.graphics/buffer.html >这个页面有很多行。
我想将它们反映到位于中间的 3d 形状上。
例如:http://www.gus.graphics/ball1.html>本页有镜球
这些是我正在查看的代码行。不确定是否可行。
var textureCube = THREE.ImageUtils.loadTextureCube( urls );
var material = new THREE.MeshBasicMaterial( { color: 0xffffff, envMap: textureCube } )
shader.uniforms[ "tCube" ].value = textureCube;
目前上面的代码正在接收一堆图像 "urls",但你现在可能知道我想在我提供的第一个 link 中反映几何形状。
你可以看看THREE.CubeCamera
。它创建了 6 个渲染到 WebGLRenderTargetCube 的相机,然后将其用作 envMap。一个例子是:
//Create cube camera
var cubeCamera = new THREE.CubeCamera( 1, 100000, 128 );
scene.add( cubeCamera );
//Create material and mesh
var chromeMaterial = new THREE.MeshLambertMaterial( { color: 0xffffff, envMap: cubeCamera.renderTarget } );
var car = new Mesh( carGeometry, chromeMaterial );
scene.add( car );
//Update the render target cube
car.setVisible( false );
cubeCamera.position.copy( car.position );
cubeCamera.updateCubeMap( renderer, scene );
//Render the scene
car.setVisible( true );
renderer.render( scene, camera );
看到这个:http://threejs.org/docs/#Reference/Cameras/CubeCamera
这里也有用法示例: