战魂小筑

讨论群:309800774 知乎关注:http://zhihu.com/people/sunicdavy 开源项目:https://github.com/davyxu

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  257 随笔 :: 0 文章 :: 506 评论 :: 0 Trackbacks

本人的设计图可以方便在文本编辑器里查看(>为派生 +为包含)

MAX插件导出的模型资源分:Mesh/Skin, Skeleton, Animation

不同动作按照不同的动画文件保存

 

ResourceHandle 包含基本id
        >NamedResourceHandle 带有名称资源,包含hashA, hashB, 使用暴雪hash函数生成
        >ModelHandle       
        >MeshHandle           
        >SkeletonHandle       
        >AnimationHandle

获取资源,如果资源不存在时,自动加载
ModelMaster.ManualCache( &ModelHandle )

直接资源访问:
RawSkeleton = ModelMaster.ManualCache( &SkeletonHandle("a.skl") )
RawSkeleton->GetMarker(...)

异步资源加载,异步id保存于ModelHandle中,在callback中根据id确认
ModelMaster.AsyncCache( &ModelHandle )

获取资源指针,未加载时,返回空
ModelResource = ModelMaster.Fetch( &ModelHandle )

模型资源加载器
    在模型句柄中绑定对应加载器
    可以自行编写带换装的ModelLoader,通过读取自己的配置文件,自行加载资源后生成RawModel
ModelLoader
    ModelHandle         ---mapping--->    ModelLoader         ---generate--> RawModel
    MeshHandle          ---mapping--->    MeshLoader             ---generate--> RawMesh
    SkeletonHandle     ---mapping--->    SkeletonLoader      ---generate--> RawSkeleton
    AnimationHandle    ---mapping--->    AnimationLoader   ---generate--> RawAnimation

引用计数类   
ModelResource
    >RawModel
    >RawMesh
    >RawSkeleton
    >RawAnimation

RawModel中不保留Handle,只保留指针
RawModel
    +MeshVB    从模型文件中直接读取顶点格式,包含 静态,GPU,CPU类型顶点
        +RawMesh
        +MeshIB        一次性填充IB
        >GPUMeshVB    一次性填充VB
        >CPUMeshVB    每帧计算
    +Animation            运行期数据(时间/帧)
        +RawAnimation    原始动画内容
    +Skeleton
        +RawSkeleton

posted on 2010-03-12 16:13 战魂小筑 阅读(1935) 评论(0)  编辑 收藏 引用 所属分类: 游戏开发技术渲染 Shader 引擎

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理