【问题标题】:Flat shading in graphics pipeline图形管道中的平面着色
【发布时间】:2012-01-10 15:47:23
【问题描述】:

我被要求分析 3d 照明的平面着色模型并“讨论它如何集成到图形管道中”。

由于每个面都应用了一次平面着色,所以我认为计算光的正确位置是片段计算的阶段。但是我也可能完全错了......

有人能指出正确的方向吗?

【问题讨论】:

    标签: graphics 3d lighting


    【解决方案1】:

    该图不是特别可读。这个在眼睛上要容易得多:

    ...并且还正确地放置了法线被插值的阶段:在片段着色器或光栅操作之前,这会最终确定片段。我认为就您的图表而言,这是标记为“设置”的区域。

    对于平面着色,不会在多边形表面插入法线。但是,它们仍将通过插值阶段,以便可以确定片段的适当法线,其中可能有多个可用的法线。因此,法线是在光栅化和插值中确定的,但实际的颜色和光照是由片段着色器确定的。这是现代方法:在固定管道中(没有片段着色器),这一切都将由光栅化器完成。

    【讨论】:

    • 感谢您的回答。您能否进一步解释“它们仍将通过插值阶段以便可以确定片段的适当法线,其中可能有多个可用的法线”是什么意思?片段怎么可能有多个法线?
    • @Saphrosit 法线通常是为每个顶点提供的,然后在多边形的表面上进行插值。如果您正在绘制球体,这很好,但如果您正在绘制立方体,则不好,因此应该使用平面着色。然而,一个三角形有 3 个点,因此在平面着色场景中有 3 个不同的法线可供选择:必须确定使用哪一个,这在插值阶段完成。
    • 是的,您正在描述基于法线插值的 Phong 着色方法。据我所知,在平面着色中,法线计算为N = (v1-v0)x(v2-v0),其中vi 是三角形的顶点,x 表示叉积。此计算是否发生在“光栅化和插值”步骤中,代替正常插值(根据所采用的着色方法)?
    • @Saphrosit 是的,它会,所以它可以被传递到着色器阶段或用于计算固定的管道照明。它必须这样做,因为像素着色器本身并不知道它所代表的几何形状。
    • 好的,谢谢。您能否建议一些参考资料,我可以在哪里获得更多信息? :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多