Three.js - 发光的球体

kar*_*sss 9 javascript geometry light three.js

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

Abs*_*thm 3

meshPhong 材质具有影响材质着色器内计算的参数“emissive”和“shininess”,但这些参数不会给您带来所需的效果,它们仅用于计算最终颜色。

例如,您可以将聚光灯放置在球体的确切位置,这样它就会照亮周围的物体。然而,如果你想实现发光球体的效果,你就必须编写后处理着色器:

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

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

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