本文介绍了GLSL Tessellation着色器的三角形/面数是多少?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经实现了三角形的曲面细分着色器,如此上的示例所示网站.
I have implemented a triangle tessellation shader as shown in the example on this website.
如何确定已定义的inter
和outer
细分因子的输出面总数? -它不会以任何方式影响我的程序,我只想知道我的多边形/面数.
How can I determine the total number of faces that would be output for defined inter
and outer
tessellation factors? - It doesn't effect my program in any way I would just like to know my poly/face count.
推荐答案
可以使用简单的递归找到单个三角形的重心细分的三角形数量(内部和外部细分相等).
The number of triangles for the barycentric subdivision of a single triangle (where the inner and outer subdivision is equal) can be found using a simple recursion:
// Calculate number of triangles produced by barycentric subdivision (i.e. tessellation)
// Where n is the level of detail lod and outer and inner level is always equal
int calculateTriangles(int n) {
if(n < 0) return 1; // Stopping condition
if(n == 0) return 0;
return ((2*n -2) *3) + calculateTriangles(n-2); // Recurse
}
这篇关于GLSL Tessellation着色器的三角形/面数是多少?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!