一、是首先要理解,随机地图就是一个范围判断,然后生成对于的东西。
在shader中,color的输出为4个float,范围再0~1。他和传统的0~255区别不大。只是我们习惯了10进制,在脑海中对0~255是有一个概念了。
不过这个范围判断依赖直觉肯定会有很多麻烦的事情出现的。
用0~1是有很多好处的。
smoothstep
把直线,弄着这样。
然后我们的概率分布,就会有所改变。
我们拿到这个概率图。
如果是(v+v)/2,
如果是v*v
如果是(v-v)/2
测试后,我选择 (v-v)/2这样的值保留原始数据,有有一种被step的感觉。
二、noise的算法
1、sample
三角形错位网络
生成的基底,会有斜线。
这个跟硬。根舍和生成一些特殊岩石地形。
2、perlin
perlin noise是方形网格
有直线和竖线的网络。
3、value
因为使用随机网格颜色,然后再smooth,这也的效果,非常容易形成长廊。
也可以有一些其他的操作
生成大量的L在地图里面。探后再用voro生成区块,那又是很多奇怪岩石地形。
4、voro
关于voro。
顶点所在的位置很重要啊
目前我们之用了第四了,还有很多优秀作品哦,是对他的顶点进行处理的,这个。
1、像毒液的液体
2、晓不得
3、树木
4、规律分布的网格
5、随机后的
6、集中的放射性地形
6.1如果使用了曼哈顿距离法
所以voro这东东,我还是推荐自己写。
三、对数据的处理
1、ridged
2、ping_pong
完全感觉不出两个的区别
就像反色了一下。
这里的主要的公式也很简单,因为0~1之间有个过度为0.5,我们之需要把0.5变为0
只需要 abs(value-0.5)*2.0就好了
holy shit,不对啊
吃瘪了。
直接抄了。
这尼玛,什么意思,先超过去
我懒得管那么多了,这里和木纹差不多。
尤其是增加了
虽然区别很大,实际上区别不大。
四、总结
1、我们在生成地形图的时候,主要是寻找轮廓,因为整个noise都用上了smooth step,平滑的从0~1,然后每一层可以对他们进行各种处理,然后叠加。所以我们要取0.2,会存在一条线。这条线,这与这条线一下和以上的数据如何操作,取决于你想要的比例。
2、我们在使用voro+sample noise生成矿石,这与的矿石轮廓不是圆滑的。
到了这里,想要深入研究可以自己看
blender和各种渲染引擎的procedural texture
https://blenderartists.org/t/my-100-free-cycles-procedural-textures-blend-files-and-or-settings-included/1113432/33
https://www.youtube.com/watch?v=2_JRwbUORTI&ab_channel=RyanKingArt
https://www.reddit.com/r/blender/comments/5q0s7o/25_simple_procedural_textures_in_one_blendfile/
https://forum.keyshot.com/index.php?topic=19526.0
我们必须承认,godot还早着呢,blender和其他渲染引擎是专业的。
unreal还更差得远
当然不能拿游戏引擎和专业的比。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删