这是我几年前所做的,从 Mathematica 中生成的曲面开始。我最近没有使用 DAZ Studio 或 JReality,但这可能仍然有效。
首先,必须用颜色绘制表面。尽管 ContourPlot3D 可能在 Mathematica 的屏幕上显示为彩色,但这些颜色来自默认照明。颜色不在表面本身。我们可以使用以下代码绘制带有颜色的 ContourPlot3D:
superSphereColor = ContourPlot3D[x^4 + y^4 + z^4 == 1,
{x, -1, 1}, {y, -1, 1}, {z, -1, 1}, Mesh->False,
ColorFunction -> Function[{x, y, z}, Hue[z]] ]
Export["C:\\junk\\supersphereColor.obj", superSphereColor]
强烈建议在创建绘图时使用 Mesh->False 选项,尤其是在颜色方面。如果没有此选项,生成的 pdf 文件可能会非常大,并且可能需要很长时间才能打开。
在这个表面中,颜色 Hue[z] 随 z 变化。
然后,将绘图导出为 (Wavefront) .obj 文件。当 Mathematica 导出 .obj 文件时,它还会创建一个 .mtl(材料库)文件,其中包含曲面的颜色信息。然后,我们必须将 .obj(和 .mtl)文件转换为彩色 .u3d 文件。
MeshLab 有时无法创建正确的带有颜色信息的 .u3d 文件,因此我们必须使用其他软件创建颜色 .u3d 文件。一些非自由的商业软件可以做到这一点。
DAZ Studio 4 ( http://www.daz3d.com ) 是一款免费软件,可以将 obj/mtl 文件对转换为带有颜色信息的 .u3d 文件。
JReality 也可以导出彩色 .u3d 文件,但生成的彩色 .u3d 和 .pdf 文件会比 DAZ Studio 4 生成的要大。
如果启动 DAZ Studio 4 时出现默认图片,请使用菜单选项“编辑/删除”将其删除。使用菜单选项“文件/导入”导入 .obj 文件。导入时,请确保选中“读取材质库 (.mtl)”框,这样颜色信息也会被导入。
您可能还需要将“比例”设置为 100,以便 PDF 文件中的图像不会太大,但这取决于您的原始表面。导入文件后,立即将其导出。使用“文件/导出”菜单选项将图像导出为 .u3d 文件。
最后,使用上面的 LaTeX 代码将 .u3d 嵌入到 pdf 文件中。可能需要不同的缩放比例,因此您可能需要调整上述数字 3Daac ... 3Dcoo。
对于颜色对象,我们应该使用 3Dlights=CAD,而不是 3Dlights=Primary。“CAD”选项显示对象自己的颜色,并且不向其添加人工颜色。
注意:DAZ Studio 4 也可以生成单色 .u3d 文件,尽管生成的 PDF 文件会比使用 MeshLab 创建的 .u3d 文件大。