资源简介
OPENGL三维场景搭建、漫游、交互。包括凹凸地形,键盘交互、鼠标交互、树木,火焰等
代码片段和文件信息
#include “dynamic.h“
DynamicTexture::DynamicTexture()
{
for (int i = 0; i < FIRE_NUM; i++) {
firetextureNum[i] = i;
}
string fire1 = “img/fire/51_064_00000.tga“;
string fire2 = “img/fire/51_064_00001.tga“;
string fire3 = “img/fire/51_064_00002.tga“;
string fire4 = “img/fire/51_064_00003.tga“;
string fire5 = “img/fire/51_064_00004.tga“;
string fire6 = “img/fire/51_064_00005.tga“;
string fire7 = “img/fire/51_064_00006.tga“;
string fire8 = “img/fire/51_064_00007.tga“;
firepath.push_back(fire1);
firepath.push_back(fire2);
firepath.push_back(fire3);
firepath.push_back(fire4);
firepath.push_back(fire5);
firepath.push_back(fire6);
firepath.push_back(fire7);
firepath.push_back(fire8);
}
DynamicTexture::~DynamicTexture()
{
}
void DynamicTexture::loadTexImages() {
glGenTextures(FIRE_NUM firetextureNum);
for (int i = 0; i < firepath.size(); i++) { //火焰
GLbyte *pBits = NULL;
int nWidth nHeight nComponents;
GLenum eFormat;
const char *p = firepath[i].c_str();
//pBits = gltReadBMPBits(p &nWidth &nHeight);
pBits = gltReadTGABits(p &nWidth &nHeight &nComponents &eFormat);
if (pBits == NULL)
return;
glBindTexture(GL_TEXTURE_2D firetextureNum[i]);
gluBuild2DMipmaps(GL_TEXTURE_2D nComponents nWidth nHeight eFormat GL_UNSIGNED_BYTE pBits);
//gluBuild2DMipmaps(GL_TEXTURE_2D GL_RGB nWidth nHeight GL_RGB GL_UNSIGNED_BYTE pBits);
free(pBits);
}
}
void DynamicTexture::drawFire(int kfloat n[]) {
glEnable(GL_TEXTURE_2D);
glTexEnvi(GL_TEXTURE_ENV GL_TEXTURE_ENV_MODE GL_COMBINE);
glTexEnvi(GL_TEXTURE_ENV GL_COMBINE_RGB GL_INTERPOLATE);
glTexEnvi(GL_TEXTURE_ENV GL_SOURCE0_RGB GL_TEXTURE);
glTexEnvi(GL_TEXTURE_ENV GL_OPERAND0_RGB GL_SRC_COLOR);
glTexEnvi(GL_TEXTURE_ENV GL_SOURCE1_RGB GL_PREVIOUS);
glTexEnvi(GL_TEXTURE_ENV GL_OPERAND1_RGB GL_SRC_COLOR);
glTexEnvi(GL_TEXTURE_ENV GL_SOURCE2_RGB GL_CONSTANT);
glTexEnvi(GL_TEXTURE_ENV GL_OPERAND2_RGB GL_SRC_COLOR);
glTexEnvf(GL_TEXTURE_ENV GL_TEXTURE_ENV_MODE GL_REPLACE);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA);
glBindTexture(GL_TEXTURE_2D firetextureNum[k]);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glBegin(GL_QUADS);
glTexCoord2f(1.0f 1.0f); glVertex3f(-5 * n[0] -1.0f -5.0f * n[1]);
glTexCoord2f(0.0f 1.0f); glVertex3f(5 * n[0] -1.0f 5.0f * n[1]);
glTexCoord2f(0.0f 0.0f); glVertex3f(5 * n[0] 10 5.0f * n[1]);
glTexCoord2f(1.0f 0.0f); glVertex3f(-5 * n[0] 10 -5.0f * n[1]);
glEnd();
glPopMatrix();
glDisable(GL_TEXTURE_2D);
}
/*************************************************/
#pragma pack(1)
struct RGB {
GLbyte blue;
GLbyte green;
GLbyte red;
GLbyte alpha;
};
struct BMPInfoHeader {
GLuint size;
GLuint width;
GLuint height;
GLushort planes;
GLushort bits;
GLuint compression;
GLuint imageSize;
GLuint xScale;
GLuint yScale;
GLuint colors;
GLuint impor
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-06-23 10:57 图形实验二\
目录 0 2017-06-23 10:57 图形实验二\图形实验二\
文件 1327 2017-05-20 16:02 图形实验二\图形实验二.sln
文件 9097 2017-06-04 17:51 图形实验二\图形实验二\dynamic.cpp
文件 481 2017-05-28 15:45 图形实验二\图形实验二\dynamic.h
目录 0 2017-06-23 10:57 图形实验二\图形实验二\img\
目录 0 2017-06-23 10:57 图形实验二\图形实验二\img\fire\
文件 373686 2017-05-28 12:10 图形实验二\图形实验二\img\fire\00001.bmp
文件 373686 2017-05-28 12:11 图形实验二\图形实验二\img\fire\00002.bmp
文件 373686 2017-05-28 12:12 图形实验二\图形实验二\img\fire\00003.bmp
文件 373686 2017-05-28 12:14 图形实验二\图形实验二\img\fire\00004.bmp
文件 373686 2017-05-28 12:14 图形实验二\图形实验二\img\fire\00005.bmp
文件 373686 2017-05-28 12:16 图形实验二\图形实验二\img\fire\00006.bmp
文件 373686 2017-05-28 12:16 图形实验二\图形实验二\img\fire\00007.bmp
文件 373686 2017-05-28 12:16 图形实验二\图形实验二\img\fire\00008.bmp
文件 1382444 2017-05-28 15:37 图形实验二\图形实验二\img\fire\51_064_00000.tga
文件 1382444 2017-05-28 15:38 图形实验二\图形实验二\img\fire\51_064_00001.tga
文件 1382444 2017-05-28 15:34 图形实验二\图形实验二\img\fire\51_064_00002.tga
文件 1382444 2017-05-28 15:38 图形实验二\图形实验二\img\fire\51_064_00003.tga
文件 1382444 2017-05-28 15:39 图形实验二\图形实验二\img\fire\51_064_00004.tga
文件 1382444 2017-05-28 15:39 图形实验二\图形实验二\img\fire\51_064_00005.tga
文件 1382444 2017-05-28 15:39 图形实验二\图形实验二\img\fire\51_064_00006.tga
文件 1382444 2017-05-28 15:40 图形实验二\图形实验二\img\fire\51_064_00007.tga
目录 0 2017-06-23 10:57 图形实验二\图形实验二\img\skybox\
文件 98358 2017-05-24 20:32 图形实验二\图形实验二\img\skybox\1.bmp
文件 98358 2017-05-24 20:32 图形实验二\图形实验二\img\skybox\2.bmp
文件 98358 2017-05-24 20:33 图形实验二\图形实验二\img\skybox\3.bmp
文件 98358 2017-05-24 20:33 图形实验二\图形实验二\img\skybox\4.bmp
文件 196662 2017-05-24 20:33 图形实验二\图形实验二\img\skybox\5.bmp
文件 786486 2017-05-25 11:03 图形实验二\图形实验二\img\skybox\land.bmp
文件 3126 2001-01-07 02:06 图形实验二\图形实验二\img\skybox\Terrain1.bmp
............此处省略23个文件信息
相关资源
- 基于体渲染的OpenGL烟雾模拟程序
- openGL下雨现象模拟
- OpenGL三维图形程序设计(Windows版)
- OpenGL实现鼠标旋转缩放平移操作
- Instagram Filters 破解了Instagram App的几十
- opengl 3d obj模型加载,贴图
- 实时计算机图形学 第二版英文版pdf格
- OpenGL实践三:水面涟漪的逼真绘制毕
- Opengl实现的Ray Casting 光线投射算法
- 天空盒(opengl)
- opengl图形学实验七 不同的光照渲染
- OpenGL-Nehe完整中文教程和全部源代码
- 扫描线填充算法的OpenGL实现
- OpenGL soil库与布置方法,位置
- 基于opengl的杯子模型
- opengl 红宝书 计算机图形学红宝书 图
- 一套基于QT、GDAL、OpenGL的遥感影像显
- OpenGL 画荷花
- OpenGL安装包+安装指导Windows平台
- freeglut,包括.dll、.h和.lib文件,完美
- OpenGL的虚拟校园漫游系统的设计与实
- 基于OpenGL的Loop网格细分
- OPenGL地层时适渲染LOD
- OpenGL使用画家算法实现隐藏面的消除
- OpenGL实现3D小车
- 基于VS2010的OpenGL 3D场景
- 使用OpenGL实现飞机动画
- OpenGL圣诞树
- 计算机图形学OpenGL——地月系
- opengl立体树
评论
共有 条评论