gpt4 book ai didi

opengl - 如何在openGL中实现关节和骨骼?

转载 作者:行者123 更新时间:2023-12-04 05:19:01 25 4
gpt4 key购买 nike

我正在滚动自己的openGL框架,并且知道如何绘制3d对象...等...

但是,如何定义可能具有关节的3d对象之间的关系?
或如何将3d对象定义为“骨骼”?
有没有好的资源?

最佳答案

But how do you define relationships between 3d objects that may have a joint?



OpenGL并不关心这些事情。我不是纯图形API。因此,您需要发挥自己的创造力并自己定义这样的结构。骨骼动画的常用方法是使用骨骼/钻机系统,其中每个骨骼的方向(由四元数或3×3矩阵表示)的长度和附加到其上的骨骼列表(即某种树)。

我将这个结构定义为
typedef float quaternion[4];

struct Bone {
quaternion orientation;
float length;

int n_subbones;
Bone *subbones;
};

除此之外,您还需要一个从钻机开始的枢轴。我会这样
typedef float vec3[3];

struct GeomObjectBase {
vec3 position;
quaternion orientation;
};

struct BoneRig {
struct GeomObjectBase gob;

struct Bone pivot_bone;
}

接下来,您需要一些函数来迭代此结构,从中生成矩阵调色板,以便可以将其应用于模型网格。

note: I'm using freeglut



完全不相关

关于opengl - 如何在openGL中实现关节和骨骼?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14030929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com