基于opengl的粒子系统


基于opengl做的一个粒子系统作业,包括雪景,花瓣,流星和粒子字母,代码清晰,适合初学者学习. ps:dlut的就不要下了
资源截图
代码片段和文件信息
#include “particle.h“
#include “word.h“
#include “Tree.h“
#include “Snow.h“
#include “Star.h“
GLuint texture[15];//用于装纹理名称的数组
float angle = 0;
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[15];//用于装位图资源的数组 

memset(TextureImage 0 sizeof(void *) * 2);//初始化指针数组

char *pictures[] = {// 创建一个位图名称数组
“Debug/wall.bmp“
“Debug/snowball.bmp“
“Debug/ground.bmp“
“Debug/tree.bmp“
“Debug/flower.bmp“
“Debug/flower1.bmp“
“Debug/flower2.bmp“
“Debug/flower3.bmp“
“Debug/flower4.bmp“
“Debug/sky.bmp“
“Debug/wall_2.bmp“
“Debug/snow.bmp“
“Debug/tree_2.bmp“
“Debug/stone.bmp“
“Debug/moon.bmp“
};

for (int i = 0; i < 15; i++)
{
if (TextureImage[i] = LoadBMP(pictures[i]))// 加载位图i成功,修改状态标志变量Status为TRUE
{
Status = TRUE;

glGenTextures(1 &texture[i]);     // 为第i个位图创建纹理
glBindTexture(GL_TEXTURE_2D texture[i]);// 将生成的纹理的名称绑定到指定的纹理上
glTexImage2D(GL_TEXTURE_2D 0 3 TextureImage[i]->sizeX TextureImage[i]->sizeY 0 GL_RGB GL_UNSIGNED_BYTE TextureImage[i]->data);
glTexParameteri(GL_TEXTURE_2D GL_TEXTURE_MIN_FILTER GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D GL_TEXTURE_MAG_FILTER GL_LINEAR);
}

if (TextureImage[i])         // 释放位图数组占用的内存空间
{
if (TextureImage[i]->data)
{
free(TextureImage[i]->data);
}

free(TextureImage[i]);
}
}
return Status;
}
void UpdateDown()
{
x += vx;
y += vy;
z += vz;

/** 更新速度 */
vy += ay;
}

void Tree_DrawGround()
{
glPushMatrix();
glTranslatef(0.0f 0.0f -6.0f);
glRotatef(0 0.0f 1.0f 0.0f);

/** 指定纹理 */
glBindTexture(GL_TEXTURE_2D texture[2]);
glColor4ub(255 255 255 255);
glNormal3f(0.0f 1.0f 0.0f);
glBegin(GL_QUADS);
glTexCoord2f(0.0f 0.0f); glVertex3f(-5 -1.0f 5);
glTexCoord2f(1.0f 0.0f); glVertex3f(5 -1.0f 5);
glTexCoord2f(1.0f 1.0f); glVertex3f(5 -1.0f -5);
glTexCoord2f(0.0f 1.0f); glVertex3f(-5 -1.0f -5);
glEnd();

//树的绘制
glBindTexture(GL_TEXTURE_2D texture[3]);
glColor4ub(255 255 255 255);
glNormal3f(0.0f 1.0f 0.0f);
glBegin(GL_QUADS);
glTexCoord2f(0.0f 0.0f); glVertex3f(-2 -1.0 -1);
glTexCoord2f(1.0f 0.0f); glVertex3f(2 -1.0 -1);
glTexCoord2f(1.0f 1.0f); glVertex3f(2 2.15f -1);
glTexCoord2f(0.0f 1.0f); glVertex3f(-2 2.15f -1);
glEnd();

glBindTexture(GL_TEXTURE_2D texture[3]);
glColor4ub(255 255 255 255);
glNormal3f(0.0f 1.0f 0.0f);
glBegin(GL_QUADS);
glTexCoord2f(0.0f 0.0f); glVertex3f(1 -1.0 1);
glTexCoord2f(1.0f 0.0f); glVertex3f(4 -1.0 1);
glTexCoord2f(1.0f 1.0f); glVertex3f(4 2.15f 1);
glTexCoord2f(0.0f 1.0f); glVertex3f(1 2.15f 1);
glEnd();

glBindTexture(GL_TEXTURE_2D texture[3

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    ..A..H.     77312  2018-05-05 14:48  大作业——最终修订版ConsoleApplication1.vsConsoleApplication1v14.suo

     文件       7905  2018-05-05 14:05  大作业——最终修订版ConsoleApplication1ConsoleApplication1ConsoleApplication1.vcxproj

     文件       1854  2018-05-05 14:05  大作业——最终修订版ConsoleApplication1ConsoleApplication1ConsoleApplication1.vcxproj.filters

     文件       4734  2018-05-05 14:47  大作业——最终修订版ConsoleApplication1ConsoleApplication1DebugConsoleA.E4FB0AA3.tlogCL.command.1.tlog

     文件     199964  2018-05-05 14:47  大作业——最终修订版ConsoleApplication1ConsoleApplication1DebugConsoleA.E4FB0AA3.tlogCL.read.1.tlog

     文件       4426  2018-05-05 14:47  大作业——最终修订版ConsoleApplication1ConsoleApplication1DebugConsoleA.E4FB0AA3.tlogCL.write.1.tlog

     文件        237  2018-05-05 14:47  大作业——最终修订版ConsoleApplication1ConsoleApplication1DebugConsoleA.E4FB0AA3.tlogConsoleApplication1.lastbuildstate

     文件       2502  2018-05-05 14:47  大作业——最终修订版ConsoleApplication1ConsoleApplication1DebugConsoleA.E4FB0AA3.tloglink.command.1.tlog

     文件       6046  2018-05-05 14:47  大作业——最终修订版ConsoleApplication1ConsoleApplication1DebugConsoleA.E4FB0AA3.tloglink.read.1.tlog

     文件       1538  2018-05-05 14:47  大作业——最终修订版ConsoleApplication1ConsoleApplication1DebugConsoleA.E4FB0AA3.tloglink.write.1.tlog

     文件       2412  2018-05-05 14:47  大作业——最终修订版ConsoleApplication1ConsoleApplication1DebugConsoleApplication1.Build.CppClean.log

     文件        385  2018-05-05 14:47  大作业——最终修订版ConsoleApplication1ConsoleApplication1DebugConsoleApplication1.log

     文件     380044  2018-05-02 21:22  大作业——最终修订版ConsoleApplication1ConsoleApplication1Debugflower.bmp

     文件     750056  2018-05-02 21:31  大作业——最终修订版ConsoleApplication1ConsoleApplication1Debugflower1.bmp

     文件     750056  2018-05-02 21:32  大作业——最终修订版ConsoleApplication1ConsoleApplication1Debugflower2.bmp

     文件     750056  2018-05-02 21:32  大作业——最终修订版ConsoleApplication1ConsoleApplication1Debugflower3.bmp

     文件     750056  2018-05-02 21:32  大作业——最终修订版ConsoleApplication1ConsoleApplication1Debugflower4.bmp

     文件    1545272  2018-05-03 12:07  大作业——最终修订版ConsoleApplication1ConsoleApplication1Debugground.bmp

     文件     182737  2018-05-05 14:47  大作业——最终修订版ConsoleApplication1ConsoleApplication1Debugmain.obj

     文件     602096  2018-05-04 00:29  大作业——最终修订版ConsoleApplication1ConsoleApplication1Debugmoon.bmp

     文件      64005  2018-05-05 14:47  大作业——最终修订版ConsoleApplication1ConsoleApplication1Debugparticle.obj

     文件     484064  2018-05-03 18:23  大作业——最终修订版ConsoleApplication1ConsoleApplication1Debugsky.bmp

     文件     591032  2018-05-02 21:06  大作业——最终修订版ConsoleApplication1ConsoleApplication1Debugsnow.bmp

     文件      57786  2018-05-05 14:47  大作业——最终修订版ConsoleApplication1ConsoleApplication1DebugSnow.obj

     文件      49206  2018-04-24 19:49  大作业——最终修订版ConsoleApplication1ConsoleApplication1Debugsnowball.bmp

     文件      66390  2018-05-05 14:47  大作业——最终修订版ConsoleApplication1ConsoleApplication1DebugStar.obj

     文件     196662  2018-05-03 13:27  大作业——最终修订版ConsoleApplication1ConsoleApplication1Debugstone.bmp

     文件    6725048  2018-05-02 21:54  大作业——最终修订版ConsoleApplication1ConsoleApplication1Debug ree.bmp

     文件      55709  2018-05-05 14:47  大作业——最终修订版ConsoleApplication1ConsoleApplication1DebugTree.obj

     文件     691256  2018-05-02 20:31  大作业——最终修订版ConsoleApplication1ConsoleApplication1Debug ree_2.bmp

............此处省略49个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)