Awesome
1msRenderVegetation
基于Unity,在1ms内渲染大规模植被
辅助课程的Unity插件获取方式
https://cloud.189.cn/t/bei6JbqQ7zYz (访问码:3vvv)
https://pan.baidu.com/s/18CAa6Di16U9_LwPZZL6LIA (提取码:qoba)
https://115.com/s/sw6porx3wfq (访问码:c523)
整体课程安排
技术验证Demo
- 基于Job System实现GPU Instancing
- 基于ComputeShader 实现GPU Instancing
基础渲染框架
- 管理模型原型
- 植被预处理
- 数据存储结构、序列化以及反序列化
- 植被数据解析
- 空间分割
- 实时剔除
- 快速计算区块可见性
- 合并可见区块
- 视锥剔除和植被LOD计算
- GPU 实例渲染
- 复杂模型处理与渲染
渲染技术进阶
- 修正LOD计算
- 阴影优化
- 遮挡剔除
- 植被碰撞检测
- 运行时植被增删改查
- 世界迁移
- 数据存储和压缩
- 渲染大规模草地
技术讨论群
QQ群:263192020
获得最新内容
微信公众号
关注微信公众号:铁树站
及时获得最新内容
哔哩哔哩
该课程的图文文章和视频同步更新,视频观看地址可在 https://space.bilibili.com/409009139
Youtube
https://www.youtube.com/playlist?list=PLA5WGod9c3SrYzhOECmZatFYSqAEbIVY1
Unity中文课堂
目前课程已在Unity中文课堂上上架,可以在 https://learn.u3d.cn/tutorial/1ms-render-vegetation 购买学习。
联系我
疑难杂症汇总
HDRP 复刻时 shader 修改后报错
我查了这个问题是因为HDRP在 Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl 中 将 unity_ObjectToWorld 和 unity_WorldToObject 重定义为:
// To get instancing working, we must use UNITY_MATRIX_M / UNITY_MATRIX_I_M as UnityInstancing.hlsl redefine them #define unity_ObjectToWorld Use_Macro_UNITY_MATRIX_M_instead_of_unity_ObjectToWorld #define unity_WorldToObject Use_Macro_UNITY_MATRIX_I_M_instead_of_unity_WorldToObject
你可以在GPUInstancing_indirect.cginc中的setup()上面添加两行:
//...//
#define unity_ObjectToWorld unity_ObjectToWorld
#define unity_WorldToObject unity_WorldToObject
// setup函数作用是给每个实例数据在渲染前得到实际矩阵和逆矩阵,相当于每个实例数据的初始化操作。
void setup()
// ... //
这两行:
#define unity_ObjectToWorld unity_ObjectToWorld
#define unity_WorldToObject unity_WorldToObject
是将那两个变量用宏重新定义回来
我通过 https://forum.unity.com/threads/problem-with-drawmeshinstance-with-hdrp-or-lwrp.646723/ 这里面找的解决办法。
刚才试了ok,运行能够正常渲染出来。你可以试试看
Linux Vulkan ComputeShader报错
你说得:Shader error in 'FrustumCulling': glslang: 'input' : Reserved word. at kernel FrustumCulling at line 31 (on vulkan) 你看,它提示说input是保留字,你把这个input属性名改成inputDatas 之类得名称,然后在C#代码里面原来给 input 赋值的地方改成给 inputDatas赋值,我想这样就可以解决了.
找不到float3的定义
C# 中使用的 float3 不是Unity 常见的结构体,是项目添加的包:Mathematics,使用这个包里面的数学相关的结构体。