在Java 3D中载入外部3D模型文件.doc

在Java 3D中载入外部3D模型文件.doc

ID:52438946

大小:124.50 KB

页数:25页

时间:2020-03-27

在Java 3D中载入外部3D模型文件.doc_第1页
在Java 3D中载入外部3D模型文件.doc_第2页
在Java 3D中载入外部3D模型文件.doc_第3页
在Java 3D中载入外部3D模型文件.doc_第4页
在Java 3D中载入外部3D模型文件.doc_第5页
资源描述:

《在Java 3D中载入外部3D模型文件.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、在Java3D中载入外部3DJava3D虽然能支持众多的外部3D模型文件,但能支持被Java3D使用的外部模型文件仅为.obj和.lwd两种;分别对应ObjectFile类和Lw3dLoader类。相比之下几款主流的3D建模软件都能生成.obj格式的文件,因此本文主要介绍使用ObjectFile类载入.obj文件的方法。ObjectFile类有三个构造方法,分别为:ObjectFile()ObjectFile(intflags)ObjectFile(intflags,floatradians)其中flags为一个整型的

2、常量参数,用于决定载入的3D模型以什么方式生成。参数radians用于决定载入模型的可显示半径。flags参数可在以下四个值之间任取一个或者用逻辑或("

3、")将几个参数组合使用。ObjectFile.RESIZE:忽略被载入的模型大小,直接把载入的模型放在一个范围在(1,1,1)到(-1,-1,-1)之间的立方体空间内,并把坐标原点设为(0,0,0)。ObjectFile.REVERSE:反转载入的外部模型,即可能看模型的后面。ObjectFile.TRIANGULATE:将模型的面以三角形方式显示,此参数主要便于观察

4、模型凹凸面。ObjectFile.STRIPIFY:以模型文件内模型的实际情况显示,此参数也是默认参数。当初始化了ObjectFile对象后就可以用load方法载入.obj格式的文件,如果模型中已包含了贴图和光照的话也将一起被载入。load方法需要一个参数用于指出.obj格式文件所在的路径,load方法有多个重载方法可以使参数即可以接受String类的值也可以接受Url类的值或者从输入法流读入,如果模型载入成功将返回一个Scene类的对象,如果载入失败将抛异常。Java3D针对load方法定义了三个异常类:FileNo

5、tFoundException类:表示文件未找到。IncorrectFormatException类:表示文件格式不正确。ParsingErrorException类:装载器解析文件时出错。下面的代码用以演示如何用load方法将一个模型载入到Scene类的实例:viewplaincopytoclipboardprint?SceneloadScene=null;intflag=ObjectFile.STRIPIFY;ObjectFileobj=newObjectFile(flag);try{loadScene=obj.l

6、oad(this.getClass().getClassLoader().getResource(filename));}catch(FileNotFoundExceptione){System.out.println("文件未找到或文件路径不正确");e.printStackTrace();}catch(IncorrectFormatExceptione){System.out.println("文件格式不正确");e.printStackTrace();}catch(ParsingErrorExceptione){

7、System.out.println("装载器解析文件时出错");e.printStackTrace();}SceneloadScene=null;intflag=ObjectFile.STRIPIFY;ObjectFileobj=newObjectFile(flag);try{loadScene=obj.load(this.getClass().getClassLoader().getResource(filename));}catch(FileNotFoundExceptione){System.out.print

8、ln("文件未找到或文件路径不正确");e.printStackTrace();}catch(IncorrectFormatExceptione){System.out.println("文件格式不正确");e.printStackTrace();}catch(ParsingErrorExceptione){System.out.println("装载器解析文件时出错");e.printStackTrace();}虽然至此我们已经载入了一个.obj格式文件的3D模型,但把它载入到场景后我们却模型并没有按我们想像的那么显

9、示。对比在3D建模工具中看到模型的样子,我们的模型被绕X轴逆时针的旋转了90度,这主要是Java3D的坐标系和大多数的3D建模工具的坐标系不同。我们假设用户的显示器是垂直于桌面上,那么在Java3D中显示器的宽代表X轴,显示器的高代表Y轴,显示器垂直朝向用户的方法为Z轴(此方向也是Z轴的正数方向)。而多数的建模工具使用的是世界坐标

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。