工具
vs2019,win10,git,cmake
下载libigl
新建个文件夹,在文件夹内右键git bash,我是2020年8月24下载的,我下载的版本9M左右。
在git中输入
git clone --recursive https://github.com/libigl/libigl.git
- 1
如果显示faided,就清除一下端口,然后重新输入上面的。(注意:我没有翻q)
git config --global --unset https.proxy
- 1
cmake
下载下来后,文件夹的名字就叫libigl
剪切到其他盘,比如D盘
下载个cmake,最新版的下载好后直接在cmake-3.18.1-win64-x64\bin中找到
然后设置如下
因为要显示,所以我点了这几个
点configure,有红色继续点,没有红色出现就generate
启动sln
在D:\LIBIGL\libigl\tutorial\build文件夹中找到sln
启动例子
结束后,接下来就可以启动例子,想看哪个例子,就点击右击,设为启动项,然后按F5
【1】git clone得到的libigl库
可以参看libigl库的clone和安装
【2】新建一个win32的空项目
【3】加载文件
(1)将libigl库的103项目的main函数文件包含进来
main函数文件在tutorial–102_DrawMesh文件夹下。
(2)将libigl库的tutorial_shared_path.h文件加载进来
tutorial_shared_path.h文件在libigl-tutorial文件夹下。
这个文件是方便加载模型,将模型的文件路径定义为宏。
(3)将glad.c文件加载进来
glad封装了opengl功能函数接口的扩展库文件。
glad.c在libigl–external–glad–src里面
【4】配置 包含文件,库文件
(1)在项目文件中,新建个include和lib文件夹。
(2)将libigl库下的external文件夹和igl文件夹复制进我们的include文件夹。
(3)将glfw3.lib复制进lib文件夹
在libigl\external\embree\tutorials\common\glfw\Win32\vc14下找到glfw3.lib
因为我们新建的是win32项目,所以这里的库文件也要是32位项目下编译的lib文件。
【5】 配置项目属性
右键项目,打开vc++目录–包含目录,输入
include
include\external\glfw\include
include\external\glad\include
include\external\eigen
- 1
- 2
- 3
- 4
打开vc++目录–库目录
输入
lib
- 1
打开链接器-输入-附加依赖项
opengl32.lib
glfw3.lib
- 1
- 2
【6】加载模型文件
我们将需要的3D模型都加载进来
将libigl库下的libigl–tutorial–data 文件夹复制进项目
将tutorial_shared_path.h中的文件路径替换为"data"
#ifndef tutorial_shared_path_h_included
#define tutorial_shared_path_h_included
#ifndef TUTORIAL_SHARED_PATH
#define TUTORIAL_SHARED_PATH “data”
#endif
#endif
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
代码分析
readOFF(TUTORIAL_SHARED_PATH "/bunny.off", V, F);
- 1
这个函数是加载buny模型,并且把顶点存进矩阵V中,面片的索引存进F中。
igl::opengl::glfw::Viewer viewer;
- 1
viewer类头文件是libigl封装的接口,渲染模型。
viewer.data().set_mesh(V, F);
- 1
set_mesh()将顶点和面加载后,计算模型的面法矢,设置顶点的统一颜色(通过光照的方式),
并且还生成了贴图。
viewer.launch();
- 1
launch()函数首先是初始化,launch_init(resizable,fullscreen,name,windowWidth,windowHeight);
设置了opengl的版本号3.3,
通过glfwCreateWindow创建了窗口。
这个函数里还初始化了opengl的扩展。