Math 在没有重心坐标的情况下,三角形光栅化是否可行?

Math 在没有重心坐标的情况下,三角形光栅化是否可行?,math,rendering,rasterizing,Math,Rendering,Rasterizing,我刚刚在GPU(GLSL)上设计了一个三角形光栅化器,我遇到了一个算法,可以从光栅化中去除重心坐标(这对copute来说是非常昂贵的) 给定三角形ABC和边ABC以及线性方程f。 在第一步中,我检查每条边abc是否与f相交(三角形已投影到R²中) 然后,我从abc的线性方程(每条边都是线性方程)中取因子,并在R³中使用该参数来确定一个新的方程,该方程连接三角形两条不同边上的两个交点。 现在我可以一行一行地填充我的三角形(交点之间的像素被填充)。 基于R³中的线性方程(交点),我现在可以确定每个像

我刚刚在GPU(GLSL)上设计了一个三角形光栅化器,我遇到了一个算法,可以从光栅化中去除重心坐标(这对copute来说是非常昂贵的)

给定三角形ABC和边ABC以及线性方程f。 在第一步中,我检查每条边abc是否与f相交(三角形已投影到R²中) 然后,我从abc的线性方程(每条边都是线性方程)中取因子,并在R³中使用该参数来确定一个新的方程,该方程连接三角形两条不同边上的两个交点。 现在我可以一行一行地填充我的三角形(交点之间的像素被填充)。 基于R³中的线性方程(交点),我现在可以确定每个像素的R³坐标,因此我有一个深度值

我知道这有点复杂,所以如果你有任何疑问,请问我

那么你认为这是可能的,如果是的,它会更快吗?? 如果我忘了什么或我犯了错误,请通知我。
如果您有任何优化想法或其他想法,请通知我。

我发现它有点快,但我会在纹理和附加方面遇到一些问题。计算会减慢整个过程,因此我认为我将使用重心坐标。

重心坐标(这对协同飞行来说非常昂贵)。。。什么时候开始贵了?“如果是的,它比什么快了吗?看这个问答:计算三角形ABC中点P的重心坐标很昂贵,我有36*3+2的计算,如果有更快的方法,只需添加一条注释。没那么贵。成本仅为内环中每像素添加一次。屏幕空间中三角形上的渐变是线性的。点(x,y)处三角形内的任何值都与其相邻点具有线性对应关系:e(x+N,y)-e(x+0,y)可以表示为常数_除以_x*N。在y方向上的作用相同。如果你使用重心作为边缘函数,那么你可以用它和重心做点积来求解任何梯度,这会更便宜。