Blender与Threejs 场景/模型 导入导出Transform | 您所在的位置:网站首页 › blender添加灯光 › Blender与Threejs 场景/模型 导入导出Transform |
背景 以前在项目中,使用Threejs作为前端编辑器,然后使用Blender作为渲染服务器时,发现导入的gltf数值有变化,因为当时只需要渲染结果,因此把场景直接渲染了事,没有做更多的接触。最近又遇到同样的问题,因此把这个问题彻底梳理并记录于此。 问题所在及解决虽然两者都是右手坐标系,但是他们的坐标轴本身是不一样的,具体关系为 Threejs -> Blender,是绕X轴 顺时针 90°。这时候在两者之间的差异有三种情况 如果是通过数值计算,而不是场景/模型的导入导出方式,则需要需要手动 进行 绕X轴翻转,然后才能使用翻转后的数据进行其他计算。如果是通过 gltf 为载体,进行导入导出,那么 threejs/blender 都能显示正确的效果,但是他们的transform数据是发生了变化的,也就是 blender/threejs 自动帮我们进行了转换。如果是通过 obj 为载体,进行导入导出,则在blender中需要进行设置,也就是指定 哪个轴是 指向屏幕里的轴,哪个轴是指向上问题验证1、使用手工处理数据 2、通过gltf/glb 为载体中转 在threejs中如上图场景,实际的gltf文件为 相机、灯光等元素也执行了相同变换 3、blender通过obj进行导入导出,需要进行指定 通过上述验证,我们可以根据情况灵活的使用,一般 就是手动转换数据比较灵活,可以在两边做一些额外的操作和处理。然后就是可以使用 glb 格式进行中转,因为他可以承载整个场景,对于相机的导入导出很有帮助。注意相机导出时需要进行勾选。但是灯光的强度目前还没有找到很好的映射关系。 |
CopyRight 2018-2019 实验室设备网 版权所有 |