我有数学PhD学位,有C++编程方面的经验。我对电脑动画很感兴趣,我想尝试用C++来教自己。
我目前的卑微资源是: Builder 6和一台东芝笔记本电脑( Toshiba ),配有1.49GG的内存和一个数学协处理器。请给我尽可能慷慨的建议,详细说明哪些资源是必要的,如果可能的话,请给我一些关于成本的想法。
最后,是否有可能将C++中创建的动画集成到网页设计中?
提前谢谢你的帮助。
发布于 2012-02-06 13:49:17
你的问题很宽泛/不太具体,但我要试一试。
你想给3d模型动画吗?最常见的方法被称为“骨骼动画”,本质上可以归结为大量的矩阵乘法。模型中的每个顶点都有一个或多个受其影响的“骨头”,这些骨头相互连接,形成“骨架”。每根骨都有一个4x4矩阵,用来描述其相对于其母骨的方向。例如,肘骨可能是肩骨的子代,肘关节的基质可以表示肘关节相对于肩部的方向。
每一帧,从骨架中的单个根节点(可能是胸部)开始,然后将对象的"world“方向(另一个4x4矩阵)分配给它。然后你遍历你的骨骼图,把骨头的局部方向矩阵乘以母体骨的世界矩阵,得到骨骼的世界矩阵。这通常被称为矩阵调色板。
最后,模型中的每个顶点使用来自一个或多个骨头的矩阵来“剥皮”,以找到框架的最终位置。例如,腿部中部的顶点很可能只受腿骨的影响,而肩部附近的顶点则可能受到两块或更多的骨头的影响。这样做可以使模型的手臂被抬高,而肩部附近的顶点看起来是“压缩”的(而不是折叠到上半身)。
动画一般是通过关键帧来实现的,在关键帧中,每个骨的相对方向被表达出来。例如,描述模型运行的动画可能有10秒的时间,并且每隔半秒钟就有一个关键帧。要实现循环动画,第一个和最后一个关键帧可以是相同的。在动画播放期间,骨架将在其最近的关键帧之间“混合”。这必须在计算出每根骨头的世界方位之前进行。
有免费的工具可用于编译C++,即Gnu编译器集合(GCC),以及一个免费版本的微软视觉工作室。我建议您利用其中之一的最新版本。我对GCC很满意。
您可能想看看您的机器上可用的视频卡。你需要一些最近的东西来实现一些动画技术。
在某种程度上,作为一种安全措施,HTML通常无法运行本机代码,例如用C++编写的代码。在浏览器中可以使用许多不同的方式进行3d动画,其中最有趣的可能是WebGL (基本上是Javascript中的OpenGL绑定)。
请注意,还有其他方法来做动画,甚至骨骼动画也可以实现与描述不同的方式。例如,您可以使用四元数来表示旋转而不是矩阵。
发布于 2012-02-17 02:40:46
首先,我发现如果没有一个清晰的项目,我就不可能学习一种编程语言。因此,您首先应该尝试更精确地定义您喜欢的计算机动画中的内容。这是一个巨大的域,包含(但不限于):
的更多信息
我发现有两本书是全球感兴趣的:
我建议你读:
忘了生成器6..。然后,这取决于您正在编程的操作系统:
对于非程序员来说,这些都是免费的,而且很容易开始。
希望能帮上忙。
https://gamedev.stackexchange.com/questions/23470
复制