如何在像素着色器HLSL中获取点的重心坐标

时间:2017-07-15 06:41:44

标签: coordinates shader pixel hlsl

我正在为我的学校开展一个项目,不能为我的生活弄清楚。我需要在像素着色器内部的三角形中获得一个点的重心Coords,以便在三角形顶点颜色之间进行插值并获得最终的像素输出颜色。有没有办法可以从我的像素着色器内部获取三角形的顶点位置,还是需要不同的着色器?我该怎么办呢?

1 个答案:

答案 0 :(得分:1)

在三角形的每个顶点上存储重心拐角值:

     v1
      x
     / \         v0=[1,0,0]
    /   \        v1=[0,1,0]
   /     \       v2=[0,0,1]
  x-------x
v0         v2

使用线性插值(默认)将顶点着色器中的顶点属性传递到像素着色器,并且每个像素都有重心坐标。 请注意,如果您使用索引渲染(使用索引缓冲区),则很可能需要对数据进行反索引。