原文: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)的更多相关文章

  1. Directx11教程(64) tessellation学习(6)-PN Triangles

    原文:Directx11教程(64) tessellation学习(6)-PN Triangles       前面我们用tessellation细分三角形或者四边形,产生的细分点都是在三角形或四边形 ...

  2. Directx11教程(63) tessellation学习(5)

    原文:Directx11教程(63) tessellation学习(5)        TS中生成细分后顶点的u,v,{w}坐标,我们根据控制点和u,w,{w}坐标生成新的顶点位置,在前面四边形的细分 ...

  3. Directx11教程(62) tessellation学习(4)

    原文:Directx11教程(62) tessellation学习(4)       现在看看四边形在不同tess factor时,四边形细分的细节,下图是tess factor1-8时候的细分.te ...

  4. Directx11教程(60) tessellation学习(2)

    原文:Directx11教程(60) tessellation学习(2)        本教程中,我们开始tessellation编程,共实现了2个程序,第一个tessellation程序,是对一个三 ...

  5. Directx11教程(59) tessellation学习(1)

    原文:Directx11教程(59) tessellation学习(1)       在D3D11管线中,新增加了3个stage, Hull shader, Tessellator, Domain s ...

  6. Directx11教程(16) D3D11管线(5)

    原文:Directx11教程(16) D3D11管线(5) 本章我们学习VS中具体做些什么事情? 首先再看看我们的VS shader代码: Clolor.vs - PixelInputType Col ...

  7. Directx11教程(15) D3D11管线(4)

    原文:Directx11教程(15) D3D11管线(4) 本章我们首先了解一下D3D11中的逻辑管线,认识一下管线中每个stage的含义. 参考资料:http://fgiesen.wordpress ...

  8. Directx11教程(66) D3D11屏幕文本输出(1)

    原文:Directx11教程(66) D3D11屏幕文本输出(1)      在D3D10中,通过ID3DX10Font接口对象,我们可以方便的在屏幕上输出文字信息,一个DrawText函数就能解决所 ...

  9. Directx11教程(56) 建立一个skydome

    原文:Directx11教程(56) 建立一个skydome       本章建立一个skydome(天空穹),主要学习如何使用cube mapping.      cube map就是把六张纹理当作 ...

随机推荐

  1. [Day5] Nginx 变量

    一. Nginx中的变量原理 提供变量的模块和使用变量的模块 nginx启动,提供变量的模块会在一个回调函数中定义新的变量名和解析出变量的方法. 请求来了以后,使用变量的模块会根据变量名,去调用解析变 ...

  2. 2019.10.28 csp-s模拟测试91 反思总结

    有一场没一场的233 T1: 胡乱分析一下题意,发现和为n的x个正整数,不同的数字种类不会超过√n个.假设这x个数字都不同,最多也就是(x+1)*x/2=n. 所以可以维护现有的size值以及对应的数 ...

  3. jQuery Validate扩展验证方法 (zhangxiaobin)

    /***************************************************************** jQuery Validate扩展验证方法 (zhangxiaob ...

  4. kafka理论

    一.消息队列,简称MQ,message queue 生产者:生存数据写到kafka,持久化到硬盘.对同一个Topic来讲,生产者通常只有‘一个’(可以多并发)数据保存时常可以配置,默认保存七天. 消费 ...

  5. 数字统计类题目的非数位DP解法

    ZJOI2010 数字统计 上题题意为求[l,r]区间中每个数字(0~9)出现的次数 一般的做法为将区间当成[0,r]-[0,l-1],然后进行数位DP 但事实上将区间当成[0,r]-[0,l-1]后 ...

  6. JAVA面试常见问题之Redis篇

    Redis为单线程 1.Redis 有哪些数据类型 String 哈希 list set 有序set 2.Redis 内部结构 参考:https://www.cnblogs.com/chenpingz ...

  7. div 无缝滚动

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org ...

  8. ie6 png 透明的解决方法,大网站都在用

    今天解决png图片在IE6下的背景透明问题,找到了一个好方法.之前的解决方案会造成错位,使页面变形.现把这个方法公布如下,本人亲测可以正常使用,如果你在使用中出现问题,请看实例中的说明(英文不精的童鞋 ...

  9. 【P2616】 【USACO10JAN】购买饲料II Buying Feed, II

    P2616 [USACO10JAN]购买饲料II Buying Feed, II 题目描述 Farmer John needs to travel to town to pick up K (1 &l ...

  10. mvp例子与MVVM例子

    VMP例子 <!-- 从百度CDN上面找个jquery的链接 --> <!DOCTYPE html> <html lang="en"> < ...