Explorer Engine This is a simple Rendering Engine based on OpenGL and C++.
- 引擎核心
- 编译后生成静态库文件
- 链接到Sandbox
- 由Sandbox调用
- 编辑器
- exe文件
- 构建应用程序
- 测试项目
- exe文件
- 测试应用程序
- EntryPoint.h
- Application.h/.cpp
- SandBoxApp.cpp
- Log.h/.cpp
- premake.lua
- Event.h
- ApplicationEvent.h
- KeyEvent.h
- MouseEvent.h
- exppch.h/.cpp
- Window.h/.cpp
- Layer.h/.cpp
- LayerStack.h/.cpp
- ImGuiLayer.h/.cpp
- Input.h/.cpp
- KeyCodes.h
- MouseButtonKeyCodes.h
- ImGuiBuild.h
- OpenGLContext.h/.cpp
- Shader.h/.cpp
- Buffer.h/.cpp
- Renderer.h/.cpp
- VertexArray.h/.cpp
- RenderCommand.h/.cpp
- Camera.h/.cpp
- DeltaTime.h
- Texture.h/.cpp
- CameraController.h/.cpp
- Sandbox2D.h/.cpp
- Renderer2D.h/.cpp
- SubTexture2D.h/.cpp
- Framebuffer.h/.cpp
- Scene.h/.cpp
- Components.h
- Object.h/.cpp
- ScriptableObject.h
49.场景Hierarchy面板
- SceneHierarchyPanel.h/.cpp
- Light.h
- Gizmo.h/.cpp
- Mesh.h/.cpp
- SubMesh.h/.cpp
- Material.h/.cpp
- RendererData.h/.cpp
- UI.h/.cpp
- Environment.h/.cpp
- Skybox.h/.cpp
- ContentBrowser.h.cpp
- ModelImporter.h/.cpp
-
exppch.h/.cpp。
包含引擎需要用到的C++标准库文件和其他库文件,预先编译为二进制文件,加快项目构建速度。
-
spdlog
外部日志库文件。
-
GLFW
外部窗口库文件,配合OpenGL。
-
Event.h
定义所有事件基类 Event、事件调度器 EventDispatcher,定义事件类型 EventType 和事件种类 EventCategory。
-
ApplicationEvent.h
定义所有窗口事件、App事件。
-
KeyEvent.h
定义所有键盘事件 KeyEvent。
-
MouseEvent.h
定义所有鼠标事件。
-
ImGuiLayer.h/.cpp
ImGui层,初始化ImGui,进行ImGui基本设置和ImGui事件处理。
-
Gizmo.h/.cpp
渲染Gizmo。
-
UI.h/.cpp
封装ImGui基本控件,优化UI布局。
-
Core.h
引擎内核文件,定义引擎需要的宏和条件编译。
-
Application.h/.cpp
引擎应用程序入口,应用基类。定义所有事件处理函数,创建窗口并为窗口设置事件函数,接收事件并进行事件调度,将事件传递给层。创建ImGui层。定义引擎循环,更新层栈中的所有层,渲染GUI,更新窗口。
-
EntryPoint.h
引擎入口点,负责创建应用程序。
-
Log.h/.cpp
引擎日志系统,定义内核日志和客户端日志基本格式。
-
Explorer.h
引用Explorer.dll需要包含的所有头文件。
-
Input.h/.cpp
输入类,定义实现按键鼠标输入接口。
-
DeltaTime.h
帧间隔,计算每帧之间的时间间隔。
-
Window.h
窗口类,可创建事件。
-
Layer.h/.cpp
所有层的基类,可接收事件并处理。
-
LayerStack.h/.cpp
存储所有层,普通层在列表前半部分,覆盖层在列表后半部分。
-
ImGuiLayer.h/.cpp
ImGui层,渲染ImGui。
-
Math.h/.cpp
数学库,包括分解transform矩阵函数,将transform矩阵分解为position、rotation和scale向量。
-
OpenGLContext.h/.cpp
OpenGL上下文类,初始化OpenGL上下文,交换双缓冲。
-
Shader.h/.cpp
着色器,顶点着色器处理顶点,片元着色器处理像素,最终输出该像素的正确颜色。
-
Renderer.h/.cpp
渲染器,设置场景参数,进行渲染命令提交。
-
Renderer2D.h/.cpp
2D渲染器,进行2D图形渲染。
-
Buffer.h/.cpp
缓冲类,包含顶点缓冲和索引缓冲。缓冲区布局接口,格式化缓冲区布局。
-
VertexArray.h/.cpp
顶点数组类,链接多个顶点缓冲区和索引缓冲区,整合缓冲区布局。
-
RenderCommand.h/.cpp
渲染命令,执行最底层的OpenGL渲染命令。
-
Texture.h/.cpp
纹理类,进行纹理加载和纹理格式设置。
-
SubTexture2D.h/.cpp
子纹理,根据子纹理坐标从Texture中裁剪。
-
Framebuffer.h/.cpp
帧缓冲区,可创建帧缓冲区,包括颜色缓冲区和深度缓冲区,可将颜色缓冲区显示在ImGui上。
-
EditorCamera.h/.cpp
编辑器相机,编辑器内场景渲染相机,可自由移动,用来查看场景,不同于相机组件。
-
Environment.h/.cpp
环境设置,包括环境光照和天空盒属性。
-
Skybox.h/.cpp
天空盒,封装天空盒的属性,进行Cubemap的创建和设置。
-
Scene.h/.cpp
场景,包括所有的实体对象。
-
Object.h/.cpp
实体,场景中的物体对象,保存物体id,和其他参数,通过id关联所有组件。
-
ScriptableObject.h
可脚本化对象,所有本地脚本的基类。
-
SceneSerializer.h/.cpp
场景序列化器,可序列化和反序列化场景。
-
PlatformUtils.h/.cpp
平台工具,包括文件对话框,可打开打开文件和保存文件对话框。
-
Camera.h/.cpp
相机组件,不同于编辑器相机。
-
Components.h
组件,所有组件。
-
Light.h
光源组件,包括平行光源、点光源、聚光源。添加该组件可以实现照明效果。
-
Transform.h
变换组件。
-
Mesh.h/.cpp
网格组件,可添加若干子网格。
-
SubMesh.h/.cpp
子网格,设置顶点缓冲区数据和布局。
-
Material.h/.cpp
材质组件,设置着色器和材质贴图。
-
ModelImporter.h/.cpp
模型导入器,用来导入外部3d模型Mesh,暂时仅支持.obj文件。
-
着色器文件,包括顶点着色器和片元着色器。
-
贴图文件。
-
ExplorerEditor.cpp
编辑器,继承Application,构建应用程序。
-
EditorLayer.h/.cpp
编辑器层,构建引擎编辑器。
-
SceneHierarchyPanel.h/.cpp
场景物体层级面板,显示所有场景物体及其层级关系。
-
ContentBrowser.h.cpp
项目文件浏览面板,显示项目中所有资产文件。
-
着色器文件,包括顶点着色器和片元着色器。
-
贴图文件。
-
SandboxApp.cpp
应用程序类,继承Application。可创建具体Layer。
-
Sandbox2D.h/.cpp
2D渲染测试层,继承Layer。