lensflare disppearing和渲染太慢

时间:2017-04-14 17:54:25

标签: three.js

我正试图让lensflare在ThreeJS中工作。 当与相机有距离时似乎功能正常,但如果我将相机移动到大约50个单位或更少距离到镜头光晕,则闪光消失!为什么呢?

更新 经过进一步调查后,我注意到lensflare在webgl_lensflares.html示例中工作正常。问题是当我尝试将其添加到ThreeJS编辑器时。将其添加到编辑器会导致3个问题:

  1. 渲染变得非常缓慢。
  2. 旋转场景时,lensflare旋转正常,但当我移动场景时,lensflare向相反方向移动。
  3. 如果我将lensflare放在(0,0,0),当它离它太近时会消失,但是如果我把它放在远离原点的地方,如(0,10,0)它没有那个问题。
  4. 以下是我在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);
    

1 个答案:

答案 0 :(得分:0)

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

  1. Netbean调试器正在减慢渲染速度。一旦我关闭了Netbean调试器,它变得更快。我仍然注意到耀斑渲染会使渲染速度变慢但现在至少可以使用。
  2. 镜头推动反对方向的原因是因为我将1.0作为第3个参数传递。应该是0.0
  3. 在(0,0,0)我看不到耀斑的原因是因为那个位置上有另一个形状。如果它是另一种形状的内部位置,显然耀斑是不可见的。我错误地认为耀斑最后呈现,因此总是可见。