第五章Materials, Lights, and Shading
2010年10月08日
第五章Materials, Lights, and Shading
Cast工具类 在包away3d.utils中
Cast.bitmap(data:*):BitmapData 得到某显示对象data的像素数据,
动态改变材质只需要切换3d对象的material属性即可
如:
_cube.material = _ colorMaterial;
_cube.material = _ bitmapMaterial;
可以在colorMaterial和bitmapMaterial材质之间进行切换
这里和pv3d里的材质的切换一样都是赋予新的材质对象
另外还有一种是直接改变贴图而不new新材质 主要是通过改变material的movie属性(material.movie=新的显示对象(Sprite类型))并且刷新 material.update()
在pv3d中一样的:material.movie=新的显示对象
并且也要刷新 material.drawBitmap()
贴图进行baking可以产生shading阴影的效果,
WireframeMaterial
只显示网格mesh,而无任何其他材质的填充
创建:
var _wfMaterial:WireframeMaterial=new WireframeMaterial ();
_wfMaterial.wireColor = 0x000000;//设置线框的颜色默认为黑色
Using lights and shading materials
在现实生活中,光线通过物体的表面反射而进入我们的眼睛中进行成像,没有光我们将看不到任何东西,计算机通过模仿处理的这一过程叫做shading !
PointLight3D----点光源
点光源发射的光是四面八方,全方位的!并且物体反射的光的强度与距光源的距离有关距离越远,反射的光越弱 !反射光强:点光源光强 * 1/d^2 . 光强属性brightness
DirectionalLight3D-------
平行光
平行光源发射的光只沿着一个方向。DirectionalLight3D的创建需要指定一个向量。该向量就是光线的方向。所属属性是direction.。
AmbientLight3D-----环境光
AmbientLight3D照亮整个场景,照亮3d对象的每一个面,每一个网格线。也就是场景上所有的地方都能照射到
.
创建光源
下面的创建适合于所有的光源类
var light : PointLight3D = new PointLight3D(); light.color = 0xFF0000;//光的颜色 myView.scene.addLight(light);//将光添加进场景
每一种光都有color属性,即光的颜色!
brightness 光强属性 默认值为1
假如创建多个光源,光强会进行叠加(通过颜色).点光源的光强和距离有光 . brightness 代表的光强是距离光源500单位远的光强
brightness 光强的来源:
光源发射的光有三种属性 一是用于环境(环境光ambient
)
二是 用于光的漫反射(散射光diffuse),三是用于反射光(反射光specular) 一般物体的呈现也是靠这三种光呈现的
三种:
1:环境光属性ambient:
直接来源于光源发出的环境光
2:散射光属性diffuse:
直接从光源里发出
3:反射光属性specular:
光源照到对象上反射回来的光
上面3个光属性决定了3d对象的shading 它们的值都是在0-1之间
例如下面的图片显示的各个光属性值是:
【注: 光中的三属性值为0-1,在shading material中也有这三属性在shading material中设置的是各个光属性的颜色值】
myPointLight.ambient = 0.3;//环境光,占了光源环境光的0.3
myPointLight.diffuse = 0.7;//漫反射 占了散射光的0.7 myPointLight.specular = 1;//反射光 完全反射
Shading materials
注:Shading materials要少用,因为它很耗性能
Flat shading materials
效率很高,也是最常用的shading材质
材质类是ShadingColorMaterial和 WhiteShadingBitmapMaterial
WhiteShadingBitmapMaterial的光的颜色是白色。不能改.
ShadingColorMaterial光的颜色可根据光的三属性设置
Shading material中的光的三属性设置:
ShadingColorMaterial的创建 _cMaterial = new ShadingColorMaterial();、 _cMaterial.ambient = 0xff0000; _cMaterial.diffuse = 0x008800; _cMaterial.specular = 0x0000ff; WhiteShadingBitmapMaterial的创建
_bMaterial=new WhiteShadingBitmapMaterial(Cast.bitmap(new AppleImage()));
使用shading material 时还要配合光源使用
normal map shading
nomal map shading 就是在使用外部软件如maya 3dmax 等3d制作软件 在制作模型使所使用的贴图
DOT3 materials 就是使用的这种贴图
一般这种贴图都是已经在3d软件中制作好了的
我们只需要加载外部模型的mesh 以及贴图就可以了
一般和shading有关的材质也具有光的三属性ambient
Diffuse specular dot3d 材质也具该三属性 因为dot3d material 也是属于shading material 的。
Dot3BitmapMaterial的创建
Dot3BitmapMaterialF10 类是fp10版的
Dot3BitmapMaterial是 fp9版的
推荐使用Dot3BitmapMaterialF10类
sphereMaterial=new Dot3BitmapMaterialF10(texture, sphereMap);//texture是指模型的外貌颜色,即在3d模型轮廓上在贴一层图片, sphereMap指定了3d模型的轮廓 (一般情况下,这两个图都是在3d软件中制作的) ,轮廓的图片(后一个参数)必须要来自3d软件制作 贴图外表可以自己根据情况切换
其他的Dot3 Materials类似
Using environment shading
environment shading
指的是 3d对象相当于镜子一样,周围的环境在3d对象表面呈现
相关材质类:
EnviroColorMaterial和EnviroBitmapMaterial
第一个参数一个是颜色值,另一个时位图数据bitmapData
第二个参数都是环境图片数据bitmapData
参数reflectiveness 值在0-1之间 表示呈现环境图片的清晰度(饱和度)
创建:
var texture:BitmapData = Cast.bitmap(AppleImage);
var envMap:BitmapData = Cast.bitmap(EnviroMap);
_colorMaterial = new EnviroColorMaterial(0x225588,envMap);
_bitmapMaterial = new EnviroBitmapMaterial(texture,envMap);
_cube.material = _colorMaterial;
_sphere.material = _colorMaterial;
_ape.material = _bitmapMaterial;
//改变material的属性后 away3d会自动刷新的 相关3d对象
_colorMaterial.reflectiveness=0.5;
_bitmapMaterial.reflectiveness = 0.8;
MovieMaterial 和pv3d里的呈现一样.
属性用法:
interactive 属性设为true 使其具有交互性
smooth 设true;使动画图像变得清晰 以及文字变得清晰
autoUpdate属性以及update()函数
发表评论
-
papervision3d学习笔记:图片墙(4)
2012-01-20 01:47 669papervision3d学习笔记:图片墙(4) 2010年 ... -
papervision3d学习笔记:卷轴-清明上河图
2012-01-20 01:47 711papervision3d学习笔记:卷轴-清明上河图 201 ... -
《深度探索C++对象模型》读书笔记(3)
2012-01-20 01:47 844《深度探索C++对象模型 ... -
Papervision3D Essentials 要点整理
2012-01-20 01:47 956Papervision3D Essentials 要点 ... -
作文批改评语范例
2012-01-19 09:35 707作文批改评语范例 2011 ... -
写作文评语
2012-01-19 09:34 578写作文评语 2011年04月27 ... -
如何给孩子的作文下评语
2012-01-19 09:34 705如何给孩子的作文下评语 2011年07月14日 作文评价 ... -
教学浅谈(254)――作文的评语
2012-01-19 09:34 581教学浅谈(254)――作文 ... -
学生 老师都来看看吧 小学生作文评语集锦
2012-01-19 09:34 779学生 老师都来看看吧 ... -
CPU与主板如何搭配---2(转)
2012-01-17 02:10 908CPU与主板如何搭配---2( ... -
MAX , cad09假激活
2012-01-17 02:10 907MAX , cad09假激活 2010年07月06日 M ... -
总体上说,是c++ builder胜于VC++,DELPHI是最好
2012-01-17 02:09 979总体上说,是c++ builder胜 ... -
Qt 学习笔记 --Qt SDK 的下载安装与配置
2012-01-17 02:09 1171Qt 学习笔记 --Qt SDK 的下 ... -
flex多模块加载时导致对象不正确序列化的解决办法
2012-01-15 21:42 1098flex多模块加载时导致对象不正确序列化的解决办法 2010 ... -
优化Flash平台的性能――优化网络交互外部内容
2012-01-15 21:41 624优化Flash平台的性能――优化网络交互外部内容 2010年 ... -
ApplicationDomain
2012-01-15 21:41 524ApplicationDomain 2010年08月01日 ... -
flex3控件_ModuleLoader
2012-01-15 21:41 571flex3控件_ModuleLoader 2011年07月0 ... -
Flex-LoaderContext applicationDomain 属性详解
2012-01-15 21:41 813Flex-LoaderContext applicationD ...
相关推荐
斯坦福的图形学课件 The Graphics Pipeline and OpenGL II: Lighting and Shading, Fragment Processing
描述物理渲染参数的入门读物,allegorithmic出门,卷2
介绍物理渲染各参数原理的入门资料,allegorithmic出品
Flat Kit Toon Shading and Water 2.1.3 最新版本
The OpenGL Shading Language (GLSL) is a programming language used for customizing parts of the OpenGL graphics pipeline that were formerly fixed-function, and are executed directly on the GPU....
With OpenGL and shaders written in the OpenGL Shading Language, applications can perform better, achieving stunning graphics effects by utilizing the capabilities of both the visual processing unit ...
apple公司的lens shading专利,用于iphone手机上使用。
shape from shading 的matlab实现
1、Ruo Zhang,Ping-Sing Tsai, James Cryer and Mubarak Shah, Shape from Shading: A Survey' 2、 James Cryer, Ping-Sing Tsai and Mubarak Shah. Shape from Shading and Stereo 3、Ping-sing Tsai and Mubarak ...
Flat shading Flat shading Flat shading Flat shading Flat shading Flat shading Flat shading Flat shading Flat shading Flat shading Flat shading Flat shading Flat shading
介绍了一种shape from shading的新方法
Deferred Shading延迟光照,例子简单易懂,很容易理解哈
This document describes The OpenGL ES Shading Language, version 3.20. Independent compilation units written in this language are called shaders. A program is a set of shaders that are compiled and ...
模仿软件,使用opencv对camera模组进行暗电流、lenshading进行校正和优化。
The opengl shading language
非常不好找的 opengl 4.0 shading language cookbook 源码 GLSL COOKBOOK 源码 opengl 4.0 shading language cookbook 源码 GLSL COOKBOOK 源码 opengl 4.0 shading language cookbook 源码 GLSL COOKBOOK 源码 ...
With OpenGL and shaders written in the OpenGL Shading Language, applications can perform better, achieving stunning graphics effects by using the capabilities of both the visual processing unit and ...
Shawn的Deferred Shading ppt 翻译 Shawn的Deferred Shading讲解ppt是很好的学习延迟着色的资源!
The shading for real-time computer graphics has undergone a complete paradigm shift in recent years