我如何为恒星建模?


22

我正在尝试在Unity中为一颗星星建模,并且可以完成一些工作,但这并不理想。目前,我使用的是一个大球体,其自发光材料的表面上包含星形纹理,并使用聚光灯来营造星光效果,如下所示:

在此处输入图片说明

虽然有效,但看起来并不是最大的。我正在寻找一种与喀尔巴太空计划如何塑造恒星类似的效果:

在此处输入图片说明

我怎样才能达到这种效果?


1
我不了解Unity,但是看起来您需要以“加法”混合模式进行绘制。
塔娜·布里姆霍尔

1
您总是可以朝这个方向前进:shadertoy.com/view/XdBSDh
艾伦·沃尔夫

4
您需要更加具体,并表明您已完成研究。有大量的信息可以用来绘制恒星。通常,您将使用面向2D相机的广告牌在普通星顶上渲染日冕。没有人能教您所有涉及如何在SE答案上造出逼真的明星的方法。这是来自《仙女座种子》游戏的好教程。seedofandromeda.com/blogs/51-procedural-star-rendering。另一个关于reddit的较粗糙的教程,但是很好的信息- 尽管如此,seedofandromeda.com / blogs / 51
Fuzzy Logic

在Unity中,将“材质的明暗器”更改为“加性”(我认为在“粒子”子菜单下,因为“加性”混合模式对粒子最有用)。
2015年

1
@Shane两年后,但迟到总比不到我猜想好。干杯.. reddit.com/r/gamedev/comments/33xuyj/procedural_star_rendering
Fuzzy Logic

Answers:


25
  • 使用动画纹理。*商店中有一些不错的产品,售价不到$ 10。
  • 添加一个光晕。您可以使用粒子系统,也可以仅使用太阳前面的广告牌上的透明发光纹理,并使用脚本在相机移动时重新放置纹理。这将隐藏球体模型的锯齿边缘,使您可以使用较低的多边形模型,并且看起来不错。
  • 缓慢旋转太阳。
  • 使用粒子系统进行喷发。
  • 使用自定义着色器使边缘与光晕匹配良好(将法线乘以摄影机向量即可找到边缘)。

动画的gif首先显示静态纹理,然后依次显示许多附加纹理:

  1. 动画纹理
  2. 根据法线增亮球体的边缘
  3. 添加带有白色/黄色光​​环的面向相机的透明广告牌
  4. 粒子从中心移到外部,然后褪色
  5. 添加2个透明的“射线”广告牌,它们面向相机并沿相机轴以相反的方向旋转。

建立太阳

使用动画纹理时,请确保使用mipmap,否则在某些距离下它将看起来很恐怖。在远处看太阳时,纹理中较慢的帧速率(10 fps)很好,但是当距离很近时,您可能还想使用更高的帧速率。如果您没有高帧率纹理或不能浪费视频内存,则可以使用自定义着色器根据上一张和下一张图像对其他所有像素进行插值。

通过更改着色器中的“色相/饱和度/值”的使用,无需修改纹理即可获得以下结果:

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明 在此处输入图片说明 [在此处输入图片说明 在此处输入图片说明

我从商店里的便宜模型开始,所以我不必做动画纹理。另一方面,这意味着我无法共享当前的预制件,因为已购买了纹理。


*或者,您可以研究在球体上映射2D噪声并将3D噪声用作时间维度,或者如果不想进行映射并节省性能,则可以使用4D噪声。


3
如果要使它逼真:星星的边缘实际上并不比磁盘中心亮,但亮度不如磁盘中心。
行星制造商

1
@planetmaker绝对。但是,带有白色或白色光晕和中央细节的效果更容易达到酷炫的效果。可以用另一种方式完成,但是无论如何,我认为还是有点棘手,看着现实的阳光会永远使我们蒙蔽,所以我们不希望有现实的阳光:)
彼得-罗班·哈维(Under Robert Harvey)2015年


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.