【发布时间】:2012-02-16 08:33:46
【问题描述】:
我想画一只 3D 猫(带动画),它不过是一堆 3D 对象——椭圆体、金字塔、球体等。 我有两个问题:
1) 有什么方法可以定义您自己的复杂几何 3D 对象,而不是标准 Three.js 对象,例如 Sphere、Cube...
2) 当动画整只猫时,我应该为每个对象定义一个动画函数吗?有什么办法可以将一些对象组合在一起?
【问题讨论】:
标签: javascript html canvas webgl three.js
我想画一只 3D 猫(带动画),它不过是一堆 3D 对象——椭圆体、金字塔、球体等。 我有两个问题:
1) 有什么方法可以定义您自己的复杂几何 3D 对象,而不是标准 Three.js 对象,例如 Sphere、Cube...
2) 当动画整只猫时,我应该为每个对象定义一个动画函数吗?有什么办法可以将一些对象组合在一起?
【问题讨论】:
标签: javascript html canvas webgl three.js
对于第一个问题,我建议您阅读parameter driven modelling,这将允许您制作一致的复杂对象,而无需在每次创建时都重新发明轮子。至于创建自定义对象,就像折线实际上是具有标准线方法(以及特定于对象的方法)的迭代实现的线的集合一样,您将创建一个包含集合的 javascript 对象创建自定义形状所需的对象。 Here's 一个很好的 webgl 备忘单可以帮助你一点。
问题二有点类似于我们在上面描述复杂对象的方式,虽然您将编写一个 Cat 对象渲染/动画函数,但您将基于每个对象处理动画(除了完整对象静态运动,想象一只猫在自动扶梯上)。再一次,约束或参数驱动设计将成为您的救星,因为两个或多个对象部分重叠的事实绝不意味着这些对象是明确链接的。
作为结束说明,我建议您查看clojurescript。这种类型的工作可能没有必要,但 lisp 在 CAD 脚本世界中非常流行,从长远来看,你肯定会帮自己一个忙,至少熟悉编码约定 - 很多问题你在这个项目上工作的时候会得到各种编程语言的回答,但你可能会发现许多由在栅栏两边工作的人(cad/programming)写的答案会用lisp写。这是最后的一般CAD forum,它是所有 CAD 方面的绝佳资源。
【讨论】: