JSON模型是在Blender中创建的,动画也是在Blender中使用骨骼制作的。但是当我尝试在three.js中运行动画时,除了鱼之外,场景的其余部分都被显示出来。我一直在寻找答案,但没有找到任何解决我的问题的方法。我正在阅读Jos Dirksen的“学习three.js”这本书。我也是three.js的初学者
var loader=new THREE.JSONLoader();
var mesh;
loader.load('fish_anim1.json', function (model, mat){
mat[0] = new THREE.MeshLambertM
所以我在Blender中创建了一个非常简单的对象和动画。只是骨骼旋转。没别的了。
这是我在Three.JS中看到的。动画很流畅,看起来像我在搅拌机里做的,但它不是相同的动画。它更粗糙,没有正确的蒙皮。
没有伸缩,没有额外的处理。只需加载模型并将其添加到场景中。以下是我的代码片段:
let loader = new THREE.JSONLoader()
loader.load('/static/example.json', (geometry) => {
let material = new THREE.MeshLambertMateri
我正在使用C和OpenGL。我正在尝试加载一个带有骨骼动画的3D模型,但我似乎无法计算动画每一帧的每一块骨骼的绝对矩阵。
我有:对于每个骨骼,我有一个矩阵和一个逆矩阵,对于动画的每一帧,我有每个骨骼的旋转(Euler)和平移。
混合器导入/导出脚本:
编辑:如果有人知道如何用blender获得骨骼的绝对矩阵并导出它,那也没问题(我是Blender的新手)
for each frame f
for each bone i
glLoadIdentity();
glMultMatrixd(bones[i].matrix);
for each
我尝试用下面的代码加载骨骼动画:
let file = Bundle.main.url(forResource: name, withExtension: "dae")
let source = SCNSceneSource(url: file!, options: nil)
let node = SCNNode()
for n in try! (source?.scene(options: nil).rootNode.childNodes)! as [SCNNode] {
node.addChildNode(n)
}
let animationIDs = sourc