1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 使用opengl绘制太阳 地球 月球 有纹理 有鼠标功能 有亮光

使用opengl绘制太阳 地球 月球 有纹理 有鼠标功能 有亮光

时间:2020-04-26 19:06:10

相关推荐

使用opengl绘制太阳 地球 月球 有纹理 有鼠标功能 有亮光

源码下载链接 /download/mr0cheng/10831380

1.实现效果图如下

2. 环境配置

windows7 64位vs使用vs自带的NuGet工具,下载opengl库Install-Package nupengl.core

3. 核心功能

3.1 太阳、地球、月球纹理实现

准备bmp文件构建opengl可以解析的纹理数据结构,如下:

typedef struct {int width;//纹理宽度int height;//纹理高度unsigned int texID;//纹理对象 IDunsigned char * data;//实际纹理数据}texture;

使用Windows自带的BITMAPFILEHEADER功能,载入bmp文件,填充数据结构。glBindTexture(GL_TEXTURE_2D, sun->texID);绑定纹理到对应的物体上。

3.2 设置光源

设置光源属性

GLfloat whiteLight[] = { 0.2f, 0.2f, 0.2f, 1.0f };GLfloat lightPos[] = { 0.0f, 0.0f, 0.0f, 2.0f };

给太阳开启光源,并设置光源的属性

glEnable(GL_LIGHTING);glLightfv(GL_LIGHT0, GL_POSITION, lightPos);

3.3 鼠标左键拖拽和滚轮缩放

实现比较简单,主要是捕捉鼠标事件,改变缩放因子和球体位置。具体可以看下图,三个球明显小了,在空间上的位置,也变化了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。