Java怎么实现导入3D模型并数据web展示? 80C

java springmvc web端展示 读取3D .3ds .dxf等模型,并加入散点式数据展示,采用什么技术、插件来实现?

1个回答

文1 创建三维几何模型:[ http://www.cnblogs.com/dennisit/archive/2013/05/06/3063042.html ]
文2 加载外部Obj模型:[ http://www.cnblogs.com/dennisit/archive/2013/05/07/3065126.html ]
文3 载入外部3ds模型:[ http://www.cnblogs.com/dennisit/archive/2013/05/07/3065479.html ]

本来按照苏若年大神的文章以及足够将两种模型都用Java3D显示出来了,但文章给出的显现效果是不含纹理的,而项目需要生成含纹理的3D模型。因此,本文的重点主要在载入纹理上,算是对苏若年大神文章的小小补充吧。

———————————————————————————————————————————————————————
加载Obj模型及纹理:

文2中给出的代码实际上是可以保证导入Obj文件同时加载纹理的,只不过对Obj文件有一定的要求。Java3D可以导入的含纹理的Obj模型,其格式为Wavefront obj。(不保证其它格式的文件也可以)这种文件除了有一个模型文件.obj外,还含有纹理文件.mtl以及相应的各种格式的纹理图片。这样的Obj模型可以通过maya生成。

模型.obj文件除模型本身数据外,还会指定纹理文件.mtl的路径,关键字为mtllib。纹理文件.mtl中也会包含纹理图片的路径,也就是这个路径会误导使用者,使得得到的模型无法载入纹理,其问题的原因在与Java3d加载Obj的类——ObjectFile。

在加载模型时,ObjectFile会根据模型文件的路径获取一个basedir目录路径,这个目录路径会同时用在解析.obj文件和.mtl文件中,也就是说在解析这两个文件时,文件路径解析的结果是basedir+文件名。这就导致一个问题,当.obj文件、.mtl文件以及纹理贴图不在同一个目录时,是无法加载纹理的。换句话说,这两个文件的路径是失效的,只要文件名有效。有兴趣的朋友可以打开.obj文件和.mtl文件看一下,设置文件的路径,然后在程序中进行调试看看。

加载含纹理的Obj模型,正确的做法是将.obj文件及其相应的.mtl文件和纹理贴图放在同一目录下。

qq_29295835
yusq456 没有别的办法吗?
接近 2 年之前 回复
qq_29295835
yusq456 这些试过了,appelt 试过多种方法,web就是展示不出来
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐