纳金网

标题: Java 3D基础(八) [打印本页]

作者: robert    时间: 2012-2-10 08:25
标题: Java 3D基础(八)
假定你要在场景中绘制一张木桌,你可以为桌面、腿定义几何对象,然后渲染这些对象,但这样做的工作量会很大。一个替代的方法是使用材质贴图。在本例中,你可以使用一个圆形对象来表示整堵墙,然后将一副木纹图像粘贴到该圆形上( Java 3D 中有提供相应的图像文件)。为了使用材质贴图,你需要指定图像,要将该图像粘贴到对象的位置,以及当图像不能和粘贴位置完全吻合时该如何处理。


同光照一样,材质贴图影响整个几何对象。我们将再一次使用 Appearance 类来指定材质贴图效果。 Java 3D 简化了装入材质图像的过程。TextureLoader 类位于 Java 3D 实用类中:


TextureLoader

texLoader = new TextureLoader(url,imageobserver)
appearance.setTexture(texLoader.getTexture());


最好总是将材质图像的宽度和高度设置成 2 的整数次方,其它数值会导致变形。如果图像文件中只有 RGB 值,而没有 alpha 值,则使用:


TextureLoader texLoader

= new TextureLoader(url,new String(“RGB”), imageobserver)


在装入了一幅材质图后,需要将它粘贴到对象上。可以通过对每个顶点应用材质坐标来完成这一任务,Primitive 类将为您生成材质坐标―就象它们为计算光照生成法线一样。如果没有使用 Primitive 类,那么需要自己定义材质坐标。要达成这个目的,必须同时在 x 和 y 方向指定介于 0.0 和 1.0 之间的值。


当需要将矩形材质用于非矩形区域时,贴图过程会变得复杂,将材质粘贴到对象上时对其进行的压缩或拉伸被称为过滤。有几种方法可用于过滤材质,可以根据显卡的性能和期望的外观来选择过滤类型,请多做一些尝试来确定哪种方式看起来最好。材质贴图是一个复杂的主题,不要急于掌握所有不同的选项,刚开始时尽量使用缺省值。
作者: 艳阳天    时间: 2012-2-10 10:07
好啊好中了
作者: 3D小子    时间: 2012-2-10 13:23
学习了
作者: robert    时间: 2012-2-12 09:51
不好
作者: markq    时间: 2012-2-16 21:34
好凌乱啊,看完一篇懒得再看
作者: 她。    时间: 2012-8-14 10:52
不错 不错,技术在随着时间的发展前进中。




欢迎光临 纳金网 (http://wwww.narkii.com/club/) Powered by Discuz! X2.5