简介
本序列由澳大利亚的一个游戏引擎爱好者整理制作,使用了前瞻的语言技术,
经常多次的修改制作,一个个小的知识点贯通,非常具有引导学习意义!
Bilibili站转载学习,非个人研究,鸣谢!
原作者Github
Bilibili直达链接
YouTube直达链接
最终效果展示,纯OpenGL渲染的图像:
#1 抽象渲染接口
#2 添加OpenGL的渲染引擎
#3 使用Glad-OpenGL渲染图像
#1 抽象渲染接口
// GraphicsContext.h
#pragma once
namespace Aurora
{
/// <summary>
/// GraphicsContext 是渲染接口,可以拓展使用OpenGL,Vulkan,DX等等
/// </summary>
class GraphicsContext
{
public:
// 初始化渲染引擎
virtual void Init() = 0;
// 渲染缓存
virtual void SwapBuffers() = 0;
};
}
#2 添加OpenGL的渲染引擎
// OpenGLContext.h
#pragma once
#include "Aurora/Renderer/GraphicsContext.h"
// 前置声明,可以声明class\struct
// 前置声明的好处是不需要include文件,也可以防止相互包含
struct GLFWwindow;
namespace Aurora {
// OpenGL渲染句柄
class OpenGLContext : public GraphicsContext
{
public:
// 当前引擎的流程是 窗口 -> 渲染引擎
// 所以渲染引擎会持有窗口的引用
OpenGLContext(GLFWwindow* windowHandle