【问题标题】:Sprite not showing renderToTexture Map / rendertarget map精灵不显示渲染到纹理贴图/渲染目标贴图
【发布时间】:2013-09-22 05:43:28
【问题描述】:

我正在使用three.js,我设置了第二个场景和相机,并在其中添加了一个圆柱体。现在我设置了一个渲染目标,我想在一个精灵(HUD-Sprite 可以这么说)上显示这个渲染场景,但是精灵没有显示出来。我在原始场景中添加了一个平面,它完美地显示了渲染目标。

我已经检查过的内容:

1) 当使用 rtTexture 作为 MeshLambertMaterial 的贴图时,效果非常好

2) 当使用 ImageUtils 为 sprite 加载图像并将其用作 SpriteMaterial 的贴图时,它工作得很好,并且样条线显示在它应该在的位置!

我觉得我忽略了一些东西。 如果有人可以帮助我,那就太好了。

好的,伙计们,我创建了一个 jsFiddle,也许这会有所帮助!

My Fiddle for RenderTarget Sprite Problem

如您所见,rendertarget 正确显示在平面上,并且其中有一个带有屏幕空间坐标的 sprite,但它不显示 renderTarget。

rttMaterial = new THREE.SpriteMaterial( { color: 0xFF0000, map: rtTexture, 
                                         alignment: THREE.SpriteAlignment.topLeft,
                                         useScreenCoordinates: true}  );

提前谢谢你

【问题讨论】:

  • 花了我一段时间,但设法让Sprite 只显示了一张简单的地图。 jsfiddle.net/Pk85y/40 虽然可能不支持在 Sprite 上使用 RTT 纹理。我认为您应该将其作为功能请求发布在 github 上。

标签: javascript three.js webgl


【解决方案1】:

您必须在 WebGLRenderer 的背后进行此操作,因为它不受支持。

sprite.material.map.__webglTexture = rtTexture.__webglTexture;

小提琴:http://jsfiddle.net/Pk85y/47/

three.js r.61

【讨论】:

  • 酷,非常感谢您的回答!所以,你比我更有洞察力:为什么渲染目标中的圆柱体是纯红色的? MeshNormal-Shader 是否在渲染过程中此时未处理?无论如何,非常感谢。说不定以后能有PR来支持这种东西,反正太好了! :)
  • 哈哈,真的!!!没看到,挺有意思的。 :) 西,非常非常感谢您的努力!继续为 Three.js 做贡献 :)
猜你喜欢
  • 1970-01-01
  • 2010-10-02
  • 2015-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多