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
GPU-BASED PROCEDURAL PLACEMENT IN HORIZON ZERO DAWN相关推荐
- 阅读笔记 - Horizon Zero Dawn 广袤世界中的玩家漫游
最开始我是忽略了这篇演讲的,因为Player Traversal是啥并没看懂- -b 后来看到 @顾露 大神在技术选荐中推荐了它,才拖下来看了看. 没想到这篇讲角色Locomotion的演讲中信息量意 ...
- 程序化物件放置(procedural placement)之泊松硬盘采样(poisson disk sampling)
程序化物件放置(Procedural Placement) 在开放世界游戏中, 很多小物件(物品箱子, 杂物, 草,木桶)的摆放是很耗费工作量的, 靠人工手动摆放是不现实的,为了节省工作量, 工程师探 ...
- 翻译:Player Traversal Mechanics in the Vast World of ‘Horizon: Zero Dawn‘
介绍 GDC原文链接:GDC Vault - Player Traversal Mechanics in the Vast World of 'Horizon: Zero Dawn' During t ...
- 1. THE REAL-TIME VOLUMETRIC CLOUDSCAPES OF HORIZON ZERO DAWN
摘要 游戏中的实时体积云通常以降低质量为代价获得快速性能.最成功的方法仅限于低空蓬松和半透明的层状云.对于地平线零黎明,Guerrilla 需要一种解决方案,该解决方案可以用不断变化的现实结果填充天空 ...
- 【GPU精粹与Shader编程】(七) 一篇文章读完《GPU Gems 3》
本文由@浅墨_毛星云 出品,首发于知乎专栏,转载请注明出处 文章链接: https://zhuanlan.zhihu.com/p/44671434 本文是[GPU精 ...
- 【GPU精粹与Shader编程】 七 一篇文章读完 GPU Gems 3
本文由@浅墨_毛星云 出品,首发于知乎专栏,转载请注明出处 文章链接: https://zhuanlan.zhihu.com/p/44671434 本文是[GPU精 ...
- 【GDC翻译】“地平线零之曙光”中基于GPU的程序化实时放置系统
原视频:GDC Vault - GPU-Based Run-Time Procedural Placement in 'Horizon: Zero Dawn' PDF:https://www.gdcv ...
- GPU Gems1 - 3 Dawn Demo中的皮肤渲染(Skin in the Dawn Demo)
该篇文章参照浅墨的这篇文章:https://zhuanlan.zhihu.com/p/35974789 Dawn是由NVIDIA创建的,用来介绍GeForce FX产品线的演示程序,它说明如何使用可编 ...
- opencv gpu cuda项目整理
opencv cuda编译: Window编译Opencv CUDA_jacke121的专栏-CSDN博客_opencv编译cuda // C++ net.setPreferableBackend(c ...
最新文章
- 阅读10、11、12章
- 结构方程模型_简单易懂,结构方程模型思路总结
- 刘志勇:微博短视频百万级高并发架构
- 吉哥系列故事——恨7不成妻(数位 DP)
- uva 10479——The Hendrie Sequence
- 二手交易平台html代码,二手物品交易HTML5模板
- spring电子书_不懂Spring就彻底放Java吧
- JavaScript 操作剪贴板
- 全国计算机二级报名入口新疆,新疆2019年3月全国计算机等级(NCRE)考试(第54次)报名入口...
- 设计模式——组合设计模式
- 这5款功能强大、堪称最良心的浏览器,简直好用极了!
- 编写一个猜数字游戏程序。
- python 卡方分布函数_推断统计分析(二):python验证三大抽样分布
- JVM七大垃圾回收器上篇Serial、ParNeW、Parallel Scavenge、 Serial Old、 Parallel Old、 CMS、 G1【尚】
- 面向对象程序设计之类和对象初级试题
- 不同手机类型该如何更换手机IP
- MySQL 员工信息查询
- CAD梦想画图中的的“绘图工具——绘线命令”
- 路由的导航守卫过渡动效transtion导航守卫 路由懒加载 路由元信息 @stage3---wee2--day7
- Windows 11 下 Virtualbox 6.1.34 出现 End kernel panic - not syncing: attempted to kill the idle task
热门文章
- 在户外头发竖立起来是遭雷击的先兆
- RFID无人仓库是如何工作的?
- 华为哪款手机将用鸿蒙系统,鸿蒙系统终于来了!这几款华为手机都可以升级了...
- php cs fixer.bat,使用 PHP-CS-Fixer 自动规范化你的 PHP 代码
- 「镁客·请讲」慧川智能康洪文:打造一个“AI+视频云平台”的中央厨房
- Vue ,Element-ui中el-menu使用阿里图标
- MATLAB保存当前视图的图像为PDF
- eclipse和java的关系
- 爬虫入门(一):爬虫简介
- 程序员修炼之路(十)程序员必读经典书籍和成长路线