一、AndEnging 之 TextureOptions

1、NEAREST(Nearest滤波,实现上依赖GL_NEAREST做不光滑过滤,纹理环绕模式为GL_CLAMP_TO_EDGE,显示速度快画质差)

2、BILINEAR(双线性插值,实现上依赖GL_LINEAR做线性滤波,纹理环绕模式为GL_CLAMP_TO_EDGE,显示速度慢画质佳)

3、REPEATING(与NEAREST同为Nearest滤波,但纹理环绕模式为GL_REPEAT,会自动填充纹理上的空白区域,显示速度较快画质差)

4、REPEATING_BILINEAR(与BILINEAR同为双线性插值,但纹理环绕模式为GL_REPEAT,会自动填充纹理上的空白区域,显示速度很慢画质佳(低端机跑此模式异常悲剧,高端机尚可))

5、NEAREST_PREMULTIPLYALPHA(所有[PREMULTIPLYALPHA]结尾的TextureOptions与其它同名类差别仅在于是否支持根据Alpha值设置透明纹理,以下同)

6、BILINEAR_PREMULTIPLYALPHA 7、REPEATING_PREMULTIPLYALPHA

8、REPEATING_BILINEAR_PREMULTIPLYALPHA等静态对象。

除了AndEngine提供的Texture渲染模式,我们也可以按照规则自行构建需要的TextureOptions。比如构建一个混插的TextureOptions: new TextureOptions(GL10.GL_LINEAR_MIPMAP_LINEAR, GL10.GL_LINEAR_MIPMAP_NEAREST, GL10.GL_REPEAT, GL10.GL_REPEAT, GL10.GL_MODULATE, true);

另外,TextureOptions默认还有DEFAULT模式,不过该模式实际引用为NEAREST_PREMULTIPLYALPHA,也就是纹理低画质但支持Alpha。
     如果您想要兼容低端机,则建议不要使用含有【BILINEAR】字样的AndEngine加载大图,而应直接使用TextureOptions.DEFAULT或TextureOptions.NEAREST_PREMULTIPLYALPHA;
    因为BILINEAR模式对硬件要求较高,如果以此模式将较大纹理放到低端机上渲染,速度很可能无法保证。但是,假如您的游戏只针对高端机用户便无需介怀了。

二、AndEnging 之 Texture

刚刚学android中的AngEnging,看了很多资料,我来总结一下一些知识点:

a、Texture体系

1、纹理分为两类
        ★Texture:保存纹理本身的信息,如大小,格式和图片信息啥的
         ・Texture中的BitmapTextureAtas比较有意思,它实际上会将所有通过它加载的纹理放到一张大位图里,一起加载到GL10中,需要注意的是需要根据每张纹理的大小和位置来计算它的大小。
        ★TextureRegion:保存纹理的影射信息,如影射坐标等
          ・TextureRegion:保存单张纹理的影射信息。
          ・TiledTextureRegion:可以将一张纹理图中的不同子图影射成动画。例子用的就是它。

2、纹理辅助类也分为两类
        ★TextureAtlasSource:实现了通过各种途径加载纹理
           ・EmptyBitmapTextureAtlasSource:自己创建指定大小的文件
           ・FileBitmapTextureAtlasSource:从文件中加载位图纹理
           ・ExternalStorageFileBitmapTextureAtlasSource:从绝对路径中加载纹理
           ・InternalStorageFileBitmapTextureAtlasSource:从网络地址中加载位图纹理
           ・AssetBitmapTextureAtlasSource:从Asset下的文件中加载位图纹理
            ・assets文件夹是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像xml,java文件被预编译,可以存放一些图片,html,js, css等文件。

★Factory:定义了纹理加载的流程
           ・BitmapTextureAtlasTextureRegionFactory:定义了通过BitmapTextureAtas加载纹理的流程
           ・TextureRegionFactory:定义了不通过BitmapTextureAtas加载纹理的流程

3、纹理美化类IBitmapTextureAtlasSourceDecoratorShape(看的头大,以后再看)
            ・ColorSwapBitmapTextureAtlasSourceDecorator:
            ・FillBitmapTextureAtlasSourceDecorator:
            ・LinearGradientFillBitmapTextureAtlasSourceDecorator:
            ・OutlineBitmapTextureAtlasSourceDecorator:
           ・RadialGradientFillBitmapTextureAtlasSourceDecorator

b、AnimatedSprite中纹理的使用
         1、加载
           在BaseGameActivity.onLoadResources()中加载纹理,最后将纹理注册到Engine的中。
           在BaseGameActivity.onLoadScene()中生成AnimatedSprite后调用它的animate()设定纹理的显示间隔。
          2、更新
           在AnimatedSprites.onManagedUpdate()中更新纹理的影射信息,确定不同的纹理片断。
         3、描画
           在Engine的TextureManager.updateTextures()中将纹理加载入OpenGL环境中。AnimatedSprite的doDraw()中影射纹理。

<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

Android AngEnging学习TextureOptions、Texture相关推荐

  1. java/android 设计模式学习笔记(1)--- 单例模式

    前段时间公司一些同事在讨论单例模式(我是最渣的一个,都插不上嘴 T__T ),这个模式使用的频率很高,也可能是很多人最熟悉的设计模式,当然单例模式也算是最简单的设计模式之一吧,简单归简单,但是在实际使 ...

  2. Android Animation学习(五) ApiDemos解析:容器布局动画 LayoutTransition

    Android Animation学习(五) ApiDemos解析:容器布局动画 LayoutTransition Property animation系统还提供了对ViewGroup中的View改变 ...

  3. android Fragment 学习资料推荐

    为什么80%的码农都做不了架构师?>>>    android   Fragment 学习资料推荐:android大神 郭霖 http://blog.csdn.net/guolin_ ...

  4. android service 学习(上)

    转载自:http://www.cnblogs.com/allin/archive/2010/05/15/1736458.html Service是android 系统中的一种组件,它跟Activity ...

  5. android service 学习(下)

    android service 学习(下) 通常每个应用程序都在它自己的进程内运行,但有时需要在进程间传递对象,你可以通过应用程序UI的方式写个运行在一个不同的进程中的service.在android ...

  6. Android:学习AIDL,这一篇文章就够了(下)

    前言 上一篇博文介绍了关于AIDL是什么,为什么我们需要AIDL,AIDL的语法以及如何使用AIDL等方面的知识,这一篇博文将顺着上一篇的思路往下走,接着介绍关于AIDL的一些更加深入的知识.强烈建议 ...

  7. Android Binder 学习笔记

    前言: Binder是Android给我们提供的一种跨进程通信方式.理解Binder能帮助我们更好的理解Android的系统设计,比如说四大组件,AMS,WMS等系统服务的底层通信机制就都是基于Bin ...

  8. Android画图学习总结(四)——Animation(中)

    在Android画图学习总结(四)--Animation(上)中详细介绍了Tween Animation的定义.使用,由于篇幅有限,很多中重要的方面没有说明,这篇文章一方面做个完整的总结说明,另外一方 ...

  9. android培训内容明细,记录Android开发学习

    记录Android开发学习 Menu菜单学习 1.掌握Android中菜单的创建. 2.掌握Intent信使组件. 创建菜单Menu 我们模仿微信菜单栏学习,创建一个于微信菜单栏相似的菜单 那么我们应 ...

  10. Android FrameWork学习(二)Android系统源码调试

    点击打开链接 通过上一篇 Android FrameWork学习(一)Android 7.0系统源码下载\编译 我们了解了如何进行系统源码的下载和编译工作. 为了更进一步地学习跟研究 Android ...

最新文章

  1. 【原创】HP 安装 depot (以mysql为例)
  2. 自制单选多选日历文本框文本域控件
  3. Symfony常用指令(收藏版)
  4. Asp.Net customErrors与httpErrors的区别
  5. SPOJ8222(后缀自动机--出现次数最多的子串)
  6. spring 2.2 改进_Spring 4中@ControllerAdvice的改进
  7. OpenWrt 之 MT7628 移植第三方SPI驱动
  8. 微信小程序中 tabbar的icon图标格式大小
  9. 内核中的notification chain浅析
  10. xml绑定省市,并实现二级联动
  11. 不存在_别傻了,根本就不存在缘分天定
  12. springboot高校学生健康打卡系统的设计与实现毕业设计源码021009
  13. java怎么打印反三角形_Java基础练习——打印正反三角形
  14. setoolikt制作钓鱼网站
  15. chm文件导入java_chm文件无法打开-解决方法
  16. c语言中 x20是什么意思,转义字符的问题,\ x00- \ x20是什么意思
  17. typescript基础
  18. Java程序设计——模拟行星运动
  19. vue中EventBus的实现原理
  20. 腾讯滑块识别-通用滑块识别

热门文章

  1. ffplay视频播放器原理
  2. 虚拟机资源管理-Catal私有云管理软件
  3. G2R(Game to Reality) 游戏行业的O2O
  4. UITextField ios键盘
  5. 求解字符串所包含子串的个数
  6. C语言如何 实现 下雪效果
  7. 学不会 Android Framework,是不是基础不牢固?
  8. arduino控制JQ8900-16P语音模块
  9. c语言文件由结构结构序列组成吗,下列关于C语言数据文件的叙述中正确的是 A.文件由ASCII码字符序列组成,C语言只能读...
  10. web笔记day04