未来工作

主要目标

  1. 编辑器下 ctrl z 回退功能

  2. 编辑器面板的反射,可以自动解析shader的变量进行控制调整

  3. 委托与事件系统的重构

  4. 基于物理的鼠标拾取

  5. 2d直线的绘画,可以绘制摄像机camera的frustum

  6. dx11 & OpenGL render graph

  7. shader 交叉编译

  8. 脚本层可以控制物理组件和音效等

其他工作

  1. 编辑器下贴图资源的丝滑加载卸载(参考https://github.com/dfranx/ImFileDialog

  2. 完善引擎脚本层,从py脚本可以inspector到编辑器的SceneHierarchyPanel,规则待定

  3. 干掉magic_enum,改为Enum的反射

  4. 重构Mesh、Material结构,例如弄个Geometry单独存cpu端mesh数据,geometry内部有aabb包围盒成员,参考:https://github.com/flwmxd/LuxGI

  5. 基于7:有了aabb包围盒后,将渲染层的鼠标拾取改为物理拾取;CPU端的视锥体剔除

  6. 场景结点,可以将子对象挂载到父对象,transform 有父子关系(可参考https://github.com/jpvanoosten/LearningDirectX12/blob/main/DX12Lib/inc/dx12lib/SceneNode.h

  7. 替换 stb_image,换用 FreeImage 去加载纹理;使用自定义贴图格式(.htex)进行纹理压缩(.dds),可用 ISPCTextureCompressor 库(https://github.com/GameTechDev/ISPCTextureCompressor)也可以直接用 DirectXTex 库(https://github.com/microsoft/DirectXTex/wiki/Compress

  8. 使用 recast 作为导航网格:https://github.com/recastnavigation/recastnavigation

  9. 环境光贴图、后处理等 Scene Setting 也应该要序列化到场景文件中。

遥远的未来

  1. 多平台:Android、macos...

Done

重构python系统,思考解释器用引擎内部放的 py3.dll 之类的,项目结构固定脚本和Libs放在Scripts文件夹下

引擎自定义资源格式(目前主要准备参考 gltf 2.0 格式) 加载可以参考:https://github.com/syoyo/tinygltf/blob/release/tiny_gltf.h 做好了 mesh 的格式,skeleton 还没做

视口加入坐标轴

UE5的编辑器,左下角有坐标轴

编辑器Content Browser的右键删除功能(次要)、Show in Explorer功能(主要)

Last updated