# 图形学大作业-模型浏览器 **Repository Path**: StellaryYan/MyModelBrowsers ## Basic Information - **Project Name**: 图形学大作业-模型浏览器 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-03-05 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #使用的外部库(所有库都已包含在工程文件中,不需要额外配置环境): FreeImage 图像格式与处理库,用来导入贴图文件 Assimp 模型文件解析库,用来导入模型文件 glm opengl数学库,包括许多图形学相关的基本数据结构和算法 glfw,glew 跨平台的opengl桌面程序接口库和opengl载入库 #实现的特性 --导入并展示模型文件(因为模型的导出软件可能不同,不保证能够正确的显示模型,其中obj格式最为稳定也最易于修改) --通过漫游视角观察模型 --射线与模型的碰撞检测 --通过碰撞检测实现的模型变换功能 --通过碰撞检测实现的顶点拾取功能 --可在平面着色和phone着色直接切换 --线框渲染 --Blinn–Phong反射模型,实现点光源和方向光,漫反射和镜面反射 --法线贴图 --阴影(通过阴影贴图实现,没做阴影光滑) --可自定义的后期处理效果(在PostFragment.glsl里控制) --天空盒 --减面算法,根据 Surface Simplification Using Quadric Error Metrics Michael Garland ? Paul S. Heckbert 实现 #使用手册 为了方便演示和讲解,给出的build中自带了一些模型,贴图,天空盒,shader。 操作 在漫游时,通过鼠标旋转视角,按wasd移动,按+/-加速或减速。 按空格开启/关闭后期效果,按L开启线框模式,按数字键1/2/3/4分别切换不同的渲染模式(带光照贴图,纯贴图,白色phong着色,白色平面着色) 将屏幕中心对准模型后,按鼠标左键选中模型,选中后会显示黑色包围盒。 选中后按右键拿取,拿取时按滚轮调整模型与镜头间的距离,按i/k缩放模型 渲染窗口开启后,命令行窗口仍然是一个独立的线程,可以在里面输入以下命令 import [模型文件路径] 导入一个模型 simp [简化率] 通过减面算法减少当前选中模型的面数,浮点参数为简化率,0-1.0之间(简化后uv和法线数据会混乱,多网格模型会出现缺口) VertInfo [模型id] [网格id] [顶点id] 打印一个顶点的信息,通过三层id来索引顶点 skybox [天空盒目录路径] 切换天空盒(工程中自带了一些天空盒)