我想在OpenGL中渲染体积云。 我发现了一篇有趣的论文,描述了一种渲染体积云的简单技术。 (http://www.inframez.com/events_volclouds_slide18.htm) 但是我不知道如何创建他们的“分形立方体”(或perlin-noise cube)。
我的问题是:如何创建立方体的6个可平铺分形纹理?
编辑:我的目标是创建一个体积云对象,而不是云天空盒。
答案 0 :(得分:3)
由肯·佩林自己撰写的关于佩林噪音的精彩介绍是here。他谈到了一些细节生成一维或二维噪声函数,然后将其概括为显示它如何在3D中工作,以生成一个像你想要的坚固的噪声立方体。
答案 1 :(得分:0)
使用2D广告牌云纹理时,您可以创建一个alpha混合的2D纹理,其中透明度看起来像云状。他们要求你做的几乎是同一件事,只有纹理无缝地包裹在一个立方体(如天空盒)。 perlin-noise filter看起来像一个算法,使某些东西看起来像云。
我的快捷方法是使用Photoshop的云滤镜来创建纹理。遵循this tutorial的基本概念进行alpha混合,但不要执行循环渐变。将它切成无缝的类似天空盒的网格(即它有6个边并围绕立方体正确折叠)。
答案 2 :(得分:0)
我认为他们所指的'分形立方体'纹理是由Perlin噪声的多个八度音阶产生的FBM(分形布朗运动)分形。 This游戏编程宝石章讨论了它们是如何形成的。基本思想是结合Perlin噪声的多个“八度音阶”,每个八度音程的频率约为前一个八度音阶的两倍。您可以通过修改噪声功能来实现无缝平铺。 Photoshop的云滤镜基本上是FBM噪音并且无缝拼接,所以如果你有权访问Photoshop,你可以使用它。
答案 3 :(得分:0)
如果你真的对漂亮的云渲染感兴趣,那么马克哈里斯的算法虽然很复杂但很复杂:http://www.markmark.net/clouds/