• 大小: 1.5MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-10
  • 语言: 其他
  • 标签: opengl  

资源简介

借鉴了一位博主的林中小屋,运用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


评论

共有 条评论