GLES2 GraphicEngine Practice(一)建立框架
做图形引擎是很多人学生时代的梦想吧,我也不例外。
以前学的是d3d,想学着先人自己把d3d封装一下,不过最近做了一些移动平台的游戏上的工作,觉得现在OpenGLES更有用,所以还是试试封装GLES吧。
个人完成一个图形引擎工作量太大,所以我想只完成部分内容,做一个轻量级的。
需要的模块:
1. Gles2.0在Windows和Android平台上Application类结构
2. 文件读取解析
3. 字符处理
4. 数学库
5. 相机
6. 网格(自定义格式的模型文件)
7. Shader
8. 材质与贴图
9. Font
10. Log支持
现在不少游戏都只用到GLES1.1,但是基本上现在的机器都支持2.0,这个引擎至少也要花费半年空闲时间,新的机型会逐渐淘汰旧机型。
所以决定先只支持GLES2.0。另外Android平台开发环境比较开放,不需要太多资金投入,所以引擎首先将支持Android平台。
目标如下:
- 此框架绝大部分为C++编写。可以在Windows上使用Visual Studio开发调试,然后可以十分方便发布到Android手机上。
- 可以方便的用于制作游戏demo。
- 全3维支持,使用GLES2.0做特效和高效的绘制。
进入正题:如何搭建框架。
有了Android开发的一些基础知识,加上一些网上的博文,大致可以进行工程。
首先,GLES1.1和2.0在windows开发上所需要的头文件、lib、dll文件都可以在网上轻易找到。
然后,可以去找POWERVROpenGL ES SDK,里面包含了丰富的gles的教程。
再一点,使用Eclpse,加上Cygwin、Android SDK和Android-ndk可以搭建好Android的gles 2.0编译与发布环境。
1. 工程source目录:
ZTGEO..
|-Common..
|-ImageLib..
|-zlib..
|-freetype2..
|-ZTFileUtility.h&cpp
|-ZTResourceManager.h&cpp
|-ZTString.h&cpp
|-GLESApp..
|-ZTError.h
|-ZTGEO.h