【渲染-UnityShader-基础篇】GPU流水线-几何阶段

这篇博客是UnityShader学习笔记,详细介绍了GPU渲染流水线中的几何阶段,包括顶点着色器的坐标变换和逐顶点光照、裁剪操作以及屏幕映射的过程。文中提到了OpenGL和DirectX在坐标系统上的差异,并强调了这些阶段对渲染效率的影响。
摘要由CSDN通过智能技术生成

写在前面:学习UnityShader的笔记。
概述:在上一篇【渲染-UnityShader-基础篇】渲染流水线中在我们知道了CPU在应用阶段最后调用DrawCall命令给GPU发起绘制的命令,这一篇中就来介绍一下GPU中的渲染流水线中的集几何阶段。
流程图如下:
在这里插入图片描述

几何阶段

1.顶点着色器

这是GPU流水线的第一个阶段,其主要工作是坐标变换和逐顶点光照并输出后续所需数据。例如坐标变换,顾名思义,对顶点的坐标进行处理,其中必须完成的一项基本内容就是,顶点坐标从模型空间到其次裁剪坐标的变换,然后交由硬件做透视除法,最后得到归一化的设备坐标(Nomalizaed Device Coordinates,NDC)其中额数学细节实现,在后续读书笔记中在做介绍。
涉及坐标变换代码如下:

o.pos = mul(UNITY_MAP
GPU Instancer 是一款开箱即用的工具,可显示屏幕上对象的精确数量,性能表现强劲。只需鼠标点击几下,你就可以实例化你的预设、Unity 地形细节和树木。 GPU Instancer 可提供方便操作的工具,让你省去费力学习计算着色器和 GPU 基础架构的麻烦,轻松使用间接 GPU 实例化。同时,我们还提供带有详细文档的 API,用来管理运行时期更改。 --------------------------------- 功能特色 --------------------------------- - 适用于复杂 GPU 实例化的开箱即用型解决方案。 - 兼容 VR。适用于单通道和多通道渲染模式。 - 兼容移动端。适用于 iOS 和 Android。 - 易于使用的界面。 - 数以万计的对象仅需绘制调用一次,即可快速渲染。 - GPU 视锥体剔除。 - GPU 遮挡剔除(还支持具有单通道和多通道渲染模式的 VR 平台)。 - 支持自动配置的自定义着色器。 - 支持标准、通用和高清渲染管线。 - 一键即可将层次复杂的预制件进行实例化。 - 支持多个子网格。 - 支持 LOD 组和交叉渐变。(交叉渐变仅在标准渲染管线中支持) - 自动 2D 广告牌生成系统(仅限标准 RP)。 - 阴影投射和获得实例的支持(视锥剔除实例仍然可以投射阴影)。 - 能够按原型使用自定义阴影距离,以及选择用于渲染阴影的 LOD。 - 支持浮动原点处理。 - 支持多个视角。 - 记录良好的 API,可用于过程场景和运行时修改(包括示例)。 - 能够在运行时移除边界或碰撞体内的实例。 - 能够使用自定义计算着色器进行扩展。 - 展示 GPU 实例化器功能的示例场景。 预制件实例化功能: - 能够用你喜欢的预制件涂装工具在分配的场景中自动实例化预制件。 - 自动添加-移除预制件实例,无需任何附加代码。 - 自动检测和更新变换位置、旋转和缩放变化。 - 支持全部或区域定位的刚体和物理。 - 支持嵌套式预制件(Unity 2018.3 及更高版本)。 - 带有或不带实例化游戏对象的添加-移除-更新预制件实例(包括示例)。 - 经由 API 基于实例的材质变化(由于缓冲区限制,Android 不支持) - 在运行时基于实例启用和禁用实例化。 - 在运行时管理实例化预制件的 API。 - 包括带有自定义控制器的移动演示场景。 详细的实例化功能: - 高帧频的茂密草地和植被。 - 包括具有风、阴影、AO、广告牌和各种其他属性的植被着色器。 - 支持自定义着色器和材质。 - 支持交叉四边形:自动将草纹理转变成交叉四边形。 - 能够使用 Unity 地形上的自定义材质对预制件进行涂刷(使用 Unity 地形工具)。 - 能够在 Unity 地形上将预制件与 LOD 组一起使用。 - 通过自动空间分区进一步提高性能。 - 在运行时管理实例化地形详细信息原型的 API(包括示例)。 - 编辑器 GPU 实例化模拟。 树木实例化功能: - 高帧率的茂密森林。 - SpeedTree 支持风动画。 - SpeedTree 8 支持风动画。 - 树木创建器支持风动画。 - 支持软遮挡树。 - 包括广告牌烘焙师和渲染器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值