`

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]

    相关推荐

      Alternativa3D基础理论

      flash Alternativa 3D 基础 理论flash Alternativa 3D 基础 理论

      Alternativa3D 8 graphics

      Alternativa3D 8图形引擎是一款强大的Flash 3D渲染技术,现在已开源,为开发者提供了丰富的3D图形创建和交互能力。这款引擎是AlternativaPlatform的一部分,它曾以其高效性能和灵活性在游戏开发、互动媒体和Web应用...

      max2011 to Alternativa3D_8

      《3DS Max 2011与Alternativa3D_8的深度整合解析》 3DS Max是一款由Autodesk公司开发的专业3D建模、动画和渲染软件,广泛应用于游戏开发、影视特效以及建筑设计等领域。2011版本是3DS Max的一个重要里程碑,它在...

      《创建 Alternativa3D 8 环境》中的示例代码

      在“创建Alternativa3D 8环境”这一主题中,我们聚焦于如何设置开发环境以及使用提供的示例代码来理解其工作原理。这个环境主要面向那些希望通过Flash平台开发3D游戏或应用程序的人员。 `HelloA3D.as`是压缩包中的...

      Alternativa3D_7.5.0

      Alternativa3D是一款源自俄罗斯的高级3D游戏和交互式应用程序开发引擎,专注于为Flash平台提供服务。这个“Alternativa3D_7.5.0”版本是该引擎的一个重要更新,代表了开发者们在技术上的不断进步和优化。值得注意的...

      Alternativa3D教程源码API

      Alternativa3D是一款强大的3D游戏开发框架,它允许开发者创建具有高级图形效果的互动3D应用程序和游戏,而无需深入学习复杂的底层图形编程。这个压缩包文件包含了一系列与Alternativa3D相关的教程和API文档,是学习...

      Alternativa3d 8.32

      Alternativa3D 8.32 是一个备受赞誉的Flash 3D引擎,它为开发者提供了在Adobe Flash环境中创建互动式、高性能的3D图形和动画的能力。这款引擎以其高效和易用性著称,是许多开发者的首选工具,尤其对于那些希望在Web...

      Alternativa3D7.5 动画

      《 Alternativa3D 7.5 动画技术解析与应用》 Alternativa3D是一款强大的3D动画引擎,主要用于创建交互式3D内容,尤其在Flash平台上具有广泛的应用。在7.5版本中,该引擎进一步提升了性能和功能,支持了更丰富的3D...

      Alternativa3D-master 8.32

      8. **用户界面(UI)组件**:为了创建丰富的用户界面,Alternativa3D可能提供了一系列预定义的UI组件,如按钮、文本框、菜单等。 9. **文档和示例**:作为开源项目, Alternativa3D-master 8.32很可能包含详细的...

      Alternativa3D资料

      最后,“Alternativa3D基础理论.PDF”和“Alternativa3D_7.6.0_半中文帮助文档.chm”是理论知识和官方文档的结合,它们提供了全面的框架介绍和详细的API参考。基础理论PDF将帮助你建立坚实的3D编程基础,而半中文的...

      Alternativa3D 5.6.0

      《 Alternativa3D 5.6.0:深入探索3D Flash引擎的奥秘》 在数字媒体领域,Flash曾是构建动态交互式内容的重要工具,而Alternativa3D则是其中一颗璀璨的明珠。这款基于ActionScript3.0的3D引擎,为开发者提供了在...

      Alternativa3D

      8. **版本更新**:`changelog_ru.txt`和`changelog_en.txt`记录了 Alternativa3D 的更新历史,通过这些文件,开发者可以了解到引擎的最新改进和修复的问题。 9. **国际化支持**:`readme_ru.txt`和`readme_en.txt`...

      Alternativa3D_8.17.0_中文帮助文档

      Alternativa3D 8的到来意味着 Flash 真正踏入3D时代 。这就是Alternativa3D最新版本的中文帮助文档,非常实用。

      alternativa3d API

      1. **基础概念** - **3D对象和场景**:Alternativa3D API允许创建和管理3D对象,包括几何体、纹理、光源和摄像机。这些元素共同构建了一个3D场景,用户可以通过编程控制它们的位置、旋转和缩放。 2. **渲染与图形...

      alternativa3d--lights source

      《Alternativa3D灯光源码解析与应用》 在3D图形编程领域,光照效果是构建真实感场景的关键因素之一。Alternativa3D(简称A3D)是一款强大的跨平台3D游戏引擎,它提供了丰富的功能,包括对光照效果的精细控制。本篇...

      Alternativa3D实现红蓝立体代码

      Alternativa3D是一款强大的3D游戏开发框架,它允许开发者创建具有高级图形效果的互动体验,包括红蓝立体效果。这种技术通过利用人的双眼视差,为用户带来三维的视觉感受,无需专门的3D眼镜就能体验。在本文中,我们...

      Alternativa3D 7.6 官方中文翻译api

      Alternativa3D 官方中文翻译api

      Alternativa3d Tutorials

      Alternativa3d官方教程翻译版本 Alternativa3d官方教程翻译版本

      flash 3d插件alternativa3d 5.6.0

      Alternativa3D是一款专业的Flash 3D插件,它为Adobe Flash平台提供了强大的3D图形渲染和交互功能。在版本5.6.0中,这个插件进一步提升了性能和用户体验,使得开发者能够创建出更加生动、逼真的3D动画和游戏。 首先...

    Global site tag (gtag.js) - Google Analytics