3 .js——发光的球体

Three.js - sphere that glows

本文关键字:js      更新时间:2023-09-26

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

如果你想创建一个发光风格的效果,我在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

希望这对你有帮助!

meshPhong材质有参数'emissive'和'shininess'会影响材质着色器内的计算,但这些不会给你想要的效果,它们只是用于计算最终的颜色。

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

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

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

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

因为你没有一个具体的问题,所以我不能给你一个具体的答案。你似乎有点迷路了,所以这里有一件事你可能会错过:为了让一个东西看起来像光源,它必须做两件事:

  1. 照亮:你通过在里面创建一个新的光对象来实现这一点。这是一个好主意,把你的对象和光在一个新的THREE.Object3D。
  2. 辉光:你需要创建一个着色器来模糊对象周围的像素。我在这里找到了一个专门针对three.js的教程:three.js glow tutorial.

你可以尝试一些更高级的技术,比如添加光线。

祝你好运

相关文章:
  • 没有找到相关文章