我们有一个导出 .glb 文件的应用程序,当我尝试使用GLTFLoader将它们加载到 Three.js 中时,模型没有显示纹理,我收到此警告THREE.GLTFLoader: Unknown extension "KHR_materials_pbrSpecularGlossiness"。模型和纹理在https://github.khronos.org/glTF-Sample-Viewer-Release/中加载良好,因此文件没问题。
该扩展似乎已从 Three.js (https://github.com/mrdoob/third.js/pull/24950)中弃用,建议是使用 gltf-extensions 或 gltf.report 转换 .glb 文件并保存新的 .glb 文件 - 这在我的情况下不太实用,是否可以调整一些内容以在 Three.js 中显示带有纹理的模型?
代码足够标准:
const loader = new GLTFLoader();
loader.load(uri, function loaded(gltf) {
const model = gltf.scene;
const newMaterial = new THREE.MeshStandardMaterial({ color: 0xffffff });
model.traverse((o) => {
if (o.isMesh) {
// not sure if it's relevant but if I don't .clone()
// it removes the child and traverse crashes
let mesh …Run Code Online (Sandbox Code Playgroud)