空间星云云一代?

我发现了一个很酷的kickstarter项目,叫做“Skywanders”。 这是一个像空间游戏一样的建筑系统和非常酷的graphicslego。

我注意到的一件事是“星云”。 他们是程序化生成的3D对象,他们看起来很棒。

在这里输入图像说明

我如何生成这样的星云? 我敢打赌,有一种方法可以做到这一点。 是否有可能将2D星云转换成3D星云? 我还没有find任何algorithm或其他来源。

所以一般来说,你有两个基本组成部分的星云(从视觉方面)。

– 答:剪影:

为了生成一个随机的轮廓,我会研究元胞自动机。 这个过程经常被用来产生“自然的”随机结构(想想洞穴)。

这里有一个体面的系列如何做到这一点。 这是统一的,但其他原则是相同的。 https://www.youtube.com/watch?v=v7yyZZjF1z4

B:质地:

您可能可以通过使用几种不同的混合模式的perlin噪声来“走开”,以获得适量的颜色变化。


把它放在一起:

一旦你有了你的形状和噪声图,使用颜色斜坡纹理为区域和强度分配颜色是相当简单的。


把它带到3D好消息是,每个处理可以扩展到3D。 规则变得更复杂一点,但是非常简单。

3D噪音生成资源: https://en.wikipedia.org/wiki/Simplex_noise http://catlikecoding.com/unity/tutorials/simplex-noise/ (统一,但普遍适用) https://developer.nvidia。 com / gpugems / GPUGems3 / gpugems3_ch01.html (特别是第1.3.3节)

3D元胞自动机非常简单,规则不会改变,只需要添加更多的邻居来考虑。

你可以使用噪声生成(Perlin,Value或Gradient是最受欢迎的)。 无论是或使用这样的技术: Unity3D程序生成的星云

否则使用广告牌渲染对象或类似的东西可能是你最好的select。 特别是当你想要他们是3D。 您可能会研究Z深度技术(体积渲染),但这是一个昂贵的过程。 所以就整个星云而言…无论如何,这应该让你开始。