JAVA3D-3

1. 点线面的生成

    使用Java3d,每个Java3d对象都可以通过调用SetGeomery()方法来上用叭一的Geomery对象, 准切的说Geomery是一个抽象的父类,因此对象的引用都是子类的引用

     Gemometry的子类可以分为3类:

无索引的基于顶点的几何体,渲染的时候每个顶点只能被渲染一次

有.........多次

其它可视对象

1.1 点的生成

     GeometryArray类(可以设置为作为Shape3D对象的引用,Shape3D对象就可以被加入到BG,然后BG被加入整个场景图)

       用来描述一组点集/线集/多边形集, 这些基于项点的基本几何体都是抽象类GeometryArray的子类

一个对象创建的的时候需要

所需要项点的数目

每个项点将要存储的数据类型(坐标,颜色,法向量,纹理坐标),这个被称为顶点格式   

image

*Java3D坐标系: Z轴垂直于屏幕,Y轴向着屏幕上.

*PointAttribute,对象管理点如何被渲染,默认一个点被渲染成一个象素大小

2. 直线的生成

    Java3D中直线是由LineArray等对象生成的, 对应的也有LineAttribute对象管理渲染

2.1 LineAttribute

    LA通过三种途径来改变直线的渲染方式,默认直线是一条实线,一个像素宽,没有进行反走样.

    Java3D的直线生成对象有LineArray,LineStripArray,IndexedLineArray和IndexedLineStripArray,每个对象都需要指定一个顶点的坐标集和一个顶点的像素颜色集.

    IndexedLineArray 类(顶点重用,如立方体的顶点),但是索引几何体重用索引是有代价的,节省了空间但是在渲染的时候性能会有损失,如果性能很重要的话,那么尽可能的使用带状的几何体而不是索引几何体.

 

3.面的生成

主要是生成三角面片或是四角面片来构成的

 

4. 曲面的可视化

自定义函数

 

5. 2D与3D文字的生成

有两种方法可以将文字加入到Java3D场景中

1. 使用Text2D类

2. 使用Text3D类    

6. Appearance,Shape3D和Bounds对象的使用

Appearance

表示一些对象的外观属性,是对对象外观的一种抽象.但不说明具体的渲染方法,渲染方法留给指定该外观属性的几何体.

Shape3D对象可能会同时引用一个Geometry对象和一个Appearance对象,Geometry指明了每个顶点的信息(如:颜色),但这些数据不能充分说明外观

一个Appearnce对象并不包含Shape3D对象看起来应该怎么样的信息,但是它知道应该去哪里找外观数据.

image 

此类可以共享

image

Bounds对象

允许程序员定义一个空间范围(子类: BoundingSphere/BoundingBox/BoundingPholtope)

posted @ 2009-10-20 21:23  refeiner  阅读(858)  评论(0编辑  收藏  举报