发布时间:2025-12-09 17:38:30 浏览次数:4
各类Method说明:
http://blog.sina.com.cn/s/blog_71a6638501017qns.html
trace(v1.subtract(v2).length);
大多数Flash程序员想要接触3D项目的时候,应该都和我一样,最关心的是怎么造一座山,怎么在场景里显示流动的河水,或是怎么让模型动起来(奔跑,攻击,或是跳舞),又或是怎么才能给人物换装,怎么让人物装备武器.
但是,请相信我,下面我们所说到的这些名词,在教程真正开始之前,你必须得了解一下,或许它们粗浅的让你觉得根本不值一看,但如果你是一个入门者,能了解一些基础知识,它们终将在未来的某一天帮到你
我会尽量避免使用那些太专业不容易让人理解的词汇,如果哪位朋友觉得下面的内容不对,又或是说的不够,请告诉我,我会在将来不断的修改并完善这些内容,谢谢^^
Origin(原心,或称之为起始点):
3D世界与物体的中心点,3D世界中的任何对象都会有一个Origin,不管是场景,3D模型,灯光,还是摄像机,它的所在位置是物体或场景的(0,0,0)坐标,你可能并不能在所有的3D引擎或3D软件(如3dMax)中看到它,但它却是真实存在并起着相应的作用的
Geometry(几何形状):
在Away3D中,Geometry类其实就是一个数据对象,它被用来保存3D物体的基础数据,如顶点(vertices),法线(normals),UV数据,我们从外部加载进来的模型文件会被解析成一个Geometry实例并被保存在内存中
当然,我们也可以通过实例化一些Geometry的子类来创建一些基础的几何形状数据
PlaneGeometry //平面
CubeGeometry //方块
SphereGeometry //球形
CylinderGeometry //圆柱
CapsuleGeometry //胶囊
Material(材质):
我们也可以将它称之为贴图,基本的贴图分三种,颜色贴图,照片贴图和线框贴图(线框贴图仅针对于线框类型对象使用),我们还能为贴图设置透明度和灯光反射强度,以此来达到一些特殊效果
Mesh(网格):
Mesh是一个容器,如果我们为它设置形状数据和贴图后,我们就可以在场景中看到它,它可以是一个方块,一个圆球,也可以是一个如汽车或楼房这样的复杂模型,当然,它也可以仅仅只是一个点,一根线条,或是一个平面,一切取决于它所包含的Geometry数据内容
UV:
U,V是贴图坐标的简称(它和3D模型的X, Y, Z轴是类似的),水平方向是U,垂直方向是V,通过这个二维平面的UV坐标系定义了图片上每个点的位置的信息. 这些点与3D模型是相互联系的, 以决定表面贴图的位置. UV就是将图像上每一个点精确对应到模型物体的表面. 在点与点之间的间隙位置由软件进行图像光滑插值处理. 这就是所谓的UV贴图.
Normals(法线):
法线并不是一种实体线,它是一条垂直于曲线上节点和表面切线方向上的虚拟线,使用正负值来表示和区别多边形上面和点的法向参数,并且只有法线为正值的点和面在场景中才可见,一般来说,由内部指向外部表示当前位置的法线为正向,如果将表面翻转,也就改变了法线的方向,如果你的模型不是双面显示的话,那么负法向的那一面将会在视力窗口中不可见,并且不可被渲染
Light(灯光):
我们生存的这个世界必须有光,不然就是漆黑一片...
3D世界中也一样,但不同的是,我们需要在3D世界中使用有限的几种灯光类型来模拟真实现世界中的大多数可见光源(像红外线这种不可见光源不在我们的讨论之列)
目前Away3D 4.0中提供两种光源
PointLight(点光源):这是最常用到的,我们可以用它来模拟太阳,月亮,或是台灯的灯炮
DirectionalLight(投射光源):好吧,这货可以用来模拟探照灯,或是月光透过窗户的效果
View3D(视口):
这是整个3D世界的入口,犹如透过一个窗口看世界,Away3D中View3D类就是这个窗口,你可以在Flash中同时添加多个View3D实例,就好像在一面墙上砸出多个窗户一样,每个View3D实例可以指向同一个Scene3D,也可以指向不同的Scene3D,但请记住,即使所有的View3D都指向同一个Scene3D实例,也会造成性能的下降,所以通常情况下,我们只使用一个View3D实例
Scene3D(场景):
Scene3D就是窗户外的风景,它在Flash的作用类似于Stage,所有的3D对象都需通过它来addChild,才能被显示出来,你也同样可以同时实例化多个Scene3D实例,但每个View3D每次只能被分配一个Scene3D
Camera3D(镜头):
我们前面说了窗户和风景,好吧,我承认这比喻有点老套,但想要看到这些内容,还需要你的眼睛,Camera3D就相当于你的眼睛,睛,如果移动Camera3D的坐标就相当于你的眼睛在移动,但....如果移动Scene3D里的物体坐标呢?.....那就说明那个物体在移动......= =!
今天先写这些,配图和其它的一些神马,等以后想到了再补....
在away3d.materials.methods目录下有很多以Method结尾的类,相信大家都已经知道了吧?
ok,我们今天就来说说这些Method
Method类的用法有两种,一种是通过DefaultMaterialBase的子类(如ColorMaterial,BitmapMaterial等)的addMethod()方法进行设置,
如:
http://bbs.9ria.com/thread-134768-1-1.html
昨天从论坛里看到一个汽车演示的网站地址, 内心惊叹实在是没有比这更适合的教材了,
所以很不厚道的把所有资源都抓了下来,
花了一天破解,重构,加注释.....
然后,这就是你们现在所能看到的:
特性包括:
7大品牌车辆高清模型及贴图
车身随意换颜色
轮壳随意换颜色
手动全景360度旋转
自动全景360度旋转
模型加载
多Mesh组合
位图阴影实现
玻璃
反射
镜面
还有更多.....
这一切的一切,全部都在下面的源码里....
这已经可以说是一个完完整整的商业展示项目了....
希望各位给我一些反馈,以表示对我的支持,谢谢
源代码:
这次提供的Demo使用了jiglib的物理引擎和瘳诚开发的Away3d粒子系统中的一个烟雾效果范例
jiglib地址
http://www.jiglibflash.com/blog/2012/03/21/jiglibflash-updated-for-away3d-4-0-beta/
瘳诚的Away3d粒子系统地址
https://github.com/liaocheng/away3d-particles-system
照例上图:
键盘的"上下左右"键控制移动,"空格"键刹车
我只为地板添加了刚体效果,建筑并没有,这是特意留给大家自己去添加的喔...heihei.....
源码我就不贴出来了,请大家自己下载吧
源码在此:
http://115.com/file/e781z3fu#%20CarDemo-jiglib.zip
Demo特性:
三种相机控制器(自动,手动,驾驶)
汽车转向时轮子会跟着动(这好像是废话....= =!)
物体加速时的力回馈效果
粒子特效
....
好像还有什么...
其它的与上次的Demo一样
剩下的忘掉了,大家自己去看吧....:p
顺便说一下,如果你刚接触Away3D,推荐还是看看这个内容:
Away3D4.0入门--高清汽车(1)
这是第一部,内容比较简单,没有物理引擎与粒子效果,代码比较容易看懂^^
好吧,好久好久好久没有露面了....最近忙着参加阿里云开发者大赛去了,并且有幸能进入Top100,可惜 Top20没我什么事,所以....悲剧啊......
前两天心血来潮研究了一下Away3d官方早期的demo,发现其中有个路径动画满有趣的,但可惜已经不能在新版本的Away3d引擎下正常运行了,稍微改了改跑起来后,发现....嗯.....那就顺便再加些功能吧.....
Ok,下面大家将看到,4种镜头切换方式,切换方法为按键盘上的数字1~4.....
1.全局显示
2.跟随飞车并显示指定方向
3.跟随飞车并显示前方
4.环绕跟随
演示地址1
-----------------------------------------------------------------
另外,再附赠路径变色Demo一枚
(其中银色为管道原色,金色为灯光,红色(会随机变化)为颜色动画)