是否可以在 Silverlight 3 或 Silverlight 4 应用程序中加载 3D 对象?(3DS Max 对象或其他格式)。除了加载对象,我还需要一些基本的交互——简单的旋转、放大/缩小。
4 回答
我认为托管 3D 引擎Balder可能是您的正确选择。它在 Silverlight 中运行得非常好,我已经将它与 Silverlight 3 和 4b 一起使用。Balder 目前支持 ASE 格式,但 Einar 和他的贡献者正在努力开发引擎,他们希望在未来支持更多的网格格式。
并不真地。
可能有一些库可以为 SL 带来一些有限的 3D-esq 效果(实际上 SL 3 本身就带有一点)。但是 SL 并没有真正的 3D 支持。
有旧的Kit3D项目,但现在不知道,它在去年没有更新。
当然有可能。你想写多少代码?它看起来有多好?
Silverlight 中的 3D 概念与 Flash 中的 3D 相同。如果您掌握三角学和基本代数,您可以做到。除非你生锈,否则这很容易。
首先,您需要将顶点导出为可以读取或直接嵌入到项目中的格式。接下来,您需要生成几个三角形并将它们的句柄推入一个数组。
您不能非常有效地进行顶点照明,因此您可能会被平面着色所困。在每一帧之前,您必须:
- 遍历你的几何
- 应用您的旋转和变换(位置、缩放)
- 为几何图形中的每个三角形调整阵列中的一个三角形(应用矩阵)
- 将您的三角形从后到前排序
- 调整每个三角形的颜色(最好只调整一次)
- 等等。
你很难超过 1,000 个三角形/3,000 个顶点。你可以这样做,但如果你想同时做其他事情,那就不行了。
所以,是的。这是完全可能的,但不是现成的,也不是集成到 Silverlight 中的。目前,我们不得不求助于像过去那样制作 3D 图形的方式……手工制作。
在 Silverlight 3/4 中加载 3Ds Max 对象几乎是不可能的。
Google o3D可能是您要走的路。