MapMagic学习记录

  • 写在前面
  • Map
    • Blend
    • Blur
    • Cavity
    • Constant
    • Curve
    • Erosion
    • Intensity/Bias
    • Invert
    • Noise
    • Normalize
    • RAW_input
    • Shore
    • Simple_form
    • Slope
    • Terrace
    • Voronoi

写在前面

  这篇博客主要是学习MapMagic的蓝图里的功能块的记录。

Map

Blend

使用指定的算法将多个不同的Map输入进行混合,这些混合算法都是以Base层的输入为左操作数的,即在Base的基础上进行混合修改。

Base层无法被上下挪动,但是其他层可以(其他层之间修改上下顺序对结果似乎并没有什么影响)。

除了Base层之外的每一层都有两个属性:使用的混合算法;影响因子(为0时则不会发生任何事情)。

以下是提供使用的混合算法,设Base层(左操作数)的值为a,其他层(右操作数)的值为b

  • Mix:简单地使用影响因子来进行混合,return b;
  • Add:相加,return a+b;
  • Subtract:相减,return a-b;
  • Multiply:相乘,在大多数情况下输入的值都小于1,因此结果必定小于两个操作数中的任意一个,return a*b;
  • Divide:相除,相乘的对立运算,大多数情况下结果都大于两个操作数中的任意一个,return a/b;
  • Difference:层差,return Mathf.Abs(a-b);
  • Min:较小值,return Mathf.Min(a,b);
  • Max:较大值,return Mathf.Max(a,b);
  • Overlay:覆盖(一个奇怪的算法…),使用如下公式:
if(a > 0.5f) return 1 - 2 * (1 - a) * (1 - b);
else return 2 * a * b;

Base层的影响因子恒为1,且使用的混合算法恒为Add(其实就是0 + a的意思)

影响因子的作用大概是,比如说使用Add算法,其他层的值为b,影响因子为e,则 return a + b * e;

Blur

模糊效果(或者说是平滑效果?),具有四个属性:

  1. Intensity:每次迭代过程里模糊的强度
  2. Iterations:迭代次数,增加此项会减少模糊的性能
  3. Loss:强制生成器跳过一些输入像素,这将导致更像素化的外观,但是更加平滑,为1时此项无效
  4. Safe Borders:安全距离,不同地形块之间的过渡距离,在此距离内不会应用模糊效果

Cavity

计算输入的Map的凹凸映射,分别是concavity(凹)和convexity(凸),这两个方式生成的结果是互补且不相交的(毕竟一个是凹一个是凸)。

所有的膨胀,肿大和拱起的曲面都是凸的,而空洞都是凹的。

  1. Intensity:强度,在这里类似于影响因子,为0时Cavity没有作用
  2. Spread:因为并不总是会出现绝对凹凸,这个值的作用可以理解为近似考虑的程度
  3. Normalize Convex+Concave:确保所有的凹凸加起来为1,关闭此项以获得更好的性能
  4. Safe Borders:安全距离

Constant

提供一个常数值的Map的输出。

Curve

使用用户定义的曲线调整地图值。

工作原理类似于Photoshop中的曲线。

曲线图的横轴为输入值,纵轴为输出值。

这个生成器为Map的编辑提供了大量的可能:它可以用来反转Map,调整最小值或最大值,上下限死(夹住)Map的值,甚至用于制作梯形坡。

例如,为了给Map更多的对比度,只需要在靠近中线的水平方向上移动左右键。要反转地图,将左键移到顶部,右键移到底部,这样对角线就被反转了。


取反

对比

选择范围

湍流脊?(Turbulence Ridge)

梯田化/梯形坡

Erosion

重现水在地形表面的流动作用:水流侵蚀形成悬崖,将被侵蚀的地层带到另一个位置,并将其作为沉积物沉淀下来。

所有的流、侵蚀和沉积物计算都是迭代的,并且非常需要资源,这使得Erosion Generator成为所有MapMagic生成器中最慢的一个生成器。在现代计算机上,使用默认参数生成侵蚀通常需要大约3秒的时间——与任何其他生成器的计算几乎都是实时的相比而言,但结果通常是值得的。

输入:

  • Heights:需要处理的高度Map。

输出:

  • Heights:处理完成后的高度Map。
  • Cliff:这张Map表示输入的Map里被侵蚀的分布,即那些被侵蚀的狠的地方,Cliff对应的位置的值就越大。
  • Sediment:类似于Cliff,这张Map表示输入的Map里被沉积的分布,即那些沉积的狠的地方,Sediment对应的位置的值就越大。

属性:

  • Iterations:生成器迭代的次数。该参数直接决定性能。在大多数情况下,没有必要将其设置地超过5-7,因为之后的侵蚀会变得不是那么的明显。
  • Durability:决定了输入地形的耐操性(?)——它受水流侵蚀的影响有多大。较低的值会使得造成更大的侵蚀,但总体结果不是那么地准确和可预测,因此建议将此值设置为0.8或更高。如果设置为1,那么将不会被侵蚀。因为这个参数的行为类似于侵蚀值,它可能会在未来的版本中被删除。
  • Erosion:关系到地层的数量,间接决定了被沉积的量。
  • Sediment:关系到沉积量。0意味着所有被侵蚀的土地都将被带走,因此没有任何沉积物留下。2则反而会让被侵蚀的地方多了一倍的沉积(2333)。一个实际的值应该略低于1,但是在0-2的值范围内可以获得良好的结果。
  • Fluidity iterations:用于计算流量的迭代。较高的值意味着沉积物将从地层最初被侵蚀的地方移动得更远。它与Iterations一起极大地影响性能。
  • Ruffle:随机地增加一些被侵蚀的底层,会使得结果看起来更褶皱。
  • Safe Border:安全距离。

Intensity/Bias

在懒得使用曲线的时候的一个求对比度的生成器。

属性:

  • Intensity:强度,用此值(0~1)和输入进行相乘,即为【对比】。
  • Bias:通过增加指定值来调整输出结果。

Invert

在懒得使用曲线的时候的一个求反相的方法。

具有一个属性Level,决定了反相Map的高度。

此生成器的输出就是Level减去输入。

Noise

噪声生成器是Map Magic中最基本的生成器之一。它生成一个分形柏林噪声地图,广泛用作于各种地图创建算法的基础。

输入:

  • Input:如果没有输入,则输出结果就是个纯噪声Map,否则结果是输入与噪声的相加。
  • Mask:用于控制强度,将噪声与掩码值相乘。

属性:

  • Seed:柏林噪音的随机种子。
  • High:最大高度。
  • Low:最小高度。
  • Size:最大分形大小,较小时会产生均匀可预测的噪音,较大时则更类似于一个高度图。
  • Detail:决定大小分形的偏差。当高于0.5时,小的分形有更大的影响,这导致一个更“噪声“的Map。当小于0.5时,小分形的显著性小于大分形的显著性,这导致噪声更平滑。
  • Turbulence:起伏度,产生“拱起”(大于0时)或“脊”(小于0时)。
  • Offset:噪声的偏移。

Normalize

归一化多个输入,使得其总和为1。

提供两个可选算法:Sum和Layers:

  • Sum:类似于加权平均,先求出所有Map的值的和,然后再除各自的值,这样最后的结果里每个Map的贡献都是公平的,与层的顺序无关。
  • Layers:类似于PS里的图层混合,在上层的层会更有优势。

RAW_input

用不到,太长不看。

Shore

创造一个海滨效果,即海岸线。

这玩意看起来就像是让Map的低洼处变得更加明显。

Simple_form

创造一个简单的高度Map。

属性:

  • Type:可以在梯度、金字塔,圆锥体中选择。
  • Intensity:强度。
  • Scale:大小。
  • Offset:偏移量。
  • Wrap Mode:分布模式,可以在仅一次,平铺,pingpong中选择。

    使用示例:

Slope

计算Map的高度差,即区分水平法向与垂直法向的点。

属性:

  • Steepness:定义参与区分的度数(角度制)范围,即坡度:哪个坡度内的被视作一类法向的点(此坡度的补集内的点即被视作另一类法向的点)
  • Range:不同坡度之间的渐变范围。

Terrace

用来生成梯田图的,太长不看。

Voronoi

使用Voronoi模式创建Map。将Map分割成单元格,为每个单元格生成一个随机点,并使用到最近点和第二最近点的距离填充地图。Voronoi地图看起来像是由不规则凸多边形组成的马赛克。

属性:

  • Type:可以在平坦,最近,次近,细胞状,有机状之间选择。

设自己的随机点的位置为a,最近点的位置为b,次近点的位置为c,则以上分别对应abcc-bc+b

  • Intensity:强度。
  • Cell count:细胞的数量,为了更好地衔接,建议使用2的幂次。
  • Uniformity:规则度,为1时所有的单元格都一样,越小则越有个性。
  • Seed:伪随机数生成器。

MapMagic学习记录相关推荐

  1. Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)

    Pytorch学习记录-torchtext和Pytorch的实例1 0. PyTorch Seq2Seq项目介绍 1. 使用神经网络训练Seq2Seq 1.1 简介,对论文中公式的解读 1.2 数据预 ...

  2. HTML5与CSS3权威指南之CSS3学习记录

    title: HTML5与CSS3权威指南之CSS3学习记录 toc: true date: 2018-10-14 00:06:09 学习资料--<HTML5与CSS3权威指南>(第3版) ...

  3. springboot @cacheable不起作用_Springboot学习记录13 使用缓存:整合redis

    本学习记录的代码,部分参考自gitee码云的如下工程.这个工程有详尽的Spingboot1.x教程.鸣谢! https://gitee.com/didispace/SpringBoot-Learnin ...

  4. 【Cmake】Cmake学习记录

    Cmake学习记录 1.1 常例 add_library(gen_reference_infogen_reference_info/gen_reference_info.hgen_reference_ ...

  5. ASP.NETCore学习记录(一)

    ASP.NETCore学习记录(一) asp.net core介绍  Startup.cs  ConfigureServices  Configure  0. ASP.NETCore 介绍 ASP.N ...

  6. Android开发技术周报176学习记录

    Android开发技术周报176学习记录 教程 当 OkHttp 遇上 Http 2.0 http://fucknmb.com/2018/04/16/%E5%BD%93OkHttp%E9%81%87% ...

  7. add函数 pytorch_Pytorch学习记录-Pytorch可视化使用tensorboardX

    Pytorch学习记录-Pytorch可视化使用tensorboardX 在很早很早以前(至少一个半月),我做过几节关于tensorboard的学习记录. https://www.jianshu.co ...

  8. java之字符串学习记录

    java之字符串学习记录 public class StringDemo { public static void main(String[] args) { //静态初始化字符串 String s1 ...

  9. Redis的学习记录

    Redis的学习记录 1.先导了解 1.1 NOSQL概述 1.1.1 为什么要用NoSql? 1.1.2 NoSql了解 1.1.3 NoSql特点 1.1.4 NoSQL的四大分类 2. Redi ...

最新文章

  1. C#中Base64之编码,解码方法
  2. Keil中找不到芯片,往Keil中添加不存在的芯片,Keil安装pack文件
  3. Apache Samza流处理框架介绍——kafka+LevelDB的Key/Value数据库来存储历史消息+?
  4. [EntLib]微软企业库5.0 学习之路——第七步、Cryptographer加密模块简单分析、自定义加密接口及使用—上篇...
  5. WPF WindowStyle为None
  6. jquery清空div内容_jQuery常用功能
  7. SAP Spartacus的Lock Focus Directive单元测试实现
  8. 企业靠一套数据平台实现“低成本运营战略”,降低成本600万
  9. matlab程序 直线插补,用Matlab实现直线插补计算程序讲解学习
  10. sqldr load 以及extract data 的中文问题--
  11. 网吧 电影服务器系统,XBS网吧电影系统10-26修改版(附教程)
  12. 发生异常: ModuleNotFoundError No module named ‘XXXX‘可优先尝试的解决方式
  13. 百度脑图制作的简单的个人介绍
  14. 大话设计模式之爱你一万年:大话设计模式之爱你一万年由来
  15. 【JavaWeb】在office word中使用merge field出现空行问题
  16. FREQCON OVERSPEED 1.2 368U4 204S
  17. 电脑会不定时的突然黑屏加显卡风扇狂转,记录一次排查过程
  18. 镁光256Gb NAND Flash芯片介绍
  19. 综合应用 -- 购物车
  20. 计算机学什专业,计算机专业到底学什么?

热门文章

  1. 面向对象求圆的面积和圆柱体积
  2. 晨跑锻炼C语言程序设计,大学晨跑心得(16页)-原创力文档
  3. 使用javaassist动态修改字节码文件
  4. 再论信息化的隐性成本
  5. 来算google的可视化编程工具——Blockly,不仅仅是玩具
  6. 恰当应用计算机提高课堂教学效率,教学多媒体论文,关于计算机辅助英语教学需要增强实效性相关参考文献资料-免费论文范文...
  7. 初学c语言的方法和操作
  8. 安卓报错Error:Failed to find target with hash string ‘android-26‘以及模拟器找不到错误
  9. Simotion应用与组网之七 PG/PC
  10. picACG本地缓存目录_2020最新泛目录站群程序【新手实战效果案例】