Three.js - 发光的球体

新手上路,请多包涵

我有个问题。我想制作一个像光源(太阳)一样工作的球体。我发现 meshPhongMaterial 有一个类似 emissive: colorshininess: intensity 选项,但我没有设法对太阳进行编码。有谁知道该怎么做?谢谢你的回答!

原文由 karlosss 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

meshPhong 材质具有影响材质着色器内计算的“自发光”和“光泽度”参数,但这些参数不会为您提供所需的效果,它们仅用于计算最终颜色。

例如,您可以将聚光灯放在与球体相同的位置,这样它就会照亮它周围的物体。但是,如果要实现发光球体的效果,则必须编写后处理着色器:

  • 将球体渲染到帧缓冲区 1。
  • 将相同的球体渲染成黄色(或其他亮色)到帧缓冲区 2。
  • 模糊帧缓冲区 2 中的内容作为后处理效果。
  • 将原始图像(帧缓冲区 1)和模糊帧缓冲区 2 混合在一起以生成最终图像。

此外,一些示例不使用实际的后处理来实现发光,但它们使用技巧。

您渲染球体,然后在背面渲染一些带有“发光光环”纹理的四边形。访问:http: //threegraphs.com/charts/sample/world/ 了解如何模拟辉光并围绕球体创建类似日食的圆圈。

原文由 Dragan Okanovic 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果你想创建一个发光风格的效果,我在 http://stemkoski.github.io/Three.js/ 上写了一些可能有用的例子,包括:

http://stemkoski.github.io/Three.js/Selective-Glow.html

随附的博客文章

http://stemkoski.blogspot.com/2013/03/using-shaders-and-selective-glow.html

以及更加大气风格的发光效果

http://stemkoski.github.io/Three.js/Atmosphere.html

http://stemkoski.github.io/Three.js/Shader-Halo.html

希望这可以帮助!

原文由 Stemkoski 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏