【问题标题】:Can the Phong shading model be implemented in fixed function pipeline OpenGL? [duplicate]Phong着色模型可以在固定功能管线OpenGL中实现吗? [复制]
【发布时间】:2021-08-14 22:19:28
【问题描述】:

Phong shading technique 在顶点处插入法线以实现平滑的着色效果。它通常与Phong illumination model 结合使用,并且可以在现代OpenGL 中实现。但是,固定功能管道 OpenGL (legacy OpenGL) 包括对它的支持吗?

【问题讨论】:

    标签: opengl 3d phong


    【解决方案1】:

    不,它不能。现代 OpenGL 使程序员能够以多种方式自定义渲染管道,这使他们能够实现这种技术。然而,legacy OpenGL 不支持顶点法线的插值。你能得到的最接近的效果是Gouraud shading,它在顶点处插入颜色。

    OpenGL wiki中所述:

    对照明的硬件支持仅扩展到 Blinn-Phong 照明模型,按顶点计算并作为最终光强度进行插值。

    【讨论】:

    • 这并不完全正确。如果您假设固定功能包括多年来添加到固定功能片段处理的所有扩展,那将包括env_dotenv_crossbar。有了这些,您可以创建一种将法线传递到着色器的方法,并使用它们进行点积以进行一些基本的每片段照明。但是,您可以将其视为一种原始着色语言,并且几乎任何可以执行此操作的硬件都可以(并且可能确实)也可以实现 ARB_shader_object/etc。
    • @NicolBolas 我的想法是利用多重纹理,类似于凹凸贴图由纹理组合器完成,提供每像素照明......只是类似于延迟渲染的多通道渲染。然而,它会很慢,因为只使用glReadPixels 而不是渲染到纹理需要在 CPU 和 GPU 之间进行传输......而且很可能一些通道将基于 CPU 来实现这一点。但仍然不需要着色器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    • 2011-06-20
    • 2012-03-07
    • 2011-06-09
    相关资源
    最近更新 更多