zoukankan      html  css  js  c++  java
  • 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));            
            }

  • 相关阅读:
    sdk 今日头条_字节跳动又一Android开源力作!全新视频动画特效SDK
    Android播放透明视频(转载)
    git remote: warning: suboptimal pack
    'gitclone报错fatal:protocolerror:badpackheader'
    解决 Maven 无法下载 fastdfs-client-java 依赖。
    教我兄弟学Android逆向12 编写xposed模块
    教我兄弟学Android逆向11 动态调试init_array
    CommunicationsException
    使用css给table表格表头添加斜线(斜线表格)
    [SAA + SAP] 28. Monitoring
  • 原文地址:https://www.cnblogs.com/ch06src/p/3874442.html
Copyright © 2011-2022 走看看