Skip to content

Mostro-Complexity/Scene-Playground

Repository files navigation

天体演化模拟程序


这是我准备基于OpenGL 3.0+实现的一个物理引擎,原本打算只是写一个大作业,现在有了更加宏大的想法。

希望通过该项目能够实现天体物理学中相应算法的可视化。(如天体的演化)

目前该项目还在实现当中,欢迎每个人(熟悉的不熟悉的)能给我意见,更希望有志之士能与我共同完成此项目。

image image

此项目已经完成:

  • 基本视角变化已经算法已经完成
  • 对OpenGL接口进行了简单封装
  • 可以读取任意Obj模型,进行显示

项目环境:

  • visual studio 2017(VC14)
  • visual studio 2019(VC15)
  • 基于C++14
  • OpenGL 3.3

项目目标:

  • 从科学计算的角度来看,实现星体的碰撞与破碎,星云的融合。
  • 从图形学的角度,实现光照、镜面反射、粒子特效等。

实体关系图:

最近一次更新(黑体为要修改的地方):

  • 2018-4-20:

    • 使用Assimp导入3D模型。
    • ModelGroup中使用一个Shader和多个Mesh、Texture。
    • 部分地方微调。
  • 2018-4-15:

    • 实现ModelGroup类。
    • 将着色器属性移入ModelGroup类。
    • 移除每个类的init函数,避免因为调用顺序不同产生错误的可能。
    • 简化了主程序步骤
  • 2018-4-13:

    • 着色器、纹理类的实现。着色器可以直接导入纹理对象进行渲染。
    • 窗口对渲染列表进行渲染。
    • 所有对象都在渲染列表中被渲染。
    • 添加ReadMe。
    • 上传了一个使用Assimp读取Obj文件的例子。
    • 着色器应该全局唯一,并且是模型的属性
    • 着色器不能是窗口的属性
    • 任何图形应该拥有单独的类
    • 着色器在窗口中进行无差别渲染(不进行额外操作,和普通Group对象相同)
    • 下一步读取Obj文件,并显示,不考虑光照
  • 2018-5-17:

    • 使用Assimp,xtensor,SOIL等第三方库完成了Obj模型的显示。
    • 尝试使用多个着色器绘制星球轨道,失败
  • 2018-5-22:

    • 使用多个着色器绘制星球轨道,成功。
    • 开启编译器O2优化。(最优速度优化)

About

天体演化模拟程序

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published