- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在Java 3D中载入外部3D模型文件
在Java 3D中载入外部3D
ObjectFile类有三个构造方法,分别为:
ObjectFile()
ObjectFile(int flags)
ObjectFile(int flags, float radians)
其中flags为一个整型的常量参数,用于决定载入的3D模型以什么方式生成。
参数radians用于决定载入模型的可显示半径。
flags参数可在以下四个值之间任取一个或者用逻辑或(|)将几个参数组合使用。
ObjectFile.RESIZE:忽略被载入的模型大小,直接把载入的模型放在一个范围在(1,1,1)到(-1,-1,-1)之间的立方体空间内,并把坐标原点设为(0,0,0)。
ObjectFile.REVERSE:反转载入的外部模型,即可能看模型的后面。
ObjectFile.TRIANGULATE:将模型的面以三角形方式显示,此参数主要便于观察模型凹凸面。
ObjectFile.STRIPIFY:以模型文件内模型的实际情况显示,此参数也是默认参数。
当初始化了ObjectFile对象后就可以用load方法载入.obj格式的文件,如果模型中已包含了贴图和光照的话也将一起被载入。load方法需要一个参数用于指出.obj格式文件所在的路径,load方法有多个重载方法可以使参数即可以接受String类的值也可以接受Url类的值或者从输入法流读入,如果模型载入成功将返回一个Scene类的对象,如果载入失败将抛异常。Java 3D针对load方法定义了三个异常类:
FileNotFoundException类:表示文件未找到。
IncorrectFormatException类:表示文件格式不正确。
ParsingErrorException类:装载器解析文件时出错。
下面的代码用以演示如何用load方法将一个模型载入到Scene类的实例:
view plaincopy to clipboardprint?
Scene loadScene = null;
int flag = ObjectFile.STRIPIFY;
ObjectFile obj = new ObjectFile(flag);
try {
loadScene = obj.load(this.getClass().getClassLoader().getResource(filename));
} catch (FileNotFoundException e) {
System.out.println(文件未找到或文件路径不正确);
e.printStackTrace();
} catch (IncorrectFormatException e) {
System.out.println(文件格式不正确);
e.printStackTrace();
} catch (ParsingErrorException e) {
System.out.println(装载器解析文件时出错);
e.printStackTrace();
}
Scene loadScene = null;
int flag = ObjectFile.STRIPIFY;
ObjectFile obj = new ObjectFile(flag);
try {
loadScene = obj.load(this.getClass().getClassLoader().getResource(filename));
} catch (FileNotFoundException e) {
System.out.println(文件未找到或文件路径不正确);
e.printStackTrace();
} catch (IncorrectFormatException e) {
System.out.println(文件格式不正确);
e.printStackTrace();
} catch (ParsingErrorException e) {
System.out.println(装载器解析文件时出错);
e.printStackTrace();
}
虽然至此我们已经载入了一个.obj格式文件的3D模型,但把它载入到场景后我们却模型并没有按我们想像的那么显示。对比在3D建模工具中看到模型的样子,我们的模型被绕X轴逆时针的旋转了90度,这主要是Java 3D的坐标系和大多数的3D建模工具的坐标系不同。我们假设用户的显示器是垂直于桌面上,那么在Java 3D中显示器的宽代表X轴,显示器的高代表Y轴,显示器垂直朝向用户的方法为Z轴(此方向也是Z轴的正数方向)。而多数
您可能关注的文档
- 冰皮(广式)月饼用料比例及制作方法.doc
- 冲天炉与感应电炉熔炼区别.doc
- 冲孔灌注桩施工技术交底记录.doc
- 冶炼操作工实践操作考试试题.doc
- 冶金原理试题.doc
- 冶金污染及治理.doc
- 冷墩计算公式.doc
- 冬季如何远离流感.doc
- 冷季型草坪杂草防除.doc
- 冬暖式大棚如何建造及用料知识.doc
- 2025年山西省县乡教师选调考试《教育学》试卷带解析及答案(精选题).docx
- 2025年山西省县乡教师选调考试《教育学》试卷带解析及答案(精选题).docx
- 2025年山西省县乡教师选调考试《教育学》试卷带解析及答案(新).docx
- 七年级上册语文第二单元测试卷(统编版).docx
- 2025年山西省县乡教师选调考试《教育学》试卷带解析及答案参考.docx
- 2025年山西省县乡教师选调考试《教育学》试卷带解析及答案(全优).docx
- 2025年山西省县乡教师选调考试《教育学》试卷带解析及答案(必背).docx
- 2025年山西省县乡教师选调考试《教育学》试卷带解析及答案(名校卷).docx
- 2025年山西省县乡教师选调考试《教育学》试卷带解析及答案(典优).docx
- 2025年山西省县乡教师选调考试《教育学》试卷带解析含答案.docx
原创力文档


文档评论(0)