毕设工作日志
记录从23年12月起的毕设工作情况,顺便练习用OKR工作法
三维殷集可视化软件的开发
项目总体说明
12月
工作计划
- 目标
- 毕设框架搭建(最重要)
- CS468基本学完
- 月底进行项目说明的补充
- 开始学习GAMES202(Bounce)
关键成果清单
最后更新时间12.06
- 毕设框架搭建(最重要)
- 程序完成模块化设计
- 渲染模块(最重要)
- 实现2D与3D场景的渲染
- 1207 LearnOpenGL已有代码的全部在程序中跑通
- 实现读取bunny的obj模型文件
- 掌握渲染管线流程
- GAMES101中保存帧画面的代码在程序中跑通
- GAMES101中的光照模型与加速算法的代码迁移到程序中(Bounce)
- 几何模块
- 完成几何底层数据结构的设计
- 2D场景下DelaunayTriangulation的代码在程序中跑通
- GUI模块
- 学会如何添加Widgets组件
- 通过GUI实现保存当前帧画面功能
- 通过GUI实现2D-3D视图切换
- 渲染模块(最重要)
- 程序完成模块化设计
- CS468初步学完
- 完成笔记的翻译
- Section 1-5
- Section 6-10
- Section 11-15
- 明确下一阶段学习安排(看视频?写作业?写代码?)
- 完成笔记的翻译
- 月底进行项目说明的补充
- 开始学习GAMES202(Bounce)
(GPT帮忙总结了一下目前的工作)
在您的项目描述中,您提到了想要完成一个基于 ImGui/OpenGL/OCCT 的 GUI 可视化软件的 C++ 开发工作,专门用于 Linux 系统。您已经设置了项目的目录结构,并且计划通过分别利用 ImGui、OpenGL 和 OCCT 来实现 GUI 交互、渲染表现和几何算法的开发。
您的目录结构包括了:
include
:存放头文件src
:源代码文件tests
:单元测试shaders
:着色器代码external
:第三方库,目前包括 glad、imgui 和 stbassets
:资源文件,如纹理、模型等
您的代码结构设计中包含了以下几个关键类:
Application
:包含主循环Camera
:摄像机类,可能用于视图控制Renderer
:渲染类,包含Camera
和Shader
成员变量ResourceManager
:资源管理类,用于加载和管理 OpenGL 资源,如模型和纹理
目前,您已经实现了一个基础的 demo,能够渲染一个带纹理的立方体,这是基于 LearnOpenGL 教程的代码移植。
接下来,为了进一步推进项目,我们可以分阶段进行:
- 基础 GUI 开发:
- 利用 ImGui 创建一个简单的用户界面,包括菜单和能够输入参数的控件。
- 集成 ImGui 和 OpenGL,确保可以通过 GUI 控件调整渲染参数。
- 二维几何图形绘制:
- 实现基础的二维图形绘制功能,允许用户输入参数并在 OpenGL 窗口中渲染图形。
- 添加基础交互功能,如图形的位移、旋转和缩放。
- 增强渲染表现:
- 开发更高级的渲染效果,如光照、阴影和反射。
- 优化渲染流程,提高渲染效率和质量。
- 集成 OCCT 以进行几何算法开发:
- 集成 OCCT 库,实现复杂的几何算法处理。
- 开发文件读取输出功能,支持几何模型的导入导出。
- 实现具体的几何模型编辑功能。
为了继续前进,我们需要确认当前的进度和具体的下一步行动。您提到想要先实现一个基础版的 demo,那么,我们可以从以下步骤开始:
- 设计并实现一个基础的 ImGui 用户界面。
- 通过 ImGui 界面接受用户输入,并将这些输入用于 OpenGL 二维图形的绘制。
如果您同意这个方向,请告诉我,我们可以开始着手编写伪代码,然后是具体的 C++ 代码。如果您有其他的想法或者需要先解决的问题,请告知。