先挂参考链接 https://blog.csdn.net/zgjorson/article/details/9132559
博主大体上是参照上面博客的,另外加了一些自己实现了功能,博客里面贴的有代码。
和参考博客有点儿不一样,上面博客使用的vtk5.2,博主使用的是vtk7(比起原博客注释了两行代码),另外博主添加了相机视角设置,OpenGL绘图也有区别。
a blog driven by interest~
先挂参考链接 https://blog.csdn.net/zgjorson/article/details/9132559
博主大体上是参照上面博客的,另外加了一些自己实现了功能,博客里面贴的有代码。
和参考博客有点儿不一样,上面博客使用的vtk5.2,博主使用的是vtk7(比起原博客注释了两行代码),另外博主添加了相机视角设置,OpenGL绘图也有区别。
老外的教程果然还是非常赞的,强烈推荐原版,这篇博客简单介绍一下步骤:
1.新建MFC工程
2.添加Picture Control控件
3.添加一个OpenGL控件类
4.在MFC中使用OpenGL控件
获取博主编译的测试工程(使用VS2013 X64平台,你还需要另外配置OpenGL相关环境),运行效果如左图所示,这个Demo还可以接受鼠标的控制,对模型进行操作。如果你需要多个OpenGL窗口,再实例化这个类,可以很轻易地实现多个窗口的绘制。这里就不翻译老外网站上的教程了,在上面给出了框架搭建的链接,这里就直接介绍该OpenGL类的使用方法吧。
这里,我们首先释出编译好的读取wrl文件的程序,如左图所示,是打开的一个CASIA-3D-Face数据库的三维模型文件,使用Opengl进行了绘制。这个程序还提供了一些快捷键,使我们可以方便的移动模型和视角,如ASDW等。
这里提供了一个编译好的demo的下载链接,请注意,程序必须运行在64位的Windows上,你需要打开prototxt文件,修改你需要打开的wrl文件的目录,由于使用静态库进行编译,你不需要相关环境(Opengl protobuf glog等),但是你可能需要安装VC2013Runtime X64。
当然,你也可以使用此博客中的代码,编译其它版本的程序,下面的内容会默认你已经了解了本博客前两节的内容,对wrl文件的格式和本文读取wrl文件的方式有所了解。在本程序的icp类中包含了OpenGL的相关内容,参考了 LeheOpenGL 的代码设计,如果你对OpenGL还不太了解,推荐经典入门教程:Nehe的OpenGL教程。不多说了,开始吧。