`
windybell
  • 浏览: 16139 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JME3资源管理之三:资源加载流程

 
阅读更多
系列目录:
JME3资源管理之一:核心组件介绍
JME3资源管理之二:AssetLoader和AssetLocator
JME3资源管理之三:资源加载流程
JME3资源管理之四:心得和小节

JME3在加载资源的过程中,AssetManager会先根据AssetKey去缓存中查找资源,如果找得到的话当然皆大欢喜,找不到的话才会去读取磁盘。

具体加载的流程是这样的:
1、在缓存中查找资源

检查AssetCache中的资源,若找不到就进行下一步,若找到就直接返回了。
    AssetCache cache = handler.getCache(key.getCacheType());
    Object obj = cache != null ? cache.getFromCache(key) : null;


2、匹配AssetLoader

根据资源后缀名来匹配AssetLoader,找不到的话抛出异常。
    AssetLoader loader = handler.aquireLoader(key);


3、资源定位

遍历所有注册过的AssetLocater,返回AssetInfo,找不到的话会抛出异常。
    AssetInfo info = handler.tryLocate(key);


4、加载资源

调用AssetLoader的load(AssetInfo info)方法,返回资源对象。
    obj = loader.load(info);


5、后续处理

AssetLoader返回Object类型的对象,经过AssetProcessor处理后,转换成实际的对象类型。
比如AWTLoader读取图片数据后,返回Image类型的对象。再通过TextureProcessor处理后才变成Texture对象。
    AssetProcessor proc = handler.getProcessor(key.getProcessorType());
    if (proc != null){
        // do processing on asset before caching
        obj = proc.postProcess(key, obj);
    }


6、保存到缓存

资源加载结束后,对象会保存到缓存中。
    if (cache != null){
        // At this point, obj should be of type T
        cache.addToCache(key, (T) obj);
    }

分享到:
评论

相关推荐

    sandbox_jme3_jogl:使用jogl后端实验jme3

    8. **资源加载**:JME3提供了一些工具类来加载和管理纹理、模型、音频等资源。 9. **调试和日志**:利用JME3的DebugKeys或日志框架(如log4j)进行调试输出。 总的来说,"sandbox_jme3_jogl:使用jogl后端实验jme3...

    JMonkeyEngine 中文教程

    最后一章关注游戏的性能优化技巧,如降低渲染开销、资源加载策略,以及如何打包和发布游戏,使其能在不同平台上运行。 通过这个详尽的中文教程,读者不仅可以学习到JMonkeyEngine的核心特性,还能掌握3D游戏开发的...

    Java私塾Java初级部分教材

    3. **加载与执行**:Java虚拟机加载字节码,并将其转换为机器码执行。在此过程中,JVM负责管理内存、线程调度等任务。 #### 五、Java虚拟机的功能 1. **执行引擎**:负责执行字节码。 2. **内存管理**:管理堆...

    FlagRush 1-6 中文翻译

    - **SimpleGame概述**:SimpleGame是jMonkeyEngine(简称jME)中提供的一个基本应用程序模板,用于简化游戏开发流程。它自动处理了一些常见的初始化任务,如设置相机、输入处理等,使得开发者能够快速搭建起一个可...

    jMonkey相关资料

    引擎的资源管理系统负责加载、缓存和管理游戏中的所有资源,如模型、纹理、音频和动画,确保高效且无内存泄漏。 8. **社区与工具** jMonkeyEngine有一个活跃的开发者社区,提供丰富的教程、示例和插件。官方还...

    公式编译器整理jmeditor+kindeditor

    JME(Java Math Editor)编辑器特别强调了对数学公式的支持,通过内建的LaTeX语法解析和渲染,使得在网页中插入复杂的数学公式变得简单。在题库类应用中,这样的功能非常关键,因为它允许教师或管理员方便地录入包含...

    JAVA卡相关规范

    它定义了如何在JAVA卡上安装、更新、删除和管理Java应用程序,以及如何控制这些应用程序的权限和资源使用。GP规范包括卡片管理器(Card Manager)、安全域(Secure Domain)和应用(Application)等概念,为卡片的...

Global site tag (gtag.js) - Google Analytics