Graphics 图形管道中的平面着色

Graphics 图形管道中的平面着色,graphics,3d,lighting,Graphics,3d,Lighting,我被要求分析3d照明的平面着色模型,并“讨论如何将其集成到图形管道中” 由于平面着色在每个面上应用一次,所以我认为计算光的正确位置是碎片计算阶段。但是我也可能完全错了 有人能给我指一下正确的方向吗?那张图不是特别可读。这一款在眼睛上要容易得多: 。。。并且还正确地放置插入法线的阶段:在片段着色器或光栅操作之前,完成片段。我认为根据您的图表,这是标记为“设置”的区域 对于平面着色,法线不会在多边形曲面上插值。但是,它们仍将通过插值阶段,以便可以确定片段的适当法线,其中可能有多个法线可用。因此,

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

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


有人能给我指一下正确的方向吗?

那张图不是特别可读。这一款在眼睛上要容易得多:

。。。并且还正确地放置插入法线的阶段:在片段着色器或光栅操作之前,完成片段。我认为根据您的图表,这是标记为“设置”的区域


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

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

。。。并且还正确地放置插入法线的阶段:在片段着色器或光栅操作之前,完成片段。我认为根据您的图表,这是标记为“设置”的区域


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

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