1. 点线面的生成
使用Java3d,每个Java3d对象都可以通过调用SetGeomery()方法来上用叭一的Geomery对象, 准切的说Geomery是一个抽象的父类,因此对象的引用都是子类的引用
Gemometry的子类可以分为3类:
无索引的基于顶点的几何体,渲染的时候每个顶点只能被渲染一次
有.........多次
其它可视对象
1.1 点的生成
GeometryArray类(可以设置为作为Shape3D对象的引用,Shape3D对象就可以被加入到BG,然后BG被加入整个场景图)
用来描述一组点集/线集/多边形集, 这些基于项点的基本几何体都是抽象类GeometryArray的子类
一个对象创建的的时候需要
所需要项点的数目
每个项点将要存储的数据类型(坐标,颜色,法向量,纹理坐标),这个被称为顶点格式
*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对象看起来应该怎么样的信息,但是它知道应该去哪里找外观数据.
此类可以共享
Bounds对象
允许程序员定义一个空间范围(子类: BoundingSphere/BoundingBox/BoundingPholtope)