Muli3D源码分析(1) - 框架概览
Muli3D简介
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的代码结结构,接下来会对库里的比较复杂的模块进行分析和解读。
Muli3D源码分析(1) - 框架概览相关推荐
- 【OkHttp】OkHttp 源码分析 ( 网络框架封装 | OkHttp 4 迁移 | OkHttp 建造者模式 )
OkHttp 系列文章目录 [OkHttp]OkHttp 简介 ( OkHttp 框架特性 | Http 版本简介 ) [OkHttp]Android 项目导入 OkHttp ( 配置依赖 | 配置 ...
- SpringMVC源码分析_框架原理图
SpringMVC源码分析_框架原理图 ...
- Activiti源码分析(框架、核心类。。。)
Activiti源码分析(框架.核心类...) 目录 概 述 activiti源码分析(一)设计模式 总结: 相关工具如下: 分析: 小结: 参考资料和推荐阅读 LD is tigger foreve ...
- [Abp vNext 源码分析] - 1. 框架启动流程分析
一.简要说明 本篇文章主要剖析与讲解 Abp vNext 在 Web API 项目下的启动流程,让大家了解整个 Abp vNext 框架是如何运作的.总的来说 ,Abp vNext 比起 ABP 框架 ...
- Scrapy-redis 源码分析 及 框架使用
From:https://blog.csdn.net/weixin_37947156/article/details/75044971 From:https://cuiqingcai.com/6058 ...
- ThinkPHP5.1.x 框架源码分析之框架的灵魂
一.类的自动加载初始 框架的灵魂,类的自动加载 为什么说是框架灵魂呢,一般框架都会有类的自动加载,当引入文件很多的时候,就会需要用到.这一个也是很多人想去阅读源码时卡住的点 源码阅读 打开到入口文件 ...
- android animatorset 监听,Android源码分析--动画框架AnimatorSet
这一节,我要介绍的是AnimatorSet. 一提到android的动画,一定会涉及到AnimatorSet,因为他太好用了.它所封装的接口让很多复杂的动画叠加变得容易. AnimatorSet是继承 ...
- jQuery源码分析 整体框架部分及部分常用方法
最近尝试看看jQuery的源码. 版本 version = "1.11.1" 相对于看一本jQuery如何使用的书,看jQuery源码对它可以有更深层次的理解.jQuery中大量使 ...
- php 框架源码分析,Laravel框架源码解析之模型Model原理与用法解析
本文实例讲述了Laravel框架源码解析之模型Model原理与用法.分享给大家供大家参考,具体如下: 前言 提前预祝猿人们国庆快乐,吃好.喝好.玩好,我会在电视上看着你们. 根据单一责任开发原则来讲, ...
最新文章
- model.fit以及model.fit_generator区别及用法
- 数字语音信号处理学习笔记——语音信号的短时时域分析(4)
- linux如何判断光盘是否挂载,LInux下如何挂载光盘找rpm包的方法步骤
- verilog读写文件(整理)
- 白内障预防+手术中人工晶状体的选择
- 爬虫遇到路径转换的解决方案
- 基础算法 —— 模拟思维
- java 封装结果集_java封装结果集
- CAN笔记(6) CAN协议(一)
- 【Python数据分析】时间序列分析——AR/MA/ARMA/ARIMA
- AdvancedInstaller.com 命令行参数
- Vue —— 移动端添加 fastclick
- 【数据仓库】 BI 项目管理之角色和职责
- Python分词、情感分析工具SnowNLP使用方法
- python如何编写温度转换_用python写温度转换
- 50条字面和实际意思大不同的英语
- iPhone 重大缺陷 存储空间耗尽后无法正常开机
- 超多版式运用手法!128张让你灵感爆发的海报设计
- Android Java 虚拟机
- Elasticsearch学习第二篇--常用的几种搜索方式