【问题标题】:How to load a glb file with WebGL without using Threejs [closed]如何在不使用 Threejs 的情况下使用 WebGL 加载 glb 文件 [关闭]
【发布时间】:2020-11-20 19:53:35
【问题描述】:

我是计算机图形学的新手,我一直在尝试使用threejs 进行照明和着色。现在我正在研究 WebGL,我想编写一些着色器来提高 glb 文件的图像质量。有没有一种快速的方法可以在没有 Threejs 的情况下将其加载到场景中?还是应该将 Threejs 和 WebGL 混合使用?

【问题讨论】:

    标签: three.js webgl


    【解决方案1】:

    WebGL 不支持 .GLB 文件。 WebGL just draws triangles, points, and lines。制作一个完整的 .GLB 查看器几乎需要复制所有三个.js。如果你愿意,你可以这样做。您需要编写支持各种lightsshadows、可能physically based renderingskinning、变形目标、environment maps、环境光遮蔽、法线贴图等的着色器。您需要制作某种 scene graph 来将其全部加载到其中,因为 .GLB 使用场景图来组织场景。要支持阴影,您需要能够为每个灯光绘制一次场景以生成阴影贴图。您可能需要在运行时生成着色器以针对每个对象进行优化,以便仅使用它需要的功能。您还需要编写自己的纹理加载器,实现某种材质系统和动画系统。您可能需要后期处理,以便进行色调映射、发光和景深效果。

    或者您可以继续使用已经编写好的three.js。它是开源的,所以如果你想改进着色器,那就开始编辑吧。

    【讨论】:

    • 为什么这条推文 - twitter.com/larvalabs/status/1455644959655202819 - 说“GLB(或 GLTF)是 WebGL 模型的标准格式”?这与您在回答开头所说的不矛盾吗?
    • Read the spec。看到它没有提到 .GLB 或 .GLTF。甚至“模型”这个词也只是在参考“文档对象模型(DOM)”
    • 啊,我明白了。所以我认为这条推文只是虚假信息,谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2022-07-07
    • 1970-01-01
    • 2010-10-18
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多