资源简介
自己编写的OpenGL环境下的贴图方法来画树,只用了一点点基本的贴图方式,重点在于配置好的OpenGL环境.

代码片段和文件信息
// basic.cpp : 定义应用程序的入口点。
//
#include “stdafx.h“
HDC hDC=NULL;
HGLRC hRC=NULL;
HWND hWnd=NULL;
HINSTANCE hInstance;
bool keys[256];
bool active=TRUE;
bool fullscreen=TRUE;
GLfloat xrot;
GLfloat yrot;
GLfloat zrot;
GLuint texture[1];
LRESULT CALLBACK WndProc(HWND UINT WPARAM LPARAM);
AUX_RGBImageRec *LoadBMP(char *Filename)
{
FILE *File=NULL;
if (!Filename)
{
return NULL;
}
File=fopen(Filename“r“);
if (File)
{
fclose(File);
return auxDIBImageLoad(Filename);
}
return NULL;
}
int LoadGLTextures()
{
int Status=FALSE;
AUX_RGBImageRec *TextureImage[1];
memset(TextureImage0sizeof(void *)*1);
if (TextureImage[0]=LoadBMP(“Data/example.bmp“))
{
Status=TRUE;
glGenTextures(1 &texture[0]);
glBindTexture(GL_TEXTURE_2D texture[0]);
glTexImage2D(GL_TEXTURE_2D 0 3 TextureImage[0]->sizeX TextureImage[0]->sizeY 0 GL_RGB GL_UNSIGNED_BYTE TextureImage[0]->data);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MIN_FILTERGL_LINEAR);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MAG_FILTERGL_LINEAR);
}
if (TextureImage[0])
{
if (TextureImage[0]->data)
{
free(TextureImage[0]->data);
}
free(TextureImage[0]);
}
return Status;
}
GLvoid ReSizeGLScene(GLsizei width GLsizei height)
{
if (height==0)
{
height=1;
}
glViewport(00widthheight);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f(GLfloat)width/(GLfloat)height0.1f100.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
int InitGL(GLvoid)
{
if (!LoadGLTextures())
{
return FALSE;
}
glEnable(GL_TEXTURE_2D);
glShadeModel(GL_SMOOTH);
glClearColor(0.0f 0.0f 0.0f 0.5f);
glClearDepth(1.0f);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
glHint(GL_PERSPECTIVE_CORRECTION_HINT GL_NICEST);
return TRUE;
}
int DrawGLScene(GLvoid) // 开始画图
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(0.0f0.0f-5.0f);
glRotatef(xrot1.0f0.0f0.0f);
glRotatef(yrot0.0f1.0f0.0f);
glRotatef(zrot0.0f0.0f1.0f);
glBindTexture(GL_TEXTURE_2D texture[0]);
glBegin(GL_POLYGON);
glTexCoord2f(0.0f 0.0f); glVertex3f(-1.0f -1.0f 0.0f);
glTexCoord2f(1.0f 0.0f); glVertex3f( 1.0f -1.0f 0.0f);
glTexCoord2f(1.0f 1.0f); glVertex3f( 1.0f 1.0f 0.0f);
glTexCoord2f(0.0f 1.0f); glVertex3f(-1.0f 1.0f 0.0f);
glEnd();
// xrot+=0.3f;
yrot+=0.2f;
// zrot+=0.4f;
return TRUE;
}
GLvoid KillGLWindow(GLvoid)
{
if (fullscreen)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 10243 2009-06-14 03:44 basic\basic\basic.cpp
文件 39 2009-05-12 13:58 basic\basic\basic.h
....... 23558 2003-07-24 09:52 basic\basic\basic.ico
文件 3347 2009-05-12 13:58 basic\basic\basic.rc
文件 4611 2009-05-12 14:06 basic\basic\basic.vcproj
文件 1409 2009-07-15 17:09 basic\basic\basic.vcproj.Roc-PC.Roc.user
文件 196662 2004-09-01 10:26 basic\basic\data\example.BMP
文件 196664 2009-06-13 16:21 basic\basic\data\example2.bmp
文件 663 2009-05-12 14:03 basic\basic\Debug\basic.exe.em
文件 728 2009-05-12 14:03 basic\basic\Debug\basic.exe.em
文件 621 2009-06-14 03:44 basic\basic\Debug\basic.exe.intermediate.manifest
文件 30753 2009-06-14 03:44 basic\basic\Debug\basic.obj
文件 8257536 2009-06-06 17:18 basic\basic\Debug\basic.pch
文件 48248 2009-05-12 14:02 basic\basic\Debug\basic.res
文件 6134 2009-06-14 03:44 basic\basic\Debug\BuildLog.htm
文件 63 2009-06-14 03:44 basic\basic\Debug\mt.dep
文件 113009 2009-06-06 17:18 basic\basic\Debug\stdafx.obj
文件 248832 2009-06-14 03:44 basic\basic\Debug\vc90.idb
文件 389120 2009-06-14 03:44 basic\basic\Debug\vc90.pdb
文件 1929 2009-05-12 13:58 basic\basic\ReadMe.txt
文件 712 2009-05-12 13:58 basic\basic\Resource.h
....... 23558 2003-07-24 09:52 basic\basic\small.ico
文件 210 2009-05-12 13:58 basic\basic\stdafx.cpp
文件 681 2009-06-06 17:18 basic\basic\stdafx.h
文件 1026 2009-05-12 13:58 basic\basic\targetver.h
文件 7908352 2009-07-15 17:09 basic\basic.ncb
文件 881 2009-05-12 13:58 basic\basic.sln
..A..H. 12800 2009-07-15 17:09 basic\basic.suo
文件 116224 2009-06-14 03:44 basic\Debug\basic.exe
文件 598600 2009-06-14 03:44 basic\Debug\basic.ilk
............此处省略9个文件信息
- 上一篇:在线教学系统网站开发源代码+视屏讲解
- 下一篇:英语词汇的奥秘 pdf版+word版
相关资源
- OpenGL参考手册
- Qt Creator opengl实现四元数鼠标控制轨迹
- [免费]MFC制作目录树
- 二叉树基本操作源代码
- OpenGL文档,api大全,可直接查询函数
- opengl轮廓字体源代码
- MFC读三维模型obj文件
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- B-树 C 实现 基本功能
- 基于OPENGL的光线跟踪源代码368758
- 基于MFC的文件目录树的对话框实现代
- VC 实现三维旋转(源码)
- 组态王6.53树形控件实例
- 自编用openGL实现3D分形树,分形山
- prim和kruskal算法求最小生成树262629
- OpenGL球形贴图自旋程序
- OpenGL导入贴图的Texture类
- 计算机图形学(openGL)代码
- PRIM算法,求最小生成树
- 用OpenGL开发的机械臂运动仿真程序(
- OpenGL-3D坦克模拟
- 树状导航菜单的制作
- OPENGL实现世界上最小的3D游戏
- VS2012OpenGL配置所需要的全部libdllh文件
- 易语言树型框扩充源码
- 易语言树型框刷新收缩源码
- 易语言树型框加载目录源码
- 易语言简单树型框分割文本源码
- 易语言大强学易之树型框与MDB数据库
评论
共有 条评论