问题标签 [gltf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
477 浏览

aframe - GLTF on demand 和 LOD 用于大量 GLTF 负载

我正在尝试在 AFRAME 中加载一组非常复杂的 GLTF 模型。我的问题很简单;我的目标是尝试在一个独特的场景中加载大约 900 万个 gltf 模型。

我的想法是根据相机距离在 GLTF 模型中组合不同级别的细节,并且只加载相机可见的那些 gltfs。如果不是问题是资产被加载到内存中,我的浏览器最终由于内存消耗而挂起。

这在 AFRAME 中可能吗?

0 投票
1 回答
305 浏览

gltf - 如何正确解释 gltf 文件中的数据?

数据:

.

.

.

.

我正在尝试加载以下示例模型

Position并且Normal计数为 24。它们的格式为 a Vec3,因此它包含 8 Vec3。这对于立方体来说似乎是正确的。索引计数为 36,每个面有两个三角形,6 个面有 2 * 3 * 6 = 36。所以索引似乎也是正确的。

但是为什么纹理坐标的计数是 24?UV 的格式为 a Vec2,这意味着有 12 个Vec2。紫外线的计数不应该是 16 吗?

指数也有一个范围0 to 23。这对我来说也没有多大意义,它不应该只是从0 to 7吗?

0 投票
1 回答
6759 浏览

three.js - 使用 Blender Exporter 的 GLTF 在 Three.js 中制作动画

我正在尝试使用 GLTF 和 Three.js,并且我正忙着让动画工作。我的最终目标是能够在 Blender 中创建关键帧动画网格,将它们导出到 GLTF,并在基于 Aframe 的 WebVR 场景中使用它们。然而,目前,我只是想让它们在一个简单的 Three.js 测试工具页面中加载和动画。

我正在尝试进行非常基本的测试以使其正常工作。我采用了 Blender 的默认立方体场景,移除了相机和灯光,并创建了一个关键帧动画,使立方体围绕 Z 轴旋转 360 度。然后我将该立方体导出到 GLTF。首先,我尝试了 GLTF 导出插件,然后尝试将其导出到 Collada 并使用 Cesium 的工具将其转换为 GLTF。两个版本的 GLTF 文件都可以正确加载和渲染多维数据集,但多维数据集没有动画。

我能够使用相同的混合文件并使用 Three 自己的用于 Blender 的 JSON 导出插件导出到 JSON,并且在那里一切正常。所以,我觉得我必须在我的 Javascript 中做一些愚蠢的事情,或者我缺少一些关于 GLTF 的东西。

谁能告诉我我在这里做错了什么?我要到这里抓头发的时间了。

这是我试图用于 GLTF 版本的 Javascript(特别是来自 Cesium 工具的二进制版本):

0 投票
2 回答
2804 浏览

javascript - (A-Frame)本地 gltf 不会加载;无法读取未定义的属性“切片”

我从加载 gltf 模型的A-Frame School获取代码。然后我从 Khronos 加载了示例模型,这个盒子并试图加载它,但我得到了这个错误(几次)

我可以加载 .obj 模型并尝试了模型的多个版本,但总是出现错误。
示例代码在本地工作,这意味着它正确加载模型,从 aframe cdn 获取它。

这是完成的代码

0 投票
1 回答
173 浏览

aframe - 为什么这个 glFT 模型没有通过 A-Frame 加载到 iPhone 浏览器上显示?

此示例在计算机上的 Chrome 中显示模型。但是,当从 iPhone 5 (iOS 9.3.1) 上的 Chrome 或 Safari 加载此示例时,它不会显示任何内容。这也发生在你身上吗?为什么会这样?

编辑:它可以在 iPhone 6 (iOS 10.2.1) 上的 Safari 中使用,但我仍然想知道为什么。

编辑 2:它现在可以在 iPhone 5 上的 Safari、Firefox 和 Chrome 中运行;iOS 已更新至 iOS 10.3.2。

0 投票
1 回答
2462 浏览

gltf - gltf 2.0 中的着色器

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

所以我的问题是:

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

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

0 投票
1 回答
967 浏览

aframe - Archilogic gltf 模型无法加载到框架中

我写了一个关于故障的演示场景,以在 a-frame 中测试我导出的 gltf 模型,但在控制台中出现错误:

我的代码

错误:

源文件: 带有源文件的 Glitch Fiddle

我有一种感觉,我错误地将 gltf 导入到故障中或以错误的方式使用它。有谁能够帮助我?

0 投票
1 回答
504 浏览

three.js - 如何使用 gltf 实现 morphtargets 人类演示?

就像https://threejs.org/examples/?q=morph#webgl_morphtargets_human一样,但我想实现一个基于 glTF 的演示。

我曾尝试过 glTF 模型,例如https://github.com/HowardWolosky/glTF-Sample-Models/tree/morphAnimation/2.0/AnimatedMorphCubehttps://github.com/HowardWolosky/glTF-Sample-Models/tree/morphAnimation /2.0/AnimatedMorphSphere,但他们使用动画,我想手动控制变形权重,例如:

网格.morphTargetInfluences[0] = 0.5;
网格.morphTargetInfluences[1] = 0;
网格.morphTargetInfluences[2] = 1;


谢谢

0 投票
2 回答
3277 浏览

three.js - GLTF 创建实例

我是 THREEJS 的新手。过去,我使用过 AFRAME、CESIUM、XEOGL 和 BABYLONJS。但最终,由于内存消耗和性能,我意识到制作 CAD 可视化器的最佳产品是 THREEJS。

BABYLONJS 加载一个大的 GLTF 文件 (400MB) 需要 4 多分钟,而 THREEJS 只需要 30 秒。BABYLONJS 占用的内存是 THREEJS 的 4 倍。

我知道在 THREEJS 中从加载的 GLTF 文件创建实例 (GPU) 仍然存在一些问题,但我只需要更改每个实例中的位置和旋转,不需要任何动画。

我尝试过使用 GLTF1.0 和 GLTF2.0,问题是一样的。当我加载 GLTF 模型时,我得到了一个场景。从这个场景中,我试图从 children 数组中获取 buffergeometry。但是,当我尝试创建一个实例时,它不起作用。我的对象是静态的(根本没有动画)。

有什么方法可以创建 Object3D 的实例或从它的缓冲几何?

在 BABYLONJS 中,从加载的 GLTF 文件创建实例非常简单。我真的需要使用实例来节省 RAM 并使用 GPU 而不是 CPU 资源。我的场景需要加载相同对象的多个副本来复合场景。

我使用 GLFT 加载程序看到的一些问题:

    1. 您必须识别所有包含有效几何图形的 object3D。在此示例中位于第 335 行:

    var geo = data.scene.children[0].children[0].children[0].children[0].geometry

    1. 合并示例不起作用。它在原始示例中也不起作用。
    1. IT 似乎实例化根本不会提高性能:
  • 10000 个对象,多材质 --> 4FPS

  • 10000 个对象,单一材质--> 4FPS

  • 10000 个对象,实例化 --> 4FPS

  • 10000 个对象,合并 --> 不工作

    1. 选择实例化后,几何图形未正确渲染。

这里有我使用 Duck GLTF 示例的代码:

0 投票
0 回答
2010 浏览

three.js - 如何在三个 JS 中加载 gltf

我是 ThreeJS 的初学者。我想从 Blender 中导入 gLTF 格式的基本立方体...这是我的代码。

它缺少什么?

输出控制台

输出控制台