【问题标题】:Why are all of the four fragments of a quad fragment going to be shaded, even if a polygon covers only one of them?为什么一个四边形片段的所有四个片段都会被着色,即使多边形只覆盖其中一个?
【发布时间】:2011-05-29 17:56:36
【问题描述】:

如果一个三角形(多边形)例如只覆盖其中一个,为什么四边形片段的所有四个片段都将被着色(计算它们的颜色)?

【问题讨论】:

    标签: opengl graphics directx polygon fragment-shader


    【解决方案1】:

    纹理需要传入纹理坐标的导数。这是因为要使用哪个 mip-map 取决于屏幕空间中纹理坐标的变化。如果坐标变化很快,那么这意味着您实际上在该片段上使用了大部分纹理(因此将被拾取的 mipmap 更接近 1x1 级别)

    这里的“导数”是每个片段的输入坐标的变化。显卡实现这一点的典型方式是计算 2x2 网格上的坐标,并计算不同元素之间的差异以获得导数的近似值。

    【讨论】:

      【解决方案2】:

      片段的平均颜色仍然取决于其他顶点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多