Away3D ATFTexture】的更多相关文章

之前在项目中贴图大量使用了 PNG 和 jpg 遇到了个问题.在使用BitmapTexture的时候发现 是必须MIP 不管你 是否开启或者关闭 MIP 他都会去创建.而每次MIP都会根据贴图大小去生成不同级别的 材质 比如说 512 * 512 映射的结果是 256 * 256 .128 * 128.64*64.32*32.16*16...等等然后依次uploadFromBitmapData;这个过程效率极低.如果强行不然它做MIP效果巨丑无比. 后来研究了一下DDS,DDS在端游里使用的比较…
做了几个基于Flash平台的3D的项目,一路走来收获颇多.Away3D作为一个开源的Flash3D引擎,在3D页游领域,无疑是当前OGRE在国内的地位. 翻译出了多年前做Away3D中国社区的时候翻译的一篇文章,以此记录这段难忘的经历! 什么是Away3D?(What is Away3D?) Away3D是一个开源的,基于Flash平台的实时3D引擎.这个项目最初是由Alexander Zadorozhny和 Rob Bateman 在2007年开始的.没想到这一发就不可收拾.下面是一些Away…
[多余的stage3D的考虑] 因为away3D为了支持stage本身可以有n个stage3D对象这个特性,在诸如MaterialPassBase.SubGeometry中,为Program3D.VertexBuffer3D.IndexBuffer3D这样的底层对象都生成了一个Vector容器来保存,这样既浪费了内存, 也消耗了性能.…
(1). 准备工作,一些必须知道的东西 (创建时间:2014-06-05) A.必要的开发语言基础.至少要懂点ActionScript 3.0语法(ActionScript 3.0语法及API参考),若是一点也不懂,那下面的一切都将无从谈起,其实有编程基础的话,学起来也蛮快的. B.下载并安装集成开发工具.最常用的是Flash Builder(Flash Builder下载,以下简称FB),也可以使用Eclipse+FlexBuilder插件作为IDE(本人没试过,不知道好用不好用).FB不是免…
http://www.cnblogs.com/flash3d/p/3403109.html M3U8文件简介:http://blog.sina.com.cn/s/blog_6cf7acdf0102v0xv.html flash做全景图 我所知道的用AS3做全景图的方法是用PV3D或者Away3D引擎,先建一个球,然后将你的全景图当成材质贴到这个球的内部,再实现拖动等功能.具体的代码你可以去天地会论坛找一下三维引擎方面的知识. 简单的说下制作原理.我们这需要用一张全景图.全景图可以用skyBox那…
/* Dynamic tree generation and placement in a night-time scene Demonstrates: How to create a height map and splat map from scratch to use for realistic terrain How to use fratacl algorithms to create a custom tree-generating geometry primitive How to…
package { import away3d.containers.View3D; import away3d.entities.Mesh; import away3d.events.MouseEvent3D; import away3d.lights.DirectionalLight; import away3d.lights.PointLight; import away3d.materials.ColorMaterial; import away3d.materials.TextureM…
package { import away3d.containers.View3D; import away3d.controllers.HoverController; import away3d.entities.Mesh; import away3d.materials.TextureMaterial; import away3d.primitives.SphereGeometry; import away3d.utils.Cast; import flash.display.Sprite…
package { import away3d.containers.View3D; import away3d.entities.Mesh; import away3d.events.MouseEvent3D; import away3d.materials.TextureMaterial; import away3d.primitives.PlaneGeometry; import away3d.utils.Cast; import flash.display.Sprite; import…
所谓skybox就是六个面即六张图能够无缝的拼成一个正方体的盒子. package { import away3d.cameras.Camera3D; import away3d.cameras.lenses.PerspectiveLens; import away3d.containers.Scene3D; import away3d.containers.View3D; import away3d.controllers.HoverController; import away3d.prim…
/* SkyBox example in Away3d Demonstrates: How to use a CubeTexture to create a SkyBox object. How to apply a CubeTexture to a material as an environment map. Code by Rob Bateman rob@infiniteturtles.co.uk http://www.infiniteturtles.co.uk This code is…
首先我们要了解的是AwayPhysics这个物理引擎并不是重头开始写的新物理引擎,而是使用Flascc技术把一个已经很成熟的Bullet物理引擎引入到了Flash中,同时为了让as3可以使用这个C++开发的物理引擎,AwayPhysics库编写了一些必要的AS3类使我们可以方便的使用它. 而为了方便区分和使用AwayPhysics里的所有类都使用了AWP作为类名前缀. 创建物理世界 要模拟一个物理世界,首先需要创建一个AWPDynamicsWorld的对象,该对象类似于Away3D中创建3D世界…
动画模块核心存放在away3d.animators包里: Away3D支持下面几种动画格式: VertexAnimator:顶点动画 SkeletonAnimator:骨骼动画 UVAnimator:UV动画 SpriteSheetAnimator:二维切换动画 ParticleAnimator:粒子动画 PathAnimator:路径动画 这几种动画都有各自的特点及应用场景,一般而在3D游戏中应用得最广泛的是骨骼动画,因为骨骼动画是人物动画的核心,我们下半段会专门详解这个动画: 动画简介 核心…
数据模块: Away3D中最核心的数据类是Mesh类,我们先看看Mesh类的继承关系: NamedAssetBase:为对象提供id和name属性,是Away3D大部分类的基类: Object3D:3D对象基类,提供方便操作3D对象本地转换矩阵的功能,提供坐标.旋转.缩放等属性和较多的实用方法,如lookAt.moveLeft等,注意Object3D对象并不是可渲染对象: ObjectContainer3D:作为可存放3D对象的容器,是构成显示列表树形结构的核心,提供sceneTransform…
还是老样子,我们还是需要先简略的看一下View3D中render方法的渲染代码,已添加注释: //如果使用了 Filter3D 的话会判断是否需要渲染深度图, 如果需要的话会在实际渲染之前先渲染深度图 if (_requireDepthRender) //深度图会被渲染到 _depthRender 这个贴图对象上 renderSceneDepthToTexture(_entityCollector); // todo: perform depth prepass after light upda…
我之前解析过Starling的核心渲染流程,相比Away3D而言Starling真的是足够简单,不过幸运的是两者的渲染流程是大体上相似的:Starling的渲染是每帧调用Starling类中的render方法,类似的Away3D的渲染是每帧调用View3D类中的render方法,那我们要了解Away3D的渲染就需要从这个方法入手了. View3D的render方法源码: /** * Renders the view. */ public function render():void { //if…
在深入解读Away3D的代码之前,需要对其有个大概的认识.本节主要列出Away3D中常用的类,并附上说明: View3D: Away3D的入口类,即创建该类就会初始化一个可以使用GPU呈现3D的对象,需要注意的是该类是继承自Sprite,所以可以将其添加到2D显示列表中,但是最终呈现3D是在Stage3D中进行的,所以实际的3D对象并非存在View3D这个2D容器中.View3D更像一个管理3D内容的管理器,并且每帧都需要调用其render方法来渲染其内部的所有3D对象. Scene3D: 每个…
最近在改Away3D源码的时候遇到个很郁闷的问题,发现创建的Mesh 释放不掉. 分析源码发现 EntityListItemPool 类中逻辑Bug在getItem()函数中发现_poolSize 对象池大小如果够用的情况下 它采用的方式是复用EntityListItem 那么假设我删除了场景上有10个对象我全部删除了然后我再创建9个 这时候总有1个对象是被缓存着的.一直要等到我创建第10个对象他才会被释放掉. 没辙了跑到 看看对象销毁流程吧. 对象被销毁时会调用 Scene3D 的 unreg…
转自:http://blog.csdn.net/cceevv/article/details/8571860 原英文地址:http://www.flashmagazine.com/Tutorials/detail/away3d_basics_the_cameras/ 翻译原文地址:http://blog.csdn.net/liminxin272/article/details/6893036 相机camera类是观察3D世界必须借助的工具.其作用与现实世界里的相机一样,3D世界里的照相机应用通视…
转自:http://www.cnblogs.com/njflash/archive/2013/01/31/2886912.html Away3D团队和基金会很高兴地宣布首次发布下一个主要的Away3D迭代.无论是在性能和功能方面,此更新都是一个重大的飞跃.许多社区要求的更新都已经实现了,其中包括一些用来提升跨平台引擎潜力的更新也已加入,我们希望这将迎来一个Away3D跨设备的游戏和应用程序多产的时期,并为此打好基础. 渲染 一个重要的新功能以多通道着色器的形式出现了,它为具有更强大的GPU(图形…
转自:http://www.cnblogs.com/nooon/archive/2009/05/16/1458334.html 原英文地址: http://www.flashmagazine.com/Tutorials/detail/away3d_basics_a_simple_away3d_class_explained/ 本教程是首部对Away3D (一款能够应用于Flash或Flex平台中的强大的实时三维引擎)进行系统介绍的文章.在此将对Away3D进行逐字逐句的解释,对于那些依然使用Ac…
转自:http://www.cnblogs.com/beer/archive/2011/07/08/2101492.html 前言:作为页面中实验设备的显示层,需要一个swf作为显示的UI.虽然可以用FlashMX进行简单的flash设计,但是FlashMX一般是偏向于动画设计,而不是程序设计,所以在进行相关的开发时,支持性不是太好,于是笔者就想到了转用Flex Builder来进行开发. 一.开发语言和开发环境 ActionScript是 Macromedia(现已被Adobe收购)为其Fla…
带着上次的疑问我们继续探讨Away3D 的渲染流程. 在Away3D中所有的显示对象都是继承Object3D 的我们先看看显示对象和继承关系. Object3D |---ObjectContainer3D  (3D显示容器) |---Entity (所有的3D实体对象的抽象基类) |---Mesh (网格对象) |---Camera3D (摄影机[非显示对象]) |---SegmentSet (线段的集合可以绘制线) |---Sprite3D (公告板始终面向摄像机) 以上显示对象中最常用的 是…
View3D 顾名思义 它就是一个3D视口,视口的默认值是无穷大的,即相当于“窗口”是无限大的,我们看到的将是外面的所有景物即flash尺寸是视口的有效视域.传统电视的高宽比为4:3,现在的高清电视的高宽比为16:9,你也可以如此这般地去设置.它是一个Sprite 的子类.主要用于创建 3D场景 相机 及渲染.相信很多人都和我一样在想View3D 它究竟做了什么?很多人估计想都不用想可以回答这个问题 “渲染”!那么它是如何渲染的?除了渲染它还干了什么?带着这些问题打开 Away3d 源码 Vie…
很多朋友说Away3D 的骨骼数限制在32根,确切的说应该是Stage3D 的限制.在 AGAL2.0之前 VC寄存器是128个,每个vc常量寄存器最大只能容纳4位,transform占用一个4*4的矩阵,所以如果把一个transform存进vc里面,需要到4个寄存器才能存得完.这样,一根骨骼占用了4个寄存器.而vc总共是有128个.就算全部128个vc都用于计算骨骼,也只能32根骨骼.该怎么办呢? 之前在做 <狂P三国>时的解决办法是把transform减缩成一个四元素储存骨骼的旋转,然后一…
骨骼的绑定归根结底就是将目标骨骼的位置以及旋转数据,同步给要绑定的显示对象. 先来看BindingTag.as package away3d.entities {     import away3d.arcane;     import away3d.animators.SkeletonAnimator;     import away3d.animators.data.JointPose;     import away3d.containers.ObjectContainer3D;     …
1代码展示 package { import away3d.containers.View3D; import away3d.controllers.HoverController; import away3d.entities.Mesh; import away3d.materials.TextureMaterial; import away3d.primitives.SphereGeometry; import away3d.textures.BitmapTexture; import fl…
2012年的时候,跟朋友去到一个公司,打算用away3d做一个赛车模拟养成游戏,后来由于种种原因,立项未成,由于朋友已经转行,自己也想对自己做过的事情有一些交代,所以将我负责的部分,赛道编辑器的源码公布开来,里头包括赛道制作,理想行车路线模拟等等,由于日久,其中有一部分源码已经遗失,为了能让编辑器跑起来,刚刚补了几个方法. 效果图如下: ui方面采用的是minimalcomponent,大神Kethei Peter的杰作,可惜大神已经看透红尘了: away3d用的是当时最新的away3d 4.0…
(1). 准备工作,一些必须知道的东西 (创建时间:2014-06-05) A.必要的开发语言基础.至少要懂点ActionScript 3.0语法(ActionScript 3.0语法及API参考),若是一点也不懂,那下面的一切都将无从谈起,其实有编程基础的话,学起来也蛮快的. B.下载并安装集成开发工具.最常用的是Flash Builder(Flash Builder下载,以下简称FB),也可以使用Eclipse+FlexBuilder插件作为IDE(本人没试过,不知道好用不好用).FB不是免…
原文详见http://away3d.com/tutorials/Introduction_to_Mouse_Picking.本文若有翻译不对的地方,敬请指出. 本教程详细介绍了Away3D 4.x中鼠标交互问题. 内容: n  介绍 n  Hello Picking n  Entity属性 n  View属性 n  UV绘制 n  总结 介绍 每个3D引擎都需要解决一个非常基础的问题:鼠标下面是什么?在3D图形学中,这通常会涉及到拾取.虽然这个问题看似简单.直接,但它实际上涉及到较难的数学和非常…