reflection - ThreeJS 中的镜像反射怪癖

标签 reflection 3d three.js shader mirror

(免责声明:关于 SO 的第一篇文章。我已经在 SO 和其他地方搜索过这个问题的答案,但是虽然确实出现了镜子和反射,但我没有找到与我的特定问题相关的任何内容。)

Problematic Mirror

这是我在 ThreeJS 中的第一个场景,其中大部分都是基于官方示例( super 有帮助!)。正如您所看到的,无论出于何种原因,镜面反射从大多数角度来看都是黑色/碎片的,因此它仅在非常窄的范围内显示出正确的反射。 (探索其他角度来了解我在说什么。)

相关代码:

  // MIRROR

verticalMirror = new THREE.Mirror( renderer, camera, { clipBias: 0.003, textureWidth: 1024, textureHeight: 1024, color:0x889999 } );

var verticalMirrorMesh = new THREE.Mesh( new THREE.PlaneBufferGeometry( 300, 300 ), verticalMirror.material );
verticalMirrorMesh.add( verticalMirror );
verticalMirrorMesh.position.y = 100;
verticalMirrorMesh.position.z = -500;
scene.add( verticalMirrorMesh );

在渲染函数中:

function render()
{
  renderer.render( scene, camera );
  verticalMirror.renderWithMirror( verticalMirror );
}

我尝试过修改纹理设置和剪辑偏差,但没有成功,整个代码主要基于 The ThreeJS reference example for Mirror

任何和所有的帮助将不胜感激 - 谢谢!

最佳答案

谢谢WestLangley , verticalMirror.render() 挽救了局面!镜子现在反射得很漂亮。在我更好地了解它的作用之前,我会避免使用 renderWithMirror

非常感谢。

关于reflection - ThreeJS 中的镜像反射怪癖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29188828/

相关文章:

java - Java 中的抽象类和反射

c# - 将 Action 转换为 LambdaExpression

algorithm - 如何将形状对齐在一起? (几何最佳拟合算法)

opengl - 用点填充任意 3D 几何体的方法

javascript - Safari iOS 8 上的 Webgl 图像纹理失败

c# - PetaPoco - 动态类型的属性名称

javascript - Babylon.js 场景未加载

three.js - object.updateWorldMatrix 不是函数

three.js - 将 GLSL 3 ES 与 Three.js 结合使用

java - 我怎么知道自动装箱后是否是原始类型?