GPU-BASED PROCEDURAL PLACEMENT IN HORIZON ZERO DAWN

Horizeon 基于GPU程序化场景

原因:

1.快速迭代

2.种类多

3.稳定

4.艺术家控制:数据驱动,位置,局部控制

实时程序化编辑

1.传统的是CPU计算

2.转成GPU处理

3.实时编辑

4.使用贴图记录位置

成果:

我们使用程序自动放置所有的自然场景Object

1.500+ 的资源类型

2.1000+的Objects 

3.GPU处理 约250纳秒

 多样性

资源结构介绍

包含:

资源类型

资源分配

资源颜色

天气

特效

音效  

动物

配置

创建一个真实世界

艺术家全部控制:数据,逻辑,手动修改

 世界数据

收集2D视角地图

1.分块处理

2.同时加载

3.可编辑

约4MB每平方公里

绘制世界数据

手动修改

编码逻辑

数据列表

资源名字,资源大小,格式

生成世界数据

1根据场景中的模型生成植物mask

2根据场景中的路生成道路mask

高度分层

名字,大小,格式

世界数据:从地形提取数据

侵蚀的沟壑数据,侵蚀的痕迹

密度逻辑

艺术家全部控制

手动手动刷

程序生成

程序逻辑

合图,可以在nuke制作

 资源生态

程序先生成,然后笔刷覆盖,权重

基础程序层

准备好资源

1.抹平层

2.转换编码

3.优化合并

世界数据和图层信息得出密度图,然后再离散生成模型

步骤一,密度数据
单一图层

可以缩放的密度

mipmap 数据

步骤2,生成

离散设置

基于抖动

碰撞检测

生成平铺

生成工具:生成方法、1,阈值均匀生成,最大化2D距离

规定阈值为2=w

缩放W =footprint

一组平铺

1.强度测试

2.阈值测试

3.位置生成

4.

5.stage to buffer

放置

需要根据RNG平铺

基础生成

包围盒生成

 根据每层运行

独立的离散化

碰撞?

 保存碰撞

不同的方法?

读取-bake,依赖关系   no

相同的方法?

分层

 

 分层密度图

2个数值

2边的是阈值

分层

密度图的开销

单独的数值

可能需要非放置层

更多的工作,但是

稀疏制备关系到开销问题

用排列顺序法减少密度图生成

GPU Pipelining

实例化管线64次

每个管线多从采样密度图

每个管线处理一层

减少不必要的刷新

 

结论

程序化植被是广泛可以使用的

非常好的质量

适合艺术家创作

加载250纳秒,

强大的工具用于自然世界

自然资源三个人创建

生态圈1个人

原文地址:https://www.cnblogs.com/cainiao001/p/10406202.html