问题标签 [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.
aframe - GLTF on demand 和 LOD 用于大量 GLTF 负载
我正在尝试在 AFRAME 中加载一组非常复杂的 GLTF 模型。我的问题很简单;我的目标是尝试在一个独特的场景中加载大约 900 万个 gltf 模型。
我的想法是根据相机距离在 GLTF 模型中组合不同级别的细节,并且只加载相机可见的那些 gltfs。如果不是问题是资产被加载到内存中,我的浏览器最终由于内存消耗而挂起。
这在 AFRAME 中可能吗?
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
吗?
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 工具的二进制版本):
javascript - (A-Frame)本地 gltf 不会加载;无法读取未定义的属性“切片”
我从加载 gltf 模型的A-Frame School获取代码。然后我从 Khronos 加载了示例模型,这个盒子并试图加载它,但我得到了这个错误(几次)
我可以加载 .obj 模型并尝试了模型的多个版本,但总是出现错误。
示例代码在本地工作,这意味着它正确加载模型,从 aframe cdn 获取它。
这是完成的代码
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。
gltf - gltf 2.0 中的着色器
我以前在 gltf 1.0 上工作过,现在正在尝试更新我的应用程序以呈现 khronos 提供的 gltf2.0 示例模型。我了解着色器(glsl)和技术不再是 gltf 2.0 中核心属性的一部分。
所以我的问题是:
着色器信息现在是否与 .gltf 分离?我知道有由技术和着色器属性组成的 KHR_technique_webgl 扩展(就像 gltf1.0 表示着色器的方式一样),如果我们的材质不是 pbr,我们是否应该使用它?
渲染引擎现在如何从普通的 .gltf 中获取着色器信息(没有扩展名)?我们是否像老派的方式那样做,即加载我们自己的着色器并手动将模型属性映射到着色器属性?
aframe - Archilogic gltf 模型无法加载到框架中
我写了一个关于故障的演示场景,以在 a-frame 中测试我导出的 gltf 模型,但在控制台中出现错误:
我的代码
错误:
源文件: 带有源文件的 Glitch Fiddle
我有一种感觉,我错误地将 gltf 导入到故障中或以错误的方式使用它。有谁能够帮助我?
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/AnimatedMorphCube和https://github.com/HowardWolosky/glTF-Sample-Models/tree/morphAnimation /2.0/AnimatedMorphSphere,但他们使用动画,我想手动控制变形权重,例如:
网格.morphTargetInfluences[0] = 0.5;
网格.morphTargetInfluences[1] = 0;
网格.morphTargetInfluences[2] = 1;
谢谢
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 加载程序看到的一些问题:
-
- 您必须识别所有包含有效几何图形的 object3D。在此示例中位于第 335 行:
var geo = data.scene.children[0].children[0].children[0].children[0].geometry
-
- 合并示例不起作用。它在原始示例中也不起作用。
-
- IT 似乎实例化根本不会提高性能:
10000 个对象,多材质 --> 4FPS
10000 个对象,单一材质--> 4FPS
10000 个对象,实例化 --> 4FPS
10000 个对象,合并 --> 不工作
-
- 选择实例化后,几何图形未正确渲染。
这里有我使用 Duck GLTF 示例的代码:
three.js - 如何在三个 JS 中加载 gltf
我是 ThreeJS 的初学者。我想从 Blender 中导入 gLTF 格式的基本立方体...这是我的代码。
它缺少什么?
输出控制台