引擎分析
文章平均质量分 75
hellspawn
这个作者很懒,什么都没留下…
展开
-
Doom3 CVarSystem分析
转发请注明出处CVarSystem是用来方便管理控制台变量的。其中核心类有idCVar类与 idCVarSystem。 其中idCVarSystemLocal实现了idCVarSystem类。声明一个idCVar对象即声明了一个控制台变量,例如:idCVar my_var("myval0");但是想象一下,当我们在程序中多处使用一个变量的时候,若我们把我们所要的数据塞到id原创 2012-06-24 10:53:56 · 545 阅读 · 0 评论 -
DOOM3 命令系统分析
doom3命令系统中,重要的类有idEventDef负责管理命令的注册声明,idEvent是命令对象。该命令系统主要数据结构有 eventDefList , FreeEvents,EventQueue,EventPool其中EventPool是一个声明为 idEvent 的 4096个对象的数组,该数组是命令对象的分配池。这样在实时运行时,省去了从堆中分配命令与在堆中释放的时间。在原创 2012-06-24 10:50:50 · 686 阅读 · 0 评论 -
DOOM3 运行时型别判断与消息映射机制
Doom3的型别判断主要依靠idTypeInfo类提供信息,该类的主要成员有 class idTypeInfo {public:const char * classname;//当前类名const char * superclass; //父类名idClass * ( *CreateInstance )( void );//指向类实例化函数的指针void (原创 2012-06-24 10:49:27 · 559 阅读 · 0 评论 -
Doom3引擎初始化分析
首先,进入的是Doom3的WinMain函数。(其中"..."为省略其中代码)下面展示的是WinMain函数的主要结构int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) {...Sys_SetPhysicalWorkMemory(原创 2012-06-24 10:48:27 · 1153 阅读 · 0 评论 -
Doom3 引擎渲染管线分析
转发请注明出处Doom3的渲染管线分为两个阶段,一个是前端渲染,一个是后端渲染。其中前端渲染负责绘制简单的2D UI和提供解析场景树并将需要绘制的物体打包且用“渲染命令”进行序列化,并排序然后送往后端进行渲染。后端渲染是真正进行渲染的地方,它接受前端传来的“渲染命令”链表,然后逐一解析并调用OPENGL API进行渲染。Doom3每帧都会调用session的UpdateScre原创 2012-06-24 10:51:43 · 1016 阅读 · 0 评论 -
约翰卡马克的编码规范
通用命名规则------- tab 键的空格数设置为4个。 在每处都使用大括号(if,else,函数,结构体,typedef,类定义,等等) if ( x ) {}else 代码段的左大括号 与 右大括号开始在同一行if ( x ) {} else {}表达式与左右括号间要用空格空开。 例如:用if ( x ) {}代替如下语原创 2013-03-22 11:30:16 · 1761 阅读 · 0 评论