Away3D ATFTexture
之前在项目中贴图大量使用了 PNG 和 jpg 遇到了个问题。在使用BitmapTexture的时候发现 是必须MIP 不管你 是否开启或者关闭 MIP 他都会去创建。而每次MIP都会根据贴图大小去生成不同级别的 材质 比如说 512 * 512 映射的结果是 256 * 256 、128 * 128、64*64、32*32、16*16...等等然后依次uploadFromBitmapData;这个过程效率极低。如果强行不然它做MIP效果巨丑无比。 后来研究了一下DDS,DDS在端游里使用的比较多 因为 DDS里自带了 MIP。在flash里 这种格式解析开销本身就很大,还得靠CPU去解压。得不偿失!经过一番折腾,决定采用ATF。
ATF是Stage3D 默认支持的格式 这种格式是不需要在CPU上做 MIP的同时还支持异步上传处理。这样一来CPU压力是减少了但是上传比较大的贴图时间还是很长。flash 的帧频也会受到影响。然后看看Away3D 的ATFTexture 的实现默认是直接同步上传。压根就没留开启异步上传的参数。没办法忍受不了卡顿只好改代码了。
修改ATFTexture类代码如下:
override protected function uploadContent(texture : TextureBase) : void
{
if (_atfData.data.length == 0)
{
DevLog.debug(DevLog.ALL, "texture " + url + " length is invalid");
return;
}
_nativeTexture = Texture(texture);
_nativeTexture.addEventListener(Event.TEXTURE_READY, _onTextureReady);
_nativeTexture.uploadCompressedTextureFromByteArray(_atfData.data, 0, true);
}
private function _onTextureReady(event : Event) : void
{
_nativeTexture.removeEventListener(Event.TEXTURE_READY, _onTextureReady);
_nativeTexture = null;
if(hasEventListener(TextureEvent.UPLOAD_TEXTURE_COMPLETE))
dispatchEvent(new TextureEvent(TextureEvent.UPLOAD_TEXTURE_COMPLETE));
}
Away3D ATFTexture的更多相关文章
- What is Away3D
做了几个基于Flash平台的3D的项目,一路走来收获颇多.Away3D作为一个开源的Flash3D引擎,在3D页游领域,无疑是当前OGRE在国内的地位. 翻译出了多年前做Away3D中国社区的时候翻译 ...
- away3D改造白皮书
[多余的stage3D的考虑] 因为away3D为了支持stage本身可以有n个stage3D对象这个特性,在诸如MaterialPassBase.SubGeometry中,为Program3D.Ve ...
- Away3D引擎学习笔记,持续更新
(1). 准备工作,一些必须知道的东西 (创建时间:2014-06-05) A.必要的开发语言基础.至少要懂点ActionScript 3.0语法(ActionScript 3.0语法及API参考), ...
- away3d学习
http://www.cnblogs.com/flash3d/p/3403109.html M3U8文件简介:http://blog.sina.com.cn/s/blog_6cf7acdf0102v0 ...
- [ActionScript 3.0] Away3D 官网实例
/* Dynamic tree generation and placement in a night-time scene Demonstrates: How to create a height ...
- [ActionScript 3.0] Away3D 灯光的使用
package { import away3d.containers.View3D; import away3d.entities.Mesh; import away3d.events.MouseEv ...
- [ActionScript 3.0] Away3D 非skybox的全景例子
package { import away3d.containers.View3D; import away3d.controllers.HoverController; import away3d. ...
- [ActionScript 3.0] Away3D 旋转效果
package { import away3d.containers.View3D; import away3d.entities.Mesh; import away3d.events.MouseEv ...
- [ActionScript 3.0] Away3D 天空盒(skybox)例子2
所谓skybox就是六个面即六张图能够无缝的拼成一个正方体的盒子. package { import away3d.cameras.Camera3D; import away3d.cameras.le ...
随机推荐
- 虚拟化技术与"云"
虚拟化技术: 如网站在某一时间访问量大,平时访问量少,如果一直保持大量的服务器提供服务,显示效率好低,浪费资源,在 不增减服务器,存储设备,网络等实际物理设备,而是利用软件将这些物理设备虚拟化,在有必 ...
- css重置样式表reset.css
body, h1, h2, h3, h4, h5, h6, hr, p, blockquote,/* structural elements 结构元素 */ dl, dt, dd, ul, ol, l ...
- Bluestacks 安卓模拟器利器
蓝手指测试安卓比较给力,尤其含有安卓原生态的多语言是现在厂商手机所无法提供了的. 但是有一点需要注意:BlueStack的日志文件非常大,日志目录默认是%Sysem Dir%/Program Da ...
- 浅析Linux操作系统工作的基础
环境:lubuntu 13.04 kernel 3.9.7 作者:SA12226265 katao 简介: 本文根据 Linux™ 系统工作基础的分析,对存储程序计算机.堆栈(函数调用堆栈)机制和 ...
- Uva_11021 Tribles
题目链接 题意: 现在有k只麻球, 每只麻球只能存活一天, 第二天就会死去, 死去之前可能生下x只小麻球(x = 0,1,2,...,n 1), 概率分别为P[0], P[1], ... , P[n ...
- bzoj 3110: [Zjoi2013]K大数查询 树状数组套线段树
3110: [Zjoi2013]K大数查询 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 1384 Solved: 629[Submit][Stat ...
- BZOJ4033 T1
Description 有一棵点数为\(N\)的树,树边有边权.给你一个在\(0-N\)之内的正整数\(K\),你要在这棵树中选择\(K\)个点,将其染成黑色,并将其他的\(N-K\)个点染成白色.将 ...
- 提升 DevOps 效率,试试 ChatOps 吧!
本文翻译自文章 To Boost DevOps, Try ChatOps,文中用简单易懂的方式介绍了 ChatOps 的发展和价值,由 OneAPM 工程师编译整理. 当我们谈论 DevOps 时,总 ...
- Ikki's Story IV - Panda's Trick
poj3207:http://poj.org/problem?id=3207 题意::平面上有一个圆,圆的边上按顺时针放着0..n-1共n个点.现在要连m条边,比如a,b,那么a到b可以从圆的内部连接 ...
- 【POJ1284】Primitive Roots 欧拉函数
题目描述: 题意: 定义原根:对于一个整数x,0<x<p,是一个mod p下的原根,当且仅当集合{ (xi mod p) | 1 <= i <= p-1 } 等于{ 1, .. ...