在Duilib中使用OpenGL导入3DS模型的说明见另一篇文章:https://blog.youkuaiyun.com/u012293114/article/details/103988648
0、实现思路
做了个简单的MFC界面,导入了DC10.3DS模型,控制模型自动缩放和旋转,效果如下所示,本篇文章将针对第4步进行详细记录,文章最后附有完整代码和源文件。
1、新建MFC应用程序
【应用程序类型】选择【基于对话框】,其他选项均默认,完成创建。
如出现以下提示,点击{编辑代码】,打开.rc文件
找到【DESIGNINFO】这段代码,注释掉或删除,然后保存
编译运行,如下图所示,MFC窗口建立完毕
在【资源视图】中找到对话框,选中【TODO:在此放置对话框控件】,删除,保存(需要关掉所有.cpp文件才可以打开资源视图),如下图所示
2、配置OpenGL文件
(1)将opengl所需要的文件复制到项目文件夹下,共三个文件夹:bin(存放.dll文件)、include(存放.h文件)、lib(存放.lib文件)
- 【bin】文件夹包含:【glut.dll】和【glut32.dll】
- 【include】文件夹内新建【GL】文件夹,【GL】文件夹内包含:【GLAUX.H】和【glut.h】
- 【lib】文件夹包括:【GLAUX.LIB】、【glut.lib】和【glut32.lib】
(注:GLU.h和GL.h文件在系统内,不需要额外添加处理,如系统找不到,那么GL的lib、dll、h文件也同glut相关文件一样处理)
(2)配置环境。在项目右击-》【属性】-》【配置属性】-》【VC++目录】-》编辑【包含目录】-》添加【$(solutiondir)include】-》确定-》编辑【库目录】-》添加【$(solutiondir)lib】-》确定-》【确定】
(注:确保所配置环境的属性与当前运行环境一致,如下图所示)
(3) 在【stdafx.h】中加入OpenGL头文件
//OpenGL
#include <windows.h>
#include <GL\gl.h>
#include <GL\glu.h>
#include <GL/glut.h>
#include <GL/GLAUX.H>
配置完成,编译运行成功
3、将模型.cpp文件导入MFC项目
(1)在【源文件】右键,使用【类向导】添加新类,如下图所示
类名设为C3DSModel,继承CWnd基类,完成,在C3DSModel.h和C3DSModel.cpp中添加【#include “stdafx.h”】头文件
(2)打开DC10.cpp文件,将除函数外的结构体、数组等复制到C3DSModel.h头文件中,如下图所示
(3)将其余函数复制到C3DSModel.cpp文件中,并在函数名前加入【C3DSModel::】,如下图所示
(4)鼠标放在在红色下划线函数-》【显示可能的修补程序】-》【创建】-》保存,为所有未声明函数执行此操作,可以看见C3DSModel.h文件中自动创建了以下三个声明
编译通过,运行成功