未来工作
主要目标
编辑器下 ctrl z 回退功能
编辑器面板的反射,可以自动解析shader的变量进行控制调整
委托与事件系统的重构
基于物理的鼠标拾取
2d直线的绘画,可以绘制摄像机camera的frustum
dx11 & OpenGL render graph
基于1,fbx(OpenFBX?https://github.com/nem0/OpenFBX)obj(tinyobjloader?https://github.com/tinyobjloader/tinyobjloader),https://github.com/ufbx/ufbx 干掉assimp库。(或者先转成gltf?) https://github.com/facebookincubator/FBX2glTF https://github.com/godotengine/FBX2glTF https://github.com/CesiumGS/obj2gltf https://github.com/KhronosGroup/glTF-Blender-IO https://github.com/KhronosGroup/COLLADA2GLTF
shader 交叉编译
脚本层可以控制物理组件和音效等
其他工作
编辑器下贴图资源的丝滑加载卸载(参考https://github.com/dfranx/ImFileDialog
完善引擎脚本层,从py脚本可以inspector到编辑器的SceneHierarchyPanel,规则待定
干掉magic_enum,改为Enum的反射
重构Mesh、Material结构,例如弄个Geometry单独存cpu端mesh数据,geometry内部有aabb包围盒成员,参考:https://github.com/flwmxd/LuxGI
基于7:有了aabb包围盒后,将渲染层的鼠标拾取改为物理拾取;CPU端的视锥体剔除
场景结点,可以将子对象挂载到父对象,transform 有父子关系(可参考https://github.com/jpvanoosten/LearningDirectX12/blob/main/DX12Lib/inc/dx12lib/SceneNode.h
替换 stb_image,换用 FreeImage 去加载纹理;使用自定义贴图格式(.htex)进行纹理压缩(.dds),可用 ISPCTextureCompressor 库(https://github.com/GameTechDev/ISPCTextureCompressor)也可以直接用 DirectXTex 库(https://github.com/microsoft/DirectXTex/wiki/Compress)
使用 recast 作为导航网格:https://github.com/recastnavigation/recastnavigation
环境光贴图、后处理等 Scene Setting 也应该要序列化到场景文件中。
遥远的未来
多平台:Android、macos...
Done
重构python系统,思考解释器用引擎内部放的 py3.dll 之类的,项目结构固定脚本和Libs放在Scripts文件夹下
引擎自定义资源格式(目前主要准备参考 gltf 2.0 格式) 加载可以参考:https://github.com/syoyo/tinygltf/blob/release/tiny_gltf.h 做好了 mesh 的格式,skeleton 还没做
视口加入坐标轴
编辑器Content Browser的右键删除功能(次要)、Show in Explorer功能(主要)
Last updated