- 最后登录
- 2013-6-5
- 注册时间
- 2011-12-5
- 阅读权限
- 90
- 积分
- 17782
  
- 纳金币
- 17782
- 精华
- 0
|
Primitive 类
Primitive 是用于几何对象的抽象类,这些用在场景图中的几何对象可以作为简单构件块使用。Java 3D 包括 Primitive 的几个具体子类 ― Sphere、Box、Cone 和 Cylinder ― 这些子类使得您可以无须指定许多数据就能轻松地创建基本对象。例如,当使用 Sphere 类时,您只需指定半径,然后,就会为您生成所有的顶点数据。
在本教程中我们将只使用 Primitive,以便您无须陷入必须指定所有图形数据的细节中
![]()
Shape3D 类
如果您不使用某个 Primitive 类,那么您将不得不使用 Shape3D 类来指定所有顶点数据。您可以将数据指定为三角形、四边形、直线和点。通常通过使用一些互相连接的三角形或四边形条带将球体的几何表示定义成多边形网格。
下图可以让您了解这些条带是如何合并形成网格。为了突出这些条带,对它们使用了不同的颜色。在该 Shape3D 对象中,每条三角形条带都与相临的三角形条带共享公共顶点,当渲染它们的时候就形成一个网格表面。
![]()
每顶点数据(Per-vertex data)
每个顶点至少必须有一个位置值(坐标)。除此之外,还可以为每个顶点指定其它值,如颜色值、法向矢量和材质坐标。法向矢量用于光照效果,材质坐标在通过材质贴图将材质应用到表面时使用。此外,每个顶点也可以含有 alpha 或透明度值同其颜色一起指定。
幸运的是,当使用 Primitive 类时,会为您生成顶点法线和材质坐标。我们将会探讨最常用的每顶点属性,顶点法线和方向坐标。
Apperance 对象
虽然您可以用每个顶点指定大量的数据,但是许多图形效果却是通过使用 Appearance 对象来应用的。该对象描述一个对象表面的整体属性。每个 Shape3D 和 Primitive 对象都将有自己的 Appearance 对象,并且每个 Appearance 对象都包含几个属性对象。例如,Appearance 对象可以包含 ColoringAttributes 对象和 RenderingAttributes 对象。
如您可见,有了这些不同的图形数据类型,Java 3D 应用程序一下子变得很复杂。为简单起见,我们将只讨论 Texture 和 Material 属性类。
小测验
让我们做个测验来测试一下您目前的知识。Primitive 基类用于以下项中的哪一项:
1.Java 3D 生成的高级几何对象
2.定义球、圆锥体、圆柱体和立方体
3.指定史前岩洞绘画
4.1 和 2 |
|