OpenGL踩坑(1)

1. 环境搭建

Windows10  + vs 2012
1. 下载GLUT包
 	地址 :http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
 	解压:得到 glut.dll glut.h glut.lib glut32.dll glut32.lib 这几个文件
 2.   将 glut.h 放到  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.33.31629\include\GL  这个目录
      将 glut.lib 个 glut32.lib 放到 C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.33.31629\lib\x86
2. 将glut.dll 和 glut32.dll 放在  C:\Windows\System32
3. 新建工程  测试 vs 运行 工程一定要选择 x86
4.  若还报错 将 将glut.dll 和 glut32.dll 放在  C:\Windows\SysWOW64
#include <GL/glut.h>
void myDisplay(void)
{
	glClear(GL_COLOR_BUFFER_BIT);
	glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
	glFlush();
}
int main(int argc, char *argv[])
{
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
	glutInitWindowPosition(100, 100);
	glutInitWindowSize(400, 400);
	glutCreateWindow("第一个 OpenGL 程序");
	glutDisplayFunc(&myDisplay);
	glutMainLoop();
	return 0;
}

2. 程序中出现的 静态库问题

// 在程序中 出现的 依赖库
#pragma comment (lib, "opengl32.lib")
#pragma comment (lib, "glaux.lib")
// 则将对应的 依赖静态库 放在 C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.33.31629\lib\x86 位置

3. LINK 问题

//LNK2019	无法解析的外部符号 _sscanf,函数 _GetRegistrySysColors@8 中引用了该符号	my_opengl_demo03	C:\my_opengl_project\my_opengl_demo03\glaux.lib(tk.obj)	
// 解决办法: 项目属性 -> 链接器 -> 输入 -> 附加依赖项中添加依赖项  legacy_stdio_definitions.lib

// LNK2019	无法解析的外部符号 _gluPerspective@32,函数 _myDisplay 中引用了该符号	my_opengl_demo03	C:\my_opengl_project\my_opengl_demo03\my_opengl.obj	1
// 解决办法: 项目属性 -> 链接器 -> 输入 -> 附加依赖项中添加依赖项  glu32.lib

// 错误	LNK2019	无法解析的外部符号 _glutSolidSphere,函数 _myDisplay 中引用了该符号	my_opengl_demo03	C:\my_opengl_project\my_opengl_demo03\my_opengl.obj	1	
// 解决办法:  添加头文件 #include <GL/glut.h>

4. 案例 画太阳不显示

// 注释掉  glEnable(GL_DEPTH_TEST); 即可显示
void myDisplay(void)
{
	glEnable(GL_DEPTH_TEST);
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();


	gluPerspective(75, 1, 1, 400000000);
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
	gluLookAt(0, -200000000, 200000000, 0, 0, 0, 0, 0, 1);
	// 绘制红色的“太阳”
	glColor3f(1.0f, 0.0f, 0.0f);
	glutSolidSphere(69600000, 20, 20);
	glutSolidSphere(696, 20, 20);
	// 绘制蓝色的“地球”
	glColor3f(0.0f, 0.0f, 1.0f);
	glRotatef(day / 360.0 * 360.0, 0.0f, 0.0f, -1.0f);
	glTranslatef(150000000, 0.0f, 0.0f);
	glutSolidSphere(15945000, 20, 20);
	// 绘制黄色的“月亮”
	glColor3f(1.0f, 1.0f, 0.0f);
	glRotatef(day / 30.0 * 360.0 - day / 360.0 * 360.0, 0.0f, 0.0f, -1.0f);
	glTranslatef(38000000, 0.0f, 0.0f);
	glutSolidSphere(4345000, 20, 20);
	glFlush();

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值