视频教程:https://www.bilibili.com/video/BV1t54y1W7YG
2.1 Stranded_01
StrandedEngine游戏引擎概览。
2.2 Stranded_02
初始化引擎函数
关闭引擎函数
初始化游戏函数
关闭游戏函数
winMain入口函数->初始化引擎函数->初始化游戏函数->显示窗口->loop循环(msg!=WIN_QUIT)
2.3 Stranded_03
新建文件:D3DRenderer.h、RenderInterface.h、engine.h、defines.h
RenderInterface->D3DRenderer。。
定义几个类的文件和相互的继承关系。。
2.4 Stranded_4
填写接口CRenderInterface初始化:构造函数,成员变量,析构函数。。
#ifndef _UGP_RENDERINTERFACE_H_ #define _UGP_RENDERINTERFACE_H_ #include "defines.h"; class CRenderInterface { public: CRenderInterface():m_screenWidth(0),m_screenHeight(0),m_near(0),m_far(0){} virtual ~CRenderInterface(){} //virtual bool Initialize(int w, int h, WinHWND mainWin, bool fullScreen) = 0; protected: int m_screenWidth; int m_screenHeight; bool m_fullscreen; WinHWND m_mainHandle; float m_near; float m_far; }; #endif
2.5 Stranded_5
CreateD3DRenderer()、Initialize()、OneTimeInit()、CalculateProjMatrix()、CalculateOrthoMatrix()
最重要的两个参数初始化:窗口句柄和游戏设备。
2.6 Stranded_6
SetClearCol()、StartRender()、EndRendering()、ClearBuffers()
2.7 Stranded_7
CreateStaticBuffer()、Shutdown()
2.8 Stranded_8
Render()
3. 光照
4. 纹理
三维模型和纹理坐标的坐标映射关系: