`

Alternativa3D 8 基础理论 / 概念

 
阅读更多

from: http://blog.csdn.net/liminxin272/article/details/6969759

 

Alternativa3D 8 基础理论

每一个3D引擎,都有自己的三维空间坐标系,Alternativa3D 采用跟 3ds Max 相同的坐标系,即右手坐标系

 

 

 

 

 

 

 

 

 

 

1. 坐标轴方向
右手手背朝下,中指朝上,食指朝前,拇指朝右。
拇指 所指方向为 x轴 正方向,食指 所指方向为 y轴 正方向,中指 所指方向为 z轴 正方向。

 


 

2. 绕轴旋转方向
右手大拇指指向轴的正方向,四指握拳的方向就指该轴旋转正方向。

 



 

二、UV坐标系

 

1. 什么是uv坐标
将一个三维模型沿着表面剪开,展平为一张二维平面图。
此时,三维模型表面的每一个点,都可以在平面图上找到一个与之相对应的点。
即,三维模型表面上的每个三维点坐标(x, y, z)都有一个与之相对应的二维贴图坐标(u, v)。

 



 2. Alternativa3D 中的 uv 坐标系
u 与 v 的取值范围都为 [0, 1],在 Alternativa3D 中,贴图的uv坐标为:
左上角(0, 0),左下角(0, 1),右上角(1, 0),右下角(1, 1),其它点的 uv 根据相对位置取 0 到 1 之间的值。

 



 三、Alternativa3D 三维空间结构

构成 Alternativa3D 三维空间的基本要素有:三维根容器、摄像头、视窗、三维对象、三维对象的材质

 



 
三维舞台(Stage3D):3D舞台,奇妙的三维世界就在这里展示。
三维根容器(Object3D):Alternativa3D 构建的三维世界,其它由 Alternativa3D 创建的三维对象都要添加进来。
摄像头(Camera3D):三维世界中的眼睛,没有它我们啥也看不到。
视窗(View):摄像头所拍摄到的画面。
三维对象(Object3D):没有它,我们看啥?
材质(Material):人靠衣装,不可裸奔,没有材质的三维对象会被警察叔叔带走的。

 

 

Alternativa3D 8 基础概念

1. 3D对象


 Object3D

Object3D 
是所有3D对象的基类,也是最简单的3D对象,它定义了一个3D对象的基本属性和方法。
Object3D可以作为容器包含其它3D对象,类似于2D中的 DisplayObjectContainer

所有的3D对象都继承自Object3D。3D对象大体上可区分为可视对象与不可视对象:
不可视对象
  ● Camera3D(3D摄像机)
  ● Light3D(3D灯光)
     ● AmbientLight(环境光)
     ● DirectionalLight(方向性光源)
     ● OmniLight(点光源)
     ● SpotLight(聚光灯)
  ● Joint(骨骼关节)
可视对象
  ● AxisAlignedSprite(单一轴向正对摄像机的平面对象)
  ● Sprite3D(所有轴向正对摄像机的平面对象)
     ● AnimSprite(通过不断更换材质形成动画的Sprite3D)
  ● Mesh(空间网格)
     ● Decal(图案)
     ● Plane(平面)
     ● Box(立方体)
     ● GeoSphere(几何球体)
     ● SkyBox(天空盒)
     ● Skin(骨骼动画)
  ● WireFrame(线框)

Alternativa3D 8 中的3D对象

 



 
■ Mesh

Mesh 
可理解为空间网格,是展示几何体(Geometry)的地方,Geometry包含描述几何体的顶点和三角面信息。
几何体在Mesh中的显示形式为表面(Surface),表面是由一个序列的三角面构成,这些三角面通过Surface的材质进行显示。或许把Surface想象成皮肤更容易理解一些。
Mesh、Geometry、Surface三者的关系是:Geometry为Mesh提供了顶点和三角面信息,Mesh根据这些信息创建Surface来显示Geometry所描述的3D对象。

所有需要显示的空间几何体都继承自Mesh类,不论是内建的基本几何体,还是自定义几何体(代码创建或者外部导入模型)都是通过Mesh进行展示的。
Alternativa3D通过扩展Mesh类为我们提供了 DecalPlaneBoxGeoSphereSkyBox 等基本几何体

 

 Surface

Surface 
可理解为表面或者皮肤,它由一个序列的三角面组成,具有单独材质。
每个Mesh可分割为多个Surface,当需要为Mesh中的部分三角面赋予单独的材质时,可将序号连续的三角面创建为一个Surface。
例如,Mesh中有10个三角面,需要为三角面0、1、2、5、6赋予材质m0,其它的三角面赋予材质m1,那么可以将三角面分为[0,1,2]、 [3,4]、[5,6]、[7,8,9]四个序列,创建s0、s1、s2、s3四个Surface,其中s0、s2赋予材质m0,s1、s3赋予材质 m1。


 Skin

简单点说,Skin 就是可带骨骼动画的Mesh。通过Joint绑定顶点连接成骨骼。


■ Joint

Joint 
可理解为关节,是Skin的一部分,用于骨骼动画。



2. 材质


■ Material

材质是3D对象非常重要的一部分,没有材质的3D对象只是一堆描述几何体形状外观等信息的数据,什么也看不到。我们所能见到的那些奇妙的空间几何体都是通过材质才得以显现的,材质让虚拟的3D对象变得可见。

材质分为填充材质(FillMaterial)和贴图材质(TextureMaterial、ParserMaterial)。
Material 是所有材质的基类,定义了材质的基本属性和方法。
FillMaterial 是填充材质,以单一的颜色填充整个Surface。
TextureMaterial 是贴图材质,用位图填充Surface。要正确表现贴图效果,几何体顶点UV坐标的设置十分重要。
ParserMaterial 用以储存外部加载的*.DAE或*.A3D模型的材质信息,需要通过TextureLoader(贴图加载器)来加载外部贴图。

LightMapMaterial(灯光贴图材质)、StandardMaterial(标准材质)、VertexLightTextureMaterial(动态灯光贴图材质)都是继承自TextureMaterial
StandardMaterial 支持漫反射贴图、法线贴图、高光贴图、光泽度贴图和光泽度、高光强度设置。
LightMapMaterial 支持灯光贴图。
VertexLightTextureMaterial 支持动态灯光。

填充材质
  ● FillMaterial(填充材质)
贴图材质
  ● ParserMaterial(解析材质)
  ● TextureMaterial(贴图材质)
     ● StandardMaterial(标准材质)
     ● LightMapMaterial(灯光贴图材质)
     ● VertexLightTextureMaterial(动态灯光贴图材质)

Alternativa3D 8 中的材质



 
3. 资源


■ Resource

Resource 是GPU资源的基类,定义了资源上传与释放的相关属性和方法。
GPU资源分为2种:几何体资源和贴图资源。
几何体资源使用顶点缓存(VertexBufferResource)和索引缓存(IndexBufferResource)进行上传。
贴图资源包括位图贴图资源(BitmapTextureResource)和压缩贴图资源(ATFTextureResource)。

几何体资源
  ● Geometry(几何体资源)
贴图资源
  ● TextureResource(贴图资源)
     ● ATFTextureResource(压缩贴图资源)
     ● BitmapTextureResource(位图贴图资源)
     ● ExternalTextureResource(外部贴图资源)

Alternativa3D 8 中的资源

 



 

Geometry

Geometry 储存了3D对象的几何体数据,记录每个顶点的信息,这些信息将被划分为多个顶点缓存上传到GPU。
顶点信息包括3D坐标(POSITION)、贴图坐标(TEXCOORDS)、法线(NORMAL)、切线(TANGENT4)、骨骼权重(JOINTS)等。


■ TextureResource

TextureResource 是贴图资源的基类。
贴图资源包括位图贴图资源(BitmapTextureResource)和压缩贴图资源(ATFTextureResource)。
位图贴图资源以位图数据(BitmapData)上传,ATF压缩贴图资源以二进制数据(ByteArray)上传。
ExternalTextureResource 用以加载外部贴图资源,结合TextureLoader(贴图加载器)可以比较方便地加载外部模型的贴图。



4. 外部模型



Alternativa3D支持外部模型的加载与解析,支持的模型文件格式有*.DAE*.A3D*.3DS
*.DAE是基于XML的Collada模型文件,*.A3D为Alternativa3D专用模型文件,*.3DS是3DS Max软件使用的格式。
Alternativa3D官方提供了相关的3DS Max插件,用以导出*.DAE和*.A3D格式的模型。

通过模型解析器,可以十分方便地解析加载的模型,获取模型中的几何体对象、贴图材质、动画、灯光等信息。
ParserCollada:*.DAE格式模型解析器,可获取模型中的几何体对象、贴图材质、动画、灯光。
ParserA3D:*.A3D格式模型解析器,可获取模型中的几何体对象、贴图材质。
Parser3DS:*.3DS格式模型解析器,可获取模型中的几何体对象、贴图材质。

此外,Alternativa3D还给出了ExporterA3D类,用以将3D对象导出保存为*.A3D格式的模型文件。

 

 

 

  • 大小: 6.9 KB
  • 大小: 14.3 KB
  • 大小: 7.8 KB
  • 大小: 35 KB
  • 大小: 17.8 KB
  • 大小: 24 KB
  • 大小: 26 KB
  • 大小: 17.4 KB
  • 大小: 15.6 KB
分享到:
评论
1 楼 jack_ye 2014-02-13  
[/flash][/flash][/fl[u][u]ash][/flash][/flash][/flash][/flash][/flash][/flash][/flash][/flash][/flash][/flas[u][i][i][b][b][b][b][b][[/u][/u]i][i][i][i][i][u][u]
引用
引用
引用
[img][img][img][img][img][img][list]
[*][list]
[*][*][list]
[*][*][*][list]
[*][*][*][*][list]
[*][*][*][*][*][list]
[*][*][*][*][*][*]
引用
引用
引用
引用
  • [*][*][*][*][/list]
  • [*][*][*][*][/list]
    [*][*][*][/list]
    [*][*][/list]
    [*][/list]
    [/list][/img][/img][/img][/img][/img][/img]
    |||||
    ||
    |
    |
    [/u][/u][/i][/i][/i][/i][/i][/b][/b][/b][/b][/b][/i][/i][/u]h]

    相关推荐

    Global site tag (gtag.js) - Google Analytics