zk8085454 / UE4-Batch-Draw-Mesh-And-OpenGL-Get-Model-Data

毕设Demo:基于UE 4.21,通过顶点与面索引Data Table,借助Procedural Mesh Component批量绘制静态网格体资源并本地化,亦可批量添加精确的凸包碰撞。VS项目使用OpengGL与C++获取模型顶点及面索引,优化存储结构,输出为CSV直接供UE4绘制StaticMesh。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

UE4-Batch-Draw-Mesh-And-OpenGL-Get-Model-Data

2019.02.01-2019.06.01(毕设开发周期,期间还在忙国庆仿真)

Draw9300Meshes
本人毕设题目是基于UE4的矿山爆破仿真系统。导师会提供给我矿山模型的13万条顶点坐标与三角面索引数据集,我使用该Demo在UE4中绘制了这9300个碎石组成了矿山模型。(画面简陋到现在的我无法直视,现在想想还是Houdini做比较适合)

UE4部分使用说明

详细的技术细节我总结在了CSDN博客,这里只做简单的说明与展示:

文件/文件夹说明

  • Content
    • Blueprint 绘制单个/多个Mesh、批量添加凸包碰撞的蓝图
    • Data 存放单个/多个Mesh的顶点与面索引的数据表格、结构体
    • Mesh 绘制模型资源保存路径,可在PMConvertSM.cpp中配置
  • Source UE4 C++ ProceduralMesh转换为StaticMesh代码

VS项目部分使用说明

详细说明:【OpenGL C++ UE4】获取模型顶点及面索引数据,并优化存储结构供UE4绘制
ModelLoad-UseAssimp.cpp"Model/Teapot.obj"配置读取模型的路径,#define SHOW_WIREFRAME配置是否开启模型线框显示。
Mesh.h中配置是否开启Mesh数据导出,若声明#define EXPORT_MODEL_DATA则导出,注释仅读取并在窗口中绘制模型。

文件/文件夹说明

  • VSProject_GetMeshInfoCSV
    • GetMeshInfo
      • Config 需要的OpenGL第三方库环境,GLFW、GLAD、ASSIMP、GLM、stb_image
      • MeshData 输出的顶点与面索引CSV表格,用于导入UE4
      • Model 存放待读取obj模型,这里有一个三棱锥和茶壶作示例
      • ShaderSource OpenGL渲染模型的顶点与片段着色器
      • Camera.h 窗口摄像机控制逻辑
      • Mesh.h 处理网格信息,网格代表的是单个的可绘制实体
      • Model.h 处理模型信息,模型包含多个网格,甚至是多个物体
      • Shader.h 编译着色器项目
      • MeshInfoCSV.h 重复顶点数据去除、索引更新、打印适用于导入UE4的CSV表格
      • ModelLoad-UseAssimp.cpp main函数所在,管理整个项目各个模块

About

毕设Demo:基于UE 4.21,通过顶点与面索引Data Table,借助Procedural Mesh Component批量绘制静态网格体资源并本地化,亦可批量添加精确的凸包碰撞。VS项目使用OpengGL与C++获取模型顶点及面索引,优化存储结构,输出为CSV直接供UE4绘制StaticMesh。


Languages

Language:C++ 69.2%Language:C 29.0%Language:Objective-C 1.7%Language:CMake 0.1%Language:C# 0.0%Language:GLSL 0.0%