tessellation(曲面细分)

在实时渲染的时候,通常我们会因为带宽,效率等原因,不会采样面数非常多的高精模型建模。但是又想渲染出细节非常多的场景来怎么办?各种办法,动态纹理,法向量纹理,曲面细分等技术是比较常用的技术。这里主要说曲面细分,在DX11渲染管道用了三个stage(阶段)来实现,曲面细分就是在GPU内部使用硬件加速的方式,动态生成顶点。其中:

Hull shader :相当细分前的预处理工作,定制一些细分规则和生成规则。

Tessellator :执行细分操作,根据Hull shader预置的细分规则。

Domain shader :在Tessellator 会生成对应的顶点和线,但是这些个顶点它是相对于控制点的,使用的是(U,V,W)坐标,这一步就是对顶点做一些处理来的。

(或许是涉及到硬件的非通用计算的原因,致使这样一个功能需要整出三个阶段,2个shader,如果只有一个API调用多好)

如果有一天,你在tess的时候失败了,请第一时间思考,是否有别的地方没有使用tess,这是首先需要排查的。

这个图很清晰的描述了整个曲面细分的过程。

 

1.HS input :第一步不是HS,而是HS之前的input操作,这里有个patch control points(补丁控制点)它是在原语里面设定的,IASetPrimitiveTopology方法D3D11_PRIMITIVE_TOPOLOGY枚举,里面有很多PATCHLIST为1-32。这说明在我们需要进行曲面细分的时候,我们会把原语定义为PATCHLIST

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值