Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js lensflare显示和渲染太慢_Three.js - Fatal编程技术网

Three.js lensflare显示和渲染太慢

Three.js lensflare显示和渲染太慢,three.js,Three.js,我想让lensflare三人一组工作。 当距离相机有一定距离时,它似乎可以正常工作,但如果我将相机移动到距离镜头约50个单位或更短的距离,光斑就会消失!为什么? 更新: 在进一步调查之后,我注意到lensflare在webgl_lensflares.html示例中运行良好。问题是当我尝试将它添加到ThreeJS编辑器时。将其添加到编辑器会导致3个问题: 渲染变得非常缓慢 当我旋转场景时,镜头水平旋转良好,但当我移动场景时,镜头水平移动方向相反 如果我把lensflare放在(0,0,0),当我离

我想让lensflare三人一组工作。 当距离相机有一定距离时,它似乎可以正常工作,但如果我将相机移动到距离镜头约50个单位或更短的距离,光斑就会消失!为什么?

更新: 在进一步调查之后,我注意到lensflare在webgl_lensflares.html示例中运行良好。问题是当我尝试将它添加到ThreeJS编辑器时。将其添加到编辑器会导致3个问题:

  • 渲染变得非常缓慢
  • 当我旋转场景时,镜头水平旋转良好,但当我移动场景时,镜头水平移动方向相反
  • 如果我把lensflare放在(0,0,0),当我离它太近时它就会消失,但是如果我把它放在远离原点的地方,比如(0,10,0),它就没有这个问题
  • 以下是我在Viewport.js中添加到编辑器的代码:

        var textureLoader = new THREE.TextureLoader();
        var textureFlare0 = textureLoader.load("textures/lensflare/lensflare0.png");
        var flareColor = new THREE.Color(0xffffff);
        flareColor.setHSL(0.55, 0.9, 0.5 + 0.5);
        var lensFlare = new THREE.LensFlare(textureFlare0, 100, 1.0, THREE.AdditiveBlending, flareColor);
        lensFlare.position.set(0, 0, -10);
        scene.add(lensFlare);
    

    我找到了我所有3个问题的答案:

  • Netbean调试器正在减慢渲染速度。一旦我关闭Netbean调试器,它就会变得更快。我仍然注意到flare渲染会稍微降低渲染速度,但至少现在可以使用了
  • lensfare将反向移动的原因是我将1.0作为其第三个参数传递。应该是0.0
  • 在(0,0,0)处我看不到耀斑的原因是因为在该位置上有另一个形状。显然,如果耀斑位于另一个形状内,则它不可见。我错误地认为flare是最后渲染的,因此始终可见

  • 什么镜头光斑?您使用的是THREE.js示例吗?还是编写/下载/复制自定义后期处理着色器?请包括您所拥有的、您试图纠正问题的内容以及帮助我们重现您所看到的内容的示例代码等详细信息。我使用的是这三个.js示例:webgl_lensflares.htmlI无法重现您所看到的问题。这就是说,更新镜头光斑的代码在示例中,因此您可以观察相机移动时发生的情况。比较远处的摄影机与您描述的非常近的摄影机的结果。我的猜测是,其中一个结果值正在变成
    NaN
    ,这导致耀斑位置未定义。您可能应该提供一些代码,无法说明错误。要检查的一件事是您为相机设置的“近剪裁平面”的值
    3.PerspectiveCamera(45,宽/高,11000),是否有一个高值作为此构造函数的第三个参数?谢谢你们两位的帮助。请参阅上面更新的问题+代码。