PN-Triangles和Phong-Tesse

PN-Triangles和Phong-Tessellation是两种用于曲面细分的技术。PN-Triangles涉及计算额外的点和法线,然后进行二次插值,而Phong-Tessellation则通过线性插值简化了这一过程,减少了运算和I/O带宽。尽管两者在效果上有相似之处,但Phong-Tessellation在实现上更为简洁。文章探讨了这两种方法的差异,并提出引擎应追求用更简单的方式实现更好的效果。
摘要由CSDN通过智能技术生成

今天被人鄙视了一下,原因是菜鸟常被人鄙视。技术上来说,高手训斥菜鸟永远都是对的。

 

PN-Triangles需要在每个三角形patch的内部计算7个点的position和3个点的normal,并通过它们来二次插值出所有细分出来的顶点的position和normal。而Phong Tessellation直接把细分出来的顶点投影回三个原始顶点,只需要线性插值就可以得出position和normal。不但节省了大量的运算,还减少了宝贵的I/O带宽(HS到DS需要传递的量从34个float减少到4个float)。Phong Tessellation的HS部分也变得跟普通的tessellation(姑且称之为Flat Tessellation)完全相同,只要DS里面加入三四行代码就可以把Flat Tessellation变成Phong Tessellation,比起PN-Triangles需要大量修改HS、Constants HS、DS,以及互相传递的结构体来说,Phong Tessellation还是很划算的。

 

上面这个是国内开源引擎KlayGE里面的作者描述的,从描述上来看PN-Triangles和Phong-Tesse本质并没有太大的区别,就是在tess的基础上改变生成的点的位置,算法上稍有区别,Phong-Tesse简洁一些。

从这个折射出一个道理,引擎所有做的事是用更简单的方式实现更好的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值