- 时间:2021-02-11 20:09 编辑:雷声 来源:蚂蚁资源 阅读:195
- 扫一扫,手机访问
摘要:大家好,今天给大家介绍关于opengl源码(opengl实例)的相关内容,详细讲解急!求一个OpenGL编写的源代码,简单的,最好是原创小作品。希望好心人帮帮忙~,求一个带注释的opengl代码,简单点的就好,交作业用,求一个C语言Opengl代码等,希望可以帮助到您。
急!求一个OpenGL编写的源代码,简单的,最好是原创小作品。希望好心人帮帮忙~,// Win32控制台应用程序#包含
#include const int n = 60; Const Glfloat r = 0.2f; const glfloat pi = 3.1415926536f; void mydisplay(void){int i; GLCLEAR(GL_COLOR_BUFFER_BIT); //点Glpointsize(2.0); glbegin(gl_points); Glvertex2f(0.0f,0.0f); glend(); //由闭合折叠线(gl_line_loop)组成; GLCOLOR3F(1.0,1.0,0.0); for(i = 0; i 求一个带注释的opengl代码,简单点的就好,交作业用,#include #include #include #include #include #include #include“bmp.h”#include“gl / glext .h”#pragma评论(链接器,“/子系统:\”Windows \“/条目:\”maincrtstartup \“)int imagewidth = 0; int imageheight = 0; //文件名最大长度#define max_line 64#define max_files 60car * filename = null ; //“e:\\ outiv.bmp”; unsigned char *图像= null; gluint texname [max_files]; int filesexist = 0; int dispimgi;位mapfilehere fileherer; bitmapinfoheader infoheader; int internalms = 200; int fsstate; int fsstate; long fontate (无符号char * dwordptr){long结果=((int)(dwordptr [0])* 1)+(dwordptr [1])* 16)+((int)(dwordptr)[2])* 256)+( int)(dwordptr [3])* 4096);返回结果; void ReadImage()} Void Ready(){file * file =fopen(文件名,“rb”); if(file == null){// printf(“纹理不存在!\ r \ n”);退出(0);} memset(&fileheader,0,sizeof(fileheader));欺诈(&fileheader,sizeof(fileheader),1,文件; memset(&infoheader,0,sizeof(Infoheader));欺诈(&Infoheader,sizeof(Infoheader),1,文件); ImageWidth = ABS(InfoHeader.biwidth) ; imageheight = abs(Infoheader.biheight); // printf(“宽度=%d; height =%d \ r \ n”,imagewidth,imageheight); if(infoheader.bibitcount)!= 0x18){// printf( “纹理不是24位图!\ r \ n”);退出(0);}长索引= 0; image =(unsigned char *)malloc(imageheight * imagewidth * 4); fseek(文件,54,seek_set); INT I,J,K; for(i = 0; i = 0; k - ){image [index] = fgetc(文件); index ++;}}} fclose(文件);} void init(void){charf [max_line];/ *每行缓冲区* /文件* fp; / *文件指针* / int len; / *行字符号* / if((fp = fopen(“bmplist.txt”,“r”))== null){perror(“无法读取”);退出(1);} int i = 0; while(fgets(buf,max_line,fp)!= null){len = strlen(buf); buf [len-1] ='\ 0'; / *删除resensil * / // printf(“%d:%s \ n”,i,buf); Glclearcolor(0.0,0.0,0.0,0.0); glshademodel(gl_flat); glenable(gl_depth_test); filename = buf;阅读贴图); glpixelstorei(gl_unpack_alignment,4); glgentextures(1,&texname [i]); glbindtexture(gl_texture_2d,texname [i]); gltexparameteri(gl_texture_2d,gl_texture_wrap_s,gl_repeat); gltexparameteri(gl_texture_2d,gl_texture_wrap_t,gl_repeat); gltexparameteri(gl_texture_2d,gl_texture_mag_filter,gl_nealest); GltexParameteri(gl_texture_2d,gl_texture_min_filter,gl_nealest); glteximage2d(gl_texture_2d,0,gl_rgb,imagewidth,imageheight,0,gl_bgr,gl_unsigned_byte,图像);免费(图片); i ++;} filesexist = i;} void显示(void){gl_clear_buffer_bit | gl_depth_buffer_bit); GLCOLOR3F(1.0,1.0,1.0); glenable(gl_texture_2d); gltexenvf(gl_texture_env,gl_texture_env_mode,gl_decal); glbindtexture(gl_texture_2d,texname [dissimgi]); GLBEGIN(GL_POLYGON); gltexcoord2f(0.0,0.0); glvertex2f(-1.0,1.0); gltexcoord2f(0.0,1.0); glvertex2f(-1.0,-1.0);格尔克斯科2F(1.0,1.0); glvertex2f(1.0,-1.0); Gltexco2F(1.0,0.0); glvertex2f(1.0,1.0); glend(); glflush(); void重塑(int w,int h){glviewport(0,0,0,(glsizei)w,(glsizei)h); void键盘(未签名的char key,int x,int y){copy 100: intervalms + = 100; brAK;案例117:intervalms - = 100; if(intervalms <= 0){intervalms = 100;}中断;案例102:如果(fsstate%2 == 0)//进入全屏Plutfullscreen();否则{glutreshapewindow(640,480); //设置窗口大小(无法使用的功能)GlutpationWindow(100,100); //设置窗口位置(无法使用)} fsstate ++;打破;案例27:退出(0);打破;默认值:break;}} void timerproc(int id){dissimgi ++; Dispimgi%= filesexist;显示(); gluttimerfunc(intervalms,timerproc,1); //需要在函数中调用一次,以确保循环} int main(int argc,char ** argv){glutinit(argc,argv); glutinitdisplaymode(glut_single | glut_rgb | glut_depth); glutinitwindowsize(250,200); glutinitWindowposition(100,100); // GlutinitWindowsize(3840,2400); // GlutinitWindowPosit.离子(0,0); GlutcreateWindow(argv [0]);在里面 (); glutdisplayfunc(显示); glutreshapefunc(重塑); GlutkeyboardFunc(键盘); gluttimerfunc(intervalms,timerproc,1); // plutfullscreen(); glutmainloop();返回0; }
求一个C语言Opengl代码,// Bounce.c //演示了一个简单的动画矩形程序,带有glut // pg gb,2nd Edition // richard s. wright Jr.#包括“stdafx.h”#include #include //首字母方形位置和sizeglfloat x1 = 100.0f; glfloat y1 = 150.0f; GLSIZEI RSIZE = 50; // x和y方向上的步长//(每次移动的像素数)glfloat xstep = 1.0f; glfloat ystep = 1.0 f; //跟踪Windows更改宽度和HeightGlfloat WindowWidth; glfloat windowheight; //调用绘制场景renderscene(void){//用电流清除彩色亮起(gl_color_buffer_bit)清除窗口; //将当前绘图颜色设置为红色// RGB GLCOLOR3F(1.0F,0.0F,0.0F); //绘制带电流彩色GLRECTF的填充矩形(X1,Y1,X1 + Xize,Y1 + RSIZE); //冲洗绘图命令冷却SwapBuffers();} //在空闲(窗口未按//调整或移动)void timerfunction(int值)void timerfunction(interverse){//右边缘时(x1> windowwidth-rsize || x1 < 0) xstep = -xstep; // Reverse direction when you reach top or bottom edge if(y1 > windowheight-rsize || y1 < 0) ystep = -ystep;// Check bounds. This is incase the window is made // smaller and the rectangle is outside the new // clipping volume if(x1 > windowswidth-rsize)x1 = windowswidth-xize-1; if(y1> windowheight-rsize)y1 = windowheight-rsize-1; //实际上移动方形x1 + = xstep; Y1 + = YSTEP; //用新的坐标glutpostredisplay()重绘场景; gluttimerfunc(33,timerfunction,1);} //设置渲染态void setuprc(void){//设置清晰的颜色到蓝色亮色图(0.0f,0.0f,1.0f,1.0f);} //由glut图书馆调用当窗口有追逐的Sizevoid变化(Glsizei W,Glsizei H){//如果(h == 0)h = 1,则防止分零; //将视口设置为窗口尺寸离子Glviewport(0,0,W,H); //重置坐标系glmatrixmode(gl_proight); glloadidentity(); //保持方形方形,这次,节省计算//宽度和高度,以供以后使用(w <= h){windowheight = 250.0f * h / w; windowswidth = 250.0f;否则{windowswidth = 250.0f * w / h; windowheight = 250.0f;} //设置剪切卷Glortho(0.0f,windowswidth,0.0f,windowheight,1.0f,-1.0f); glmatrixmode(gl_modelview); glloadidentity();} //主程序入口尖端主(void){glutinitdisplaymode(glut_double | glut_rgb); GlutcreateWindow(“弹跳”); glutdisplayfunc(renderscene); glutreshapefunc(改变); gluttimerfunc(33,timerfunction,1); setuprc(); glutmainloop();} //是广场,你改变它〜程序仍在尝试编译,这将进步,加油什么!
责任编辑(雷声)
以上就是关于**opengl源码,opengl实例**的全部内容,了解更多请关注蚂蚁资源网。
- 织梦源码
- 本人刚学opengl,请问用VC++编写opengl程序如何操作,需建立什么工程和文件类型,谢谢,我来告诉你标准答案!主要就是设置编译环境的包含目录和库目录,让代码能include到gl.h等头文件,链接时能找到opengl32.lib等文件,或者把相关文件直接复制到代码目录里也行。工程类型就看需要了,简单调试opengl部分代码,命令行就够用,命令行的需要glut,aux等里面的简单的窗口支持,通过它们使用系统的。win32,mfc等的图形界面的工程就需要wgl等函数创建和管理opengl渲染环境:GLXX窗口系统的(LINUX,UNIX。。。)AGLAppleMacintoshPGLIBMOS/2WarpWGLMicrosoftWindows
- 2021-02-11 20:09:05
- 免注册用户
- 降低游戏开发门槛、iOS平台游戏。支持关键帧动画。操作简单便捷,简化游戏开发流程,通过上传几张图片即可做成一款跨平台游戏:可视化操作。无需编码,使游戏更加逼真,在拖放中实现动作,模拟真实物理运动场景、一款在线可视化游戏开发制作平台,让做游戏更加顺手,它是:可视化关键帧动画编辑器,不用写代码也能做酷炫的游戏动画效果,同时支持2D的刚体和软体力学以及碰撞检测,物理仿真效果,支持发布到各大:可同时生成AndroidGameMei。一键生成游戏、事件及行为添加,不用写代码
- 2021-02-11 20:09:05
- xiaozhang
- C3DN论坛里有很多OpenGL动画程序,都是可以正常运行的,在【资源下载】版块里。比如《OpenGL导入模型》、《3ds模型汽车视景仿真》、《3D多米诺牌》、《国产3D仿CS程序》、《CS仿真程序(最酷的OpenGL程序)》.............
- 2021-02-22 07:05:01