Houdini 过程化地形系统(二):基于UE4的FC5植被系统(1)
背景
- 使用Houdini开发类似FC5里的Generate_Terrain_Entities的HDA节点
- 修改Houdini Engine,让Generate_Terrain_Entities的Input和Output可以支持在UE4里生成植被
- 进一步优化Houdini Engine,可以让关卡设计人员可以在UE4 Editor里更加灵活和方便的修改

- 创建HDA面板,为内部的过程化实现创建参数关联
- 根据Viability中选择Terrain Data以其他的过程化生成的2D data,确定植被的生成范围
- 根据Density,Sizes,Scale,Color,Rotation等面板参数,来生成Point Colud,以及Point对应的旋转,颜色,缩放等信息。
- 多个HDA连接,每个HDA代表一种植被类型。并实现按照Viability范围和优先级的选择正确的Species。
- 根据最终的PointCloud,用Copy to Point节点做植被的Instance化
面板制作





确定生成区域




















生成Point Cloud














根据Viability选择Species









总结
- Density,Size,Age等参数使用以及规则上,需要去对应最终的游戏世界的尺寸做修改。
- 如何更优雅的与UE4的FoliageSystem结合,需要再Houdini Engine里做进一步的扩展
- 算法上的调试,优化,也需要基于具体的制作示例来进行
- 像Rotation,TerrainData的输出,在之前几节有过介绍,在后文与UE4的整合里也会有进一步的改进。
Houdini 过程化地形系统(二):基于UE4的FC5植被系统(1)的更多相关文章
- Houdini技术体系 过程化地形系统(一):Far Cry5的植被系统分析
背景 在大世界游戏里,植被(biome)是自然环境非常重要的组成部分,虽然UE4里的也有比较不错的地形+植被系统,但相比国外AAA级游戏的效果,还是有不少的差距,简介如下: UE4的植被分为( ...
- 混合了RBAC和ACL的权限系统(二) -- 基于RBAC的系统权限
http://fightplane.iteye.com/blog/1278464 1. 概念说明 A 系统级权限:从角色的角度出发,不特定于任何实际的资源的权限.比如“用户是否可以修改标题”这个权限, ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(二十)——Saga框架实现思路分享
今天这篇博文的主要目的是分享一下我设计Saga的实现思路来抛砖引玉,其实Saga本身非常的类似于一个简单的工作流体系,相比工作流不一样的部分在于它没有工作流的复杂逻辑处理机制(比如会签),没有条件分支 ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(二)——通讯框架讲解
首先感谢张队@geffzhang公众号转发了上一篇文章,希望广大.neter多多推广dapr,让云原生更快更好的在.net这片土地上落地生根. 目录:一.通过Dapr实现一个简单的基于.net的微服务 ...
- paper 127:机器学习中的范数规则化之(二)核范数与规则项参数选择
机器学习中的范数规则化之(二)核范数与规则项参数选择 zouxy09@qq.com http://blog.csdn.net/zouxy09 上一篇博文,我们聊到了L0,L1和L2范数,这篇我们絮叨絮 ...
- 还原堆栈信息,分析地形系统使用ASTC格式的纹理导致Crash的问题
0x00 前言 在这篇文章中,我们选择了过去一周Unity官方社区交流群中比较有代表性的几个问题,总结在这里和大家进行分享.主要涵盖了IL2CPP.Scripting.Virtual Reality. ...
- Android消息推送(二)--基于MQTT协议实现的推送功能
国内的Android设备,不能稳定的使用Google GCM(Google Cloud Messageing)消息推送服务. 1. 国内的Android设备,基本上从操作系统底层开始就去掉了Googl ...
- Epicor系统二次开发
Epicor系统二次开发 一.获取或修改界面EpiDataView的字段数据(Get EpiDataView data) C# EpiDataView edv = (EpiDataView)oTran ...
- word2vec原理(二) 基于Hierarchical Softmax的模型
word2vec原理(一) CBOW与Skip-Gram模型基础 word2vec原理(二) 基于Hierarchical Softmax的模型 word2vec原理(三) 基于Negative Sa ...
随机推荐
- RbbitMQ 的 python 实现方法
RbbitMQ(消息队列) #简单模式 服务端 import pika #连接 connection = pika.BlockingConnection(pika.ConnectionParamete ...
- Dead Fraction [POJ1930]
题意: 很有意思的一道题,,将一个无限循环小数转化成分母最小的精确分数值....,循环的部分不一定是最后一位. Sample Input 0.2... 0.20... 0.474612399... 0 ...
- .net Kafka.Client多个Consumer Group对Topic消费不能完全覆盖研究总结(二)
依据Partition和Consumer的Rebalance策略,找到Kafka.Client Rebalance代码块,还原本地环境,跟踪调试,发现自定义Consumer Group 的Consum ...
- linux下下载redis,并且编译
1:下载.解压.编译$ wget http://download.redis.io/releases/redis-3.0.6.tar.gz $ tar xzf redis-3.0.6.tar.gz $ ...
- 3ds max学习笔记(六)-- 基本操作(建模前奏)
1.界面设置 在3ds Max的版本的界面中,默认是较深.若需要切换至较亮的界面,步骤: 执行“自定义”菜单,选择“加载自定义用户界面方案”从弹出的界面中选择样式文件,单击“打开”即可: 注:“amg ...
- Html表格:
(1)<table>标签:声明一个表格,它的常用属性如下: -- border属性 定义表格的边框,设置值是数值 -- cellpadding属性 定义单元格内容与边框的距离,设置值是数值 ...
- 数据格式JSON
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言.易于人阅读和编写,同时也易 ...
- 学习Struts--Chap02:Struts2框架各个功能模块和程序执行流程的介绍
1.Struts2的系统架构: 2.架构中不同Key的作用介绍: servlet Filters:过滤器链,client的全部请求都要经过Filter链的处理. Struts Core:Struts2 ...
- HDFS JournalNode 故障
背景 某天凌晨四点左右,HBase RegionServer 宕机自动拉起,查看日志发现是HDFS 在进行HA切换,15次重试仍连不上可写的active,于是挂了.所以根本问题是hdfs. 日志定位 ...
- JSP(6)—JavaBean及案例
基础: 一.JavaBean ①用作JavaBean的类必须是具有一个公共的无参数的构造方法 ②JavaBean的属性是以方法定义的形式出现的. ③JavaBean的属性名是根据Setter和gett ...