登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
安全
›
《实时渲染》第3章-图形处理单元-3.6曲面细分阶段 ...
《实时渲染》第3章-图形处理单元-3.6曲面细分阶段
[ 复制链接 ]
兜蛇
2026-2-16 14:40:00
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
实时渲染
3. 图形处理单元
3.6 曲面细分阶段
曲面细分阶段允许我们渲染曲面。GPU的任务是获取每个表面描述并将其转换为一组有代表性的三角形。这个阶段是一个可选的GPU功能,它首先在DirectX 11中可用(并且是必需的)它也在OpenGL 4.0和OpenGL ES 3.2中得到支持。
使用曲面细分阶段有几个优点。曲面描述通常比提供相应的三角形本身更紧凑。除了节省内存之外,此功能还可以防止CPU和GPU之间的总线成为动画角色或对象的瓶颈,其每帧的形状都在变化。通过为给定视图生成适当数量的三角形,可以有效地渲染表面。例如,如果一个球离相机很远,则只需要几个三角形。近距离观察,它可能看起来最好用数千个三角形来表示。这种控制细节级别的能力还可以让应用程序控制其性能,例如,在较弱的GPU上使用较低质量的网格以保持帧速率。通常由平面表示的模型可以转换为三角形的精细网格,然后根据需要进行扭曲[1493],或者可以将它们细分,以便不那么频繁地执行昂贵的着色计算[225]。
曲面细分阶段总是由三个元素组成。使用DirectX的术语,它们是外壳着色器、曲面细分器和域着色器。在OpenGL中,外壳着色器是曲面细分控制着色器,域着色器是曲面细分评估着色器,它们虽然冗长,但更具描述性。固定功能曲面细分器在OpenGL中称为图元生成器,正如将要看到的确实做法。
第17章详细讨论了如何指定和细分曲线和曲面。这里我们简要总结了每个细分阶段的目的。首先,外壳着色器的输入是一个特殊的面片图元。这包括定义细分曲面、贝塞尔曲面或其他类型的弯曲元素的几个控制点。外壳着色器有两个功能。首先,它告诉曲面细分器应该生成多少个三角形,以及在什么配置中。其次,它对每个控制点进行处理。此外,可选地,外壳着色器可以修改传入的面片描述,根据需要添加或删除控制点。外壳着色器将其控制点集以及曲面细分控制数据输出到域着色器。参见图3.9。
图3.9. 曲面细分阶段。外壳着色器接收由控制点定义的面片。它将曲面细分因子(TF)和类型发送到固定功能曲面细分器。控制点集由外壳着色器根据需要进行转换,并与TF和相关面片常量一起发送到域着色器。曲面细分器创建一组顶点及其重心坐标。然后这些由域着色器处理,生成三角形网格(显示控制点以供参考)。
曲面细分器是管线中的固定功能阶段,仅与曲面细分着色器一起使用。它的任务是为域着色器添加几个新的顶点进行处理。外壳着色器向曲面细分器发送有关所需曲面细分类型的信息:三角形、四边形或等值线。等值线是一组线带,有时用于头发渲染[1954]。外壳着色器发送的其他重要值是曲面细分因子(OpenGL中的曲面细分级别)。它们有两种类型:内边缘和外边缘。这两个内部因素决定了三角形或四边形内部出现多少细分。外部因素决定了每个外部边缘的分裂程度(第17.6节)。图3.10显示了增加曲面细分因子的示例。通过允许单独的控件,我们可以让相邻曲面的边缘在细分中匹配,而不管内部是如何细分的。匹配边缘可避免在面片相交处出现裂缝或其他阴影伪影。顶点被分配了重心坐标(第22.8节),这些值指定了所需表面上每个点的相对位置。
图3.10. 改变曲面细分因子的影响。犹他茶壶由32个面片组成。内部和外部曲面细分因子,从左到右,分别为 1、2、4 和 8。(由Rideout和Van Gelder的演示生成的图像[1493])
外壳着色器总是输出一个面片,一组控制点位置。但是,它可以通过向曲面细分器发送零或更低(或非数字,NaN)的外部曲面细分级别来表示要丢弃面片。否则,曲面细分器会生成一个网格并将其发送到域着色器。来自外壳着色器的曲面控制点,被域着色器的每次调用用于计算每个顶点的输出值。域着色器具有类似于顶点着色器的数据流模式,来自曲面细分器的每个输入顶点都被处理并生成相应的输出顶点。形成的三角形然后沿管线向下传递。
虽然这个系统听起来很复杂,但它的结构是为了提高效率,而且每个着色器都可以相当简单。传递到外壳着色器的面片通常很少或没有修改。该着色器还可以使用面片的估计距离或屏幕大小来动态计算曲面细分因子,如地形渲染[466]。或者,外壳着色器可以简单地传递一组固定值,用于应用程序计算和提供的所有面片。曲面细分器执行一个复杂但功能固定的过程,即生成顶点、给它们位置并指定它们形成的三角形或线。该数据放大步骤在着色器之外执行以提高计算效率 [530]。域着色器采用为每个点生成的重心坐标,并在面片的评估方程中使用这些坐标来生成位置、法线、纹理坐标和其他所需的顶点信息。有关示例,请参见图3.11。
图3.11. 左边是大约 6000个三角形的底层网格。在右侧,每个三角形都使用PN三角形细分进行细分和置换。(来自NVIDIA SDK 11[1301]样本的图像,由NVIDIA Corporation提供,模型来自4A Games工作室的游戏《地铁2033》。)
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
实时
渲染
3章
图形处理
单元
相关帖子
《实时渲染》第3章-图形处理单元-3.7几何着色器
《实时渲染》第3章-图形处理单元-3.7几何着色器
Flink实时计算心智模型——流、窗口、水位线、状态与Checkpoint的协作
从零开始构建实时客服系统(.NET架构系列)- 序章:为什么要讲实时客服系统的工程之道
ManimCE v0.20.1 发布:LaTeX 渲染修复与动画稳定性提升
瑞云渲染大赛官网报名入口及参赛指南(参赛倒计时仅7天!)
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
《实时渲染》第3章-图形处理单元-3.7几何着色器
1
269
喜及眩
2026-02-17
安全
《实时渲染》第3章-图形处理单元-3.7几何着色器
6
623
挫莉虻
2026-02-17
安全
Flink实时计算心智模型——流、窗口、水位线、状态与Checkpoint的协作
1
282
溶绚
2026-02-23
业界
从零开始构建实时客服系统(.NET架构系列)- 序章:为什么要讲实时客服系统的工程之道
0
206
寿爹座
2026-02-27
安全
ManimCE v0.20.1 发布:LaTeX 渲染修复与动画稳定性提升
0
933
荆邦
2026-03-03
安全
瑞云渲染大赛官网报名入口及参赛指南(参赛倒计时仅7天!)
0
851
殳世英
2026-03-03
回复
(1)
府扔影
2026-2-20 23:41:11
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
谢谢楼主提供!
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
业界
代码
签约作者
程序园优秀签约作者
发帖
兜蛇
2026-2-20 23:41:11
关注
0
粉丝关注
24
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991125
anyue1937
9994892
kk14977
6845359
4
xiangqian
638210
5
宋子
9888
6
韶又彤
9910
7
闰咄阅
9993
8
刎唇
9995
9
蓬森莉
9873
10
遗憩
10006
查看更多
今日好文热榜
320
OpenAI卸载量暴增295%,Claude登顶第一:AI
940
洛谷P1593 因子和 题解
142
一个命令,切换整个世界:CCSwitch 到底是
327
【医疗项目实战】借助LightningChart Pytho
783
在Mac安装阿里巴巴新神器copaw
634
厉害的网安人才都学什么?
286
海外仓一件代发是什么意思?搞懂概念,避开
555
厉害的网安人才都学什么?
529
世界之巅的问候:RF RACER 成功登顶珠穆朗
425
图片加水印怎么弄?推荐一个免费在线水印工
115
Web打点中的权限维持思路
156
.NET 开源工作流:Slickflow 流程自动化运
132
Xray的安装与使用
760
AI的降维打击
892
nRF54L15 NRF54L15-QFAA-R 多协议低功耗BLE
901
RAID10和RAID5性能对比测试
437
Cloudpods Baremetal - 裸金属自动化
870
高光谱成像(二)光谱角映射 SAM
15
用六边形架构与整洁架构对比是伪命题?
131
ClaimsPrincipal序列化为Json的正确姿势