three.js - 为什么这个 Threejs 克隆组通过 GLTFLoader 加载不当?
问题描述
所以我试图从 Three.js 示例中克隆士兵模型,因为我以后想要不止一个: https ://threejs.org/examples/webgl_animation_skinning_blending.html
我将第 93 行更改为:
const loader = new GLTFLoader();
loader.load( 'https://threejs.org/examples/models/gltf/Soldier.glb', function ( gltf ) {
model = gltf.scene.clone();
scene.add( model );
model.traverse( function ( object ) {
if ( object.isMesh ) object.castShadow = true;
} );
但现在士兵是巨大的。
为什么会发生这种情况,是否有解决方法?
这是一个显示问题的jsfiddle:
https://jsfiddle.net/paranoidray/jLpzk374/22/
如果您查看 jsfiddle 并更改第 93 行并删除 clone() 调用。一切都恢复正常...
任何帮助将不胜感激。
解决方案
gltf.scene
请像这样克隆:
model = SkeletonUtils.clone( gltf.scene );
核心尚不支持克隆蒙皮网格。但是,您可以使用它SkeletonUtils.clone()
来执行此任务。
推荐阅读
- windows - Windows 终端:从 .exe 和 .nsi 创建 .exe 安装程序
- multithreading - 如何用等待功能替换 OMP BARRIER?
- c - 在 mingw 中使用 printf 打印 long double 时输出错误
- python-3.x - 来自 html 页面的通用日期解析器
- javascript - 因为我是 ReactJs 的新手,所以不要面对它的错误并得到这个错误
- docker - 运行 OpenTelemetry Collector 时获取“与 Jaeger Collector 后端的连接状态..”(jaeger/TRANSIENT_FAILURE)
- excel - 从列中计算每个单元格中的数字(单元格中的单个数字或用逗号分隔)
- android - Android 8 - 保持接收者注册
- python - 如何使用经过身份验证的用户在 Django 的 Test.py 中发出 POST 请求?(需要令牌认证?)
- symfony - symfony 表单处理子控制器