资源简介
借鉴了一位博主的林中小屋,运用opengl函数画的一个小屋(包含源代码),visio studio运行,本人运行没问题,如果下载之后有问题可以私戳我

代码片段和文件信息
#include
#include
#include
#include
#include
float flag=1.0;
GLfloat theta=3.1415*0.2fai=3.1415*0.7;
GLfloat P0X=120.0*sin(theta)*sin(fai)P0Y=120*cos(fai)P0Z=120.0*cos(theta)*sin(fai);
int windowwwindowh; //窗口的宽和高
static GLuint texName; //纹理组的名称 //依序为月亮、侧面、地面
GLuint drawwalllistsunlistrooflisttreeliststoolliststartList; //贴环境纹理的显示列表
GLUquadricObj *qobj;
//------------------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------------------
void readimage(char* filenameBYTE* imagedata) //所读图片均为24位bmp且宽度补齐至四字节边界
{
BITMAPFILEHEADER bf; //文件头
BITMAPINFOHEADER bi; //信息头
int m_ImageWidth; //图象宽度
int m_ImageHeight; //图象高度
FILE *fp1; //文件指针,fp1为源文件
//打开文件,到文件指针
if((fp1=fopen(filename“rb“))==NULL)
{
MessageBox(NULL“文件打开错误““warning“MB_OK);
}
fread((LPSTR)&bfsizeof(BITMAPFILEHEADER)1fp1); //读取文件头,读取以后文件指针在文件头末尾(即信息头)
fread((LPSTR)&bisizeof(BITMAPINFOHEADER)1fp1); //读取信息头
m_ImageWidth=bi.biWidth; //给图象宽度赋值
m_ImageHeight=bi.biHeight; //给图象高度赋值
fread(imagedatam_ImageHeight*m_ImageWidth*31fp1); //读取图象数据
fclose(fp1);
}
//----------------由于读进来的图记录顺序为BGR,改为RGB---------------------------------------------------------------------------
void adjustimage(BYTE* imagedataint wint h)
{
BYTE temp;
for(int i=0;i {
temp=imagedata[i*3];
imagedata[i*3]=imagedata[i*3+2];
imagedata[i*3+2]=temp;
}
}
//------------------------设置纹理----------------------------------------------------------------------------------------
void loadtexture()
{
glGenTextures(5 &texName); //创建并绑定纹理对象
glBindTexture(GL_TEXTURE_2D texName);
{
BYTE imagesun[256][256][3]; //太阳的纹理
readimage(“sun.bmp“&imagesun[0][0][0]);
adjustimage(&imagesun[0][0][0]256256);
glTexParameteri(GL_TEXTURE_2D GL_TEXTURE_WRAP_S GL_REPEAT); //设置wrap参数方式如下
glTexParameteri(GL_TEXTURE_2D GL_TEXTURE_WRAP_T GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D GL_TEXTURE_MAG_FILTERGL_NEAREST); //为纹理的放大和缩小滤波设置相关的控制选项
glTexParameteri(GL_TEXTURE_2D GL_TEXTURE_MIN_FILTERGL_NEAREST); //其中GL_LINEAR对应线性滤波,GL_NEAREST对应最近邻滤波方式
glTexImage2D(GL_TEXTURE_2D 0 GL_RGB 256256 0 GL_RGB GL_UNSIGNED_BYTE imagesun);// 定义纹理图像
}
{
BYTE imagesky[256][64][3];
readimage(“starlow.bmp“&imagesky[0][0][0]);
adjustimage(&imagesky[0][0][0]25664);
glBindText
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 221261 2020-05-03 11:37 程序\Debug\main.exe
文件 283608 2020-05-03 11:37 程序\Debug\main.ilk
文件 42385 2020-05-03 11:37 程序\Debug\main.obj
文件 3707280 2020-05-02 17:27 程序\Debug\main.pch
文件 533504 2020-05-03 00:22 程序\Debug\main.pdb
文件 148480 2020-05-03 12:00 程序\Debug\vc60.idb
文件 77824 2020-05-03 00:22 程序\Debug\vc60.pdb
文件 196662 2020-04-30 23:45 程序\floor.bmp
文件 15729 2020-05-03 00:22 程序\main.cpp
文件 3377 2020-05-03 11:57 程序\main.dsp
文件 516 2020-05-03 12:05 程序\main.dsw
文件 41984 2020-05-03 12:05 程序\main.ncb
文件 48640 2020-05-03 12:05 程序\main.opt
文件 242 2020-05-03 12:00 程序\main.plg
文件 196662 2020-04-30 23:52 程序\roof.bmp
文件 49206 2020-04-30 23:31 程序\starlow.bmp
文件 196662 2020-04-30 22:49 程序\sun.bmp
目录 0 2020-05-04 00:51 程序\Debug
目录 0 2020-05-04 00:51 程序
----------- --------- ---------- ----- ----
5764022 19
- 上一篇:数据库课程设计学生选课管理系统
- 下一篇:layui模板资源.rar
相关资源
- Concurrency in Go Tools and Techniques for Dev
- 《Windows PowerShell 4.0 for .NET Developers》
- Beginning STM32: Developing with FreeRTOS libo
- CANopen使用手册_埃斯顿
- OpenGL参考手册
-
AN_BLE-SDKDH-C1_Teli
nk BLE SDK DeveloperHan - 引力波是玻色-爱因斯坦凝聚物暗物质
- Qt Creator opengl实现四元数鼠标控制轨迹
- 使用OpenFileDialog打开文件对话框.rar
- Openssl给文件传输加密
- OpenGL文档,api大全,可直接查询函数
- opengl轮廓字体源代码
- WinForm属性编辑 propertyGrid示例 仿wind
- MFC读三维模型obj文件
- 基于OpenCV的数字识别468815
- 使用opencv去掉二值化图像中黑色面积
- openssl 简介(中文)
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- FPGA开发-ChipScope教程
- 基于OPENGL的光线跟踪源代码368758
- VC 实现三维旋转(源码)
- 自编用openGL实现3D分形树,分形山
- OpenGL球形贴图自旋程序
- OpenGL导入贴图的Texture类
- 计算机图形学(openGL)代码
- 用OpenGL开发的机械臂运动仿真程序(
- OpenGL-3D坦克模拟
- opencv环境配置
- 探索LHC耦合中的CP振动效应
评论
共有 条评论