终于动手写自已的3D引擎了。
看过几个引擎之后,早有此想法,现在终于动手。希望能在这里记录下自已开发过程中的点点滴滴。
目前只专注写3D渲染部分。
其实现在大多数所谓的3D渲染引擎,就是在现成的3D图形引擎(比如Direct3D,OpenGl)的基础上,再做一层场景数据的组织管理逻辑。当然还包括材质特效数据的组织,各种工具的开发。
对于3D渲染引擎来说,一般都会将其分为资源管理、场景管理和渲染管理三个部分。
打算从资源管理开始写起,这样有利于后期的开发。
本打算先写一个3dsMax的插件,定义自已的3D文件格式,但昨天去AutoDesk官网了解了一下,3dsMax的各版本都有自已的sdk,要安装完全版的才会带,一下子又找不到,官网上只免费提供3dsMax5.0的sdk。插件的事儿,就先放一边。
好在以前研究过几个比较流行的3d文件格式,先将就用它们来代替,以便快速进入到核心逻辑的开发。
引入各种资源数据按类型解析和管理的机制。
引入脚本解析机制,对自定义的资源文件(不含控制逻辑)进行解析。
引入句柄的管理与分配机制。
引入智能指针机制。
采用模板将多种模式范例化,以提高开发效率。