百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
I

Indirect-Rendering-With-Compute-Shaders

> 编程语言
开源

使用 Unity3D、计算着色器和 Graphics.DrawMeshInstancedIndirect 绘制大量实例的示例,其中包含 Frustum & Occlusion 回收和 LOD。

770 stars0 点赞0 次浏览
访问官网GitHub

工具介绍

使用 Unity3D、计算着色器和 Graphics.DrawMeshInstancedIndirect 绘制大量实例的示例,其中包含 Frustum & Occlusion 回收和 LOD。

使用计算着色器进行间接渲染

  • 在 Metal (Mac) 和 D3D11 上进行测试。 - 使用随机序列放置实例。 - 使用 Graphics.DrawMeshInstancedIndirect 绘制物体。 - 使用 Bitonic 排序进行 GPU 排序。 - 计算着色器: 视锥和阴影投射剔除。 - 计算着色器: 使用分层 Z 缓冲进行遮挡剔除。 - 计算着色器: 细节(屏幕大小)剔除。 - 计算着色器: 使用相对于摄像机的距离来计算 LOD 对象。 - 简单阴影模式: 仅为每种实例类型使用一个阴影网格,以减少 setpass 调用。

项目设置

  • "Example" 游戏对象上的 "_Example.cs" 脚本:
  • 创建实例数据并将其发送到间接渲染器类中。
  • "MainCamera" 游戏对象上的 "IndirectRenderer.cs":
  • 这是项目中的主要类。它初始化所有缓冲区和计算着色器,然后在 Unity 调用 PreCull() 函数时调度计算着色器并绘制对象。

TODO

  • 添加最后一帧深度的重投影到 Hi-Z(参见下面的“GPU 驱动渲染管线”)
  • 改进实例排序:
  • 在我的 Macbook pro(2014 年中期)中,排序大约占用 GPU 时间的 50%
  • GPU 排序必须支持不在二次方数组中的实例数
  • 为 CPU 排序找到性能更好的方法
  • 使用计算着色器创建 Hi-Z 纹理
  • 尝试使用光栅遮挡而不是 Hi-Z(参见下面的“NVidia Siggraph 2014”和“GitHub - nvpro-samples”)

The Unreasonable Effectiveness of Quasirandom Sequences Kostas Anagnostou - GPU Driven Rendering Experiments

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

C#

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言