gltf 2.0 中的着色器

Shaders in gltf 2.0

我之前曾在 gltf 1.0 上工作,现在正在尝试更新我的应用程序以呈现 khronos 提供的 gltf2.0 示例模型。我了解着色器 (glsl) 和技术不再是 gltf 2.0 中核心属性的一部分。

所以我的问题是:

  1. 着色器信息现在是否与 .gltf 分开?我知道有 KHR_technique_webgl 扩展,其中包含技术和着色器属性(就像 gltf1.0 表示着色器的方式一样),如果我们的 material 不是 pbr,我们是否应该使用它?

  2. 渲染引擎现在如何从普通 .gltf(没有扩展名)中获取着色器信息?我们是否像老派那样做,即加载我们自己的着色器并手动将模型属性映射到着色器属性?

KHR_technique_webgl 扩展最终将完成,并将提供一种将自定义着色器包含在 glTF2.0 模型中的方法。但在撰写本文时,扩展尚未完全定义,工具无法实现它。

更一般的情况(如果适合您的需要,建议使用)是使用 PBR 或 Blinn-Phong materials。这些是在 glTF 中抽象声明的,因此渲染引擎可以为这些 material 类型构建自己的着色器,并且通常会更好地与引擎自己的照明 and/or 阴影集成。