Directx11教程(61) tessellation学习(3)
原文:Directx11教程(61) tessellation学习(3)
现在我们看看在不同tess factor的情况下,三角形是如何细分的?(这儿三条边和内部tess factor值是一样的,而且partitioning("integer"))
下面8张图是三角形在tess factor 1到8的情况下的细分细节:
因为TS阶段是硬件自己做的,没有算法细节,所以我们只能从这些图中,来猜一猜不同tess factor情况下的规律。
可以看出在奇数的情况下,1, 3, 5, 7,…, 三角形包括(N+1)/2个环形的的三角形,而中心是一个三角形。在偶数的情况下,三角形内部包括N/2个环形的三角形,但中心是一个点,而不是一个三角形。三角形的边在tess factor 1-8的情况,分别被分为1-8段,对于内部的环形三角形,从外到内,每进一个层次,边分段数是是上一个边分段数减2,比如tess factor = 5,有三个环形三角形,最外边的边分段是5,中间的一个是3,最里面的是1。
在tess factor 1-8的情况下,细分的三角形个数为:1, 6, 13, 24, 37, 54, 73, 96, 121, 150,有规律吗?
奇数tess factor:1, 13, 37, 73, 121, => 12, 24, 36,48,…(6*2, 6*4, 6*6, 6*8…)
偶数tess factor:6, 24, 54, 96, 150, => 18, 30, 42, 54, … (6*3, 6*5, 6*7, 6*9…)
每条边以及内部 tess factor也可以不一样,比如三条边的细分因子是2、3、4,内部细分因子是3,则三角形的细分如下图所示:
从directx11 sdk上可以查到,Partitioning因子可以有四种,我们例子中用的是Integer,下面我们看看其它三种情况下,三角形的细分有什么变化。
fractional_odd表示tess factor是奇数,范围1..63, 此时细分效果和Integer是一样的,如果此时tess factor为偶数,则细分的效果很古怪。下面的就是fractional_odd的情况下,tess factor 1-8的戏份效果,偶数的细分并不均匀。
fractional_even表示tess factor是偶数,范围是2-64,如果此时tess factor为1,则和2的结果是一样的,如果此时tess factor为奇数,则细分效果不均匀,下面的图是tess factor在1-8的情况下的细分效果:
pow2看字面意思,应该是2的幂次tess factor才有效,但是在我的卡(HD5760)上,细分效果和Integer是一样的。
Directx11教程(61) tessellation学习(3)的更多相关文章
- Directx11教程(64) tessellation学习(6)-PN Triangles
原文:Directx11教程(64) tessellation学习(6)-PN Triangles 前面我们用tessellation细分三角形或者四边形,产生的细分点都是在三角形或四边形 ...
- Directx11教程(63) tessellation学习(5)
原文:Directx11教程(63) tessellation学习(5) TS中生成细分后顶点的u,v,{w}坐标,我们根据控制点和u,w,{w}坐标生成新的顶点位置,在前面四边形的细分 ...
- Directx11教程(62) tessellation学习(4)
原文:Directx11教程(62) tessellation学习(4) 现在看看四边形在不同tess factor时,四边形细分的细节,下图是tess factor1-8时候的细分.te ...
- Directx11教程(60) tessellation学习(2)
原文:Directx11教程(60) tessellation学习(2) 本教程中,我们开始tessellation编程,共实现了2个程序,第一个tessellation程序,是对一个三 ...
- Directx11教程(59) tessellation学习(1)
原文:Directx11教程(59) tessellation学习(1) 在D3D11管线中,新增加了3个stage, Hull shader, Tessellator, Domain s ...
- Directx11教程(16) D3D11管线(5)
原文:Directx11教程(16) D3D11管线(5) 本章我们学习VS中具体做些什么事情? 首先再看看我们的VS shader代码: Clolor.vs - PixelInputType Col ...
- Directx11教程(15) D3D11管线(4)
原文:Directx11教程(15) D3D11管线(4) 本章我们首先了解一下D3D11中的逻辑管线,认识一下管线中每个stage的含义. 参考资料:http://fgiesen.wordpress ...
- Directx11教程(66) D3D11屏幕文本输出(1)
原文:Directx11教程(66) D3D11屏幕文本输出(1) 在D3D10中,通过ID3DX10Font接口对象,我们可以方便的在屏幕上输出文字信息,一个DrawText函数就能解决所 ...
- Directx11教程(56) 建立一个skydome
原文:Directx11教程(56) 建立一个skydome 本章建立一个skydome(天空穹),主要学习如何使用cube mapping. cube map就是把六张纹理当作 ...
随机推荐
- PAT甲级——A1054 The Dominant Color
Behind the scenes in the computer's memory, color is always talked about as a series of 24 bits of i ...
- Color the ball HDU - 1556 (线段树)
思路:线段树,区间更新 #include<iostream> #include<vector> #include<string> #include<cmath ...
- 通过http路径获取文本内容(Java)
public static String readFileByUrl(String urlStr) { String res = null; try { URL url = new URL(urlSt ...
- 使用SpringBoot发送mail邮件
1.前言 发送邮件应该是网站的必备拓展功能之一,注册验证,忘记密码或者是给用户发送营销信息.正常我们会用JavaMail相关api来写发送邮件的相关代码,但现在springboot提供了一套更简易使用 ...
- springmvc下载一个文档下载接口里的文档
A提供了一个文件下载的接口,在调用的时候可以直接在前端用a标签来调用 <a href="http://" target="_blank">下载< ...
- 2019.9.26 csp-s模拟测试52 反思总结
刚刚写了一个小时的博客没了,浏览器自动刷新. 一!个!小!时! 鼠标键盘电脑哪个都不能摔,气死我了. 垃圾选手T1T2没思路,T3倒是想出来得比较早,靠T3撑着分数. 数据结构学傻选手,属实垃圾. T ...
- 洛谷P2381 圆圆舞蹈
P2381 圆圆舞蹈 题目描述 熊大妈的乃修在时针的带领下,围成了一个圆圈舞蹈,由于没有严格的教育,奶牛们之间的间隔不一致. 奶牛想知道两只最远的奶牛到底隔了多远.奶牛A到B的距离为A顺时针走和逆时针 ...
- Javascript-正则表达式常用验证
<div> <h1>一.判断中国邮政编码匹配</h1> <p>分析:中国邮政编码都是6位,且为纯数字</p> <div>邮政编码 ...
- OpenSmtp 发送邮件
1.采用发送一个简单邮件 示例: private int smtpPort; private string smtpHost; private int recieveTimeout; private ...
- C++中的 istringstream 的用法
C++引入了ostringstream.istringstream.stringstream这三个类,要使用他们创建对象就必须包含<sstream>这个头文件. istringstream ...