Muli3D是一个平台无关的软渲染库,实现了渲染流水线的特性,代码可读性高,模块性好,很适合去做一些原型或者研究一些新的特性。
环境
Window 64bit
VS2015
Muli3D 0.8 https://sourceforge.net/projects/muli3d/
用VS2015打开项目,随便找个工程进行编译,爆了下面的error.
链接器工具错误 LNK2026 XXX模块对于 SAFESEH 映像是不安全的"
解决:
fatal error LNK1104: 无法打开文件“LIBC.lib”错误
解决:
编译出来几个demo的结果
导入工程之后,结构是这样
Libmuli3d是底层的渲染层,里面实现了一个光栅化的流水线,可以把它当作是一个opengl或者DX这样的库,还包含了基础的几个数学类。
Libappframework是上层的应用层,提供了一个完整的游戏框架, 包括游戏循环,场景管理,输入管理等,这使得开发人员可以集中精力在游戏逻辑上, 而不用对关心各种细节实现.
Envsphere 应用,基于Libappframework实现的的上层应用,每一个应用在Muli3D中都是一个Application。
下面是Application相关的类图
麻雀虽小五脏俱全,每一个Application都包含了下面几个模块
CFileiIO:文件读写
CGraphics:图形渲染
CScene:场景管理
Input:输入模块,这个模块根据平台的不同实现了三个不同的Input
CResManager:资源管理
一个应用的启动运行流程如下
今天简单浏览了一下Muli3D的代码结结构,接下来会对库里的比较复杂的模块进行分析和解读。