亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? motionblur.c

?? jhjuc jggyiiyi gjgu gjjgtu hhgg
?? C
字號:

/* motionblur.c - by Tom McReynolds, SGI */

/* Using the accumulation buffer for motion blur. */

#include <glut.h>
#include <stdlib.h>
#include <stdio.h>

const GLdouble FRUSTDIM = 100.f;
const GLdouble FRUSTNEAR = 320.f;
const GLdouble FRUSTFAR = 660.f;

/*
** Create a single component texture map
*/
GLfloat *make_texture(int maxs, int maxt)
{
    int s, t;
    static GLfloat *texture;

    texture = (GLfloat *)malloc(maxs * maxt * sizeof(GLfloat));
    for(t = 0; t < maxt; t++) {
        for(s = 0; s < maxs; s++) {
            texture[s + maxs * t] = ((s >> 4) & 0x1) ^ ((t >> 4) & 0x1);
        }
    }
    return texture;
}

enum {SPHERE = 1, CONE};

void
render(GLfloat dx, GLfloat dy, GLfloat dz)
{
    /* material properties for objects in scene */
    static GLfloat wall_mat[] = {1.f, 1.f, 1.f, 1.f};

    glClear(GL_DEPTH_BUFFER_BIT|GL_COLOR_BUFFER_BIT);

    /*
    ** Note: wall verticies are ordered so they are all front facing
    ** this lets me do back face culling to speed things up.
    */
 
    glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, wall_mat);

    /* floor */
    /* make the floor textured */
    glEnable(GL_TEXTURE_2D);

    /*
    ** Since we want to turn texturing on for floor only, we have to
    ** make floor a separate glBegin()/glEnd() sequence. You can't
    ** turn texturing on and off between begin and end calls
    */
    glBegin(GL_QUADS);
    glNormal3f(0.f, 1.f, 0.f);
    glTexCoord2i(0, 0);
    glVertex3f(-100.f, -100.f, -320.f);
    glTexCoord2i(1, 0);
    glVertex3f( 100.f, -100.f, -320.f);
    glTexCoord2i(1, 1);
    glVertex3f( 100.f, -100.f, -640.f);
    glTexCoord2i(0, 1);
    glVertex3f(-100.f, -100.f, -640.f);
    glEnd();

    glDisable(GL_TEXTURE_2D);

    /* walls */

    glBegin(GL_QUADS);
    /* left wall */
    glNormal3f(1.f, 0.f, 0.f);
    glVertex3f(-100.f, -100.f, -320.f);
    glVertex3f(-100.f, -100.f, -640.f);
    glVertex3f(-100.f,  100.f, -640.f);
    glVertex3f(-100.f,  100.f, -320.f);

    /* right wall */
    glNormal3f(-1.f, 0.f, 0.f);
    glVertex3f( 100.f, -100.f, -320.f);
    glVertex3f( 100.f,  100.f, -320.f);
    glVertex3f( 100.f,  100.f, -640.f);
    glVertex3f( 100.f, -100.f, -640.f);

    /* ceiling */
    glNormal3f(0.f, -1.f, 0.f);
    glVertex3f(-100.f,  100.f, -320.f);
    glVertex3f(-100.f,  100.f, -640.f);
    glVertex3f( 100.f,  100.f, -640.f);
    glVertex3f( 100.f,  100.f, -320.f);

    /* back wall */
    glNormal3f(0.f, 0.f, 1.f);
    glVertex3f(-100.f, -100.f, -640.f);
    glVertex3f( 100.f, -100.f, -640.f);
    glVertex3f( 100.f,  100.f, -640.f);
    glVertex3f(-100.f,  100.f, -640.f);
    glEnd();


    glPushMatrix();
    glTranslatef(-80.f + dx, -60.f + dy, -420.f + dz);
    glCallList(SPHERE);
    glPopMatrix();


    glPushMatrix();
    glTranslatef(-20.f, -80.f, -600.f);
    glCallList(CONE);
    glPopMatrix();

    if(glGetError()) /* to catch programming errors; should never happen */
       printf("Oops! I screwed up my OpenGL calls somewhere\n");

    glFlush(); /* high end machines may need this */
}

enum {NONE, FIELD};

int rendermode = NONE;

void
menu(int selection)
{
  rendermode = selection;
  glutPostRedisplay();
}

GLdouble focus = 420.;

/* Called when window needs to be redrawn */
void redraw(void)
{
    int i;
    int max;
    GLfloat dx, dy, dz;

    dx =  .5f;
    dy =  1.f;
    dz = -2.f;

    glPushMatrix();
    switch(rendermode) {
    case NONE:
      render(0.f, 0.f, 0.f);
      break;
    case FIELD:
      max = 16;

      glClear(GL_ACCUM_BUFFER_BIT);

      for(i = 0; i < max; i++) {
        render(dx * i, dy * i, dz * i);
        glAccum(GL_ACCUM, 1.f/max);
      } 
      glAccum(GL_RETURN, 1.f);
    break;
    }

    glPopMatrix();
    glutSwapBuffers();
}

/* ARGSUSED1 */
void key(unsigned char key, int x, int y)
{
    if(key == '\033')
        exit(0);
}

const int TEXDIM = 256;
/* Parse arguments, and set up interface between OpenGL and window system */
int
main(int argc, char *argv[])
{
    GLfloat *tex;
    static GLfloat lightpos[] = {50.f, 50.f, -320.f, 1.f};
    static GLfloat sphere_mat[] = {1.f, .5f, 0.f, 1.f};
    static GLfloat cone_mat[] = {0.f, .5f, 1.f, 1.f};
    GLUquadricObj *sphere, *cone, *base;

    glutInit(&argc, argv);
    glutInitWindowSize(512, 512);
    glutInitDisplayMode(GLUT_RGBA|GLUT_DEPTH|GLUT_ACCUM|GLUT_DOUBLE);
    (void)glutCreateWindow("motion blur");
    glutDisplayFunc(redraw);
    glutKeyboardFunc(key);

    glutCreateMenu(menu);
    glutAddMenuEntry("Normal", NONE);
    glutAddMenuEntry("Motion Blur", FIELD);
    glutAttachMenu(GLUT_RIGHT_BUTTON);

    /* draw a perspective scene */
    glMatrixMode(GL_PROJECTION);
    glFrustum(-FRUSTDIM, FRUSTDIM, -FRUSTDIM, FRUSTDIM, FRUSTNEAR, FRUSTFAR); 
    glMatrixMode(GL_MODELVIEW);

    /* turn on features */
    glEnable(GL_DEPTH_TEST);
    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT0);

    /* place light 0 in the right place */
    glLightfv(GL_LIGHT0, GL_POSITION, lightpos);

    /* remove back faces to speed things up */
    glCullFace(GL_BACK);

    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);

    glNewList(SPHERE, GL_COMPILE);
    /* make display lists for sphere and cone; for efficiency */
    sphere = gluNewQuadric();
    glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, sphere_mat);
    gluSphere(sphere, 20.f, 20, 20);
    gluDeleteQuadric(sphere);
    glEndList();

    glNewList(CONE, GL_COMPILE);
    cone = gluNewQuadric();
    base = gluNewQuadric();
    glRotatef(-90.f, 1.f, 0.f, 0.f);
    glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, cone_mat);
    gluDisk(base, 0., 20., 20, 1);
    gluCylinder(cone, 20., 0., 60., 20, 20);
    gluDeleteQuadric(cone);
    gluDeleteQuadric(base);
    glEndList();

    /* load pattern for current 2d texture */
    tex = make_texture(TEXDIM, TEXDIM);
    glTexImage2D(GL_TEXTURE_2D, 0, 1, TEXDIM, TEXDIM, 0, GL_RED, GL_FLOAT, tex);
    free(tex);

    glutMainLoop();
    return 0;             /* ANSI C requires main to return int. */
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91日韩一区二区三区| 高清在线成人网| 日韩美女啊v在线免费观看| 久久亚洲捆绑美女| 欧美大胆一级视频| 91精品国产综合久久婷婷香蕉| 91亚洲国产成人精品一区二三| 国产精品亚洲一区二区三区妖精 | 久久精品免费观看| 午夜精品一区二区三区免费视频 | 在线成人av影院| 欧美三级在线视频| 欧美一区二区三区免费| 6080午夜不卡| 精品欧美一区二区在线观看| 精品国产乱码久久久久久免费| 精品国产乱码久久久久久蜜臀 | 色婷婷久久久综合中文字幕| 色综合天天天天做夜夜夜夜做| 91美女福利视频| 欧美在线综合视频| 这里只有精品99re| 国产日韩精品一区| 亚洲天堂成人在线观看| 亚洲一区二区三区激情| 麻豆成人91精品二区三区| 国产高清不卡二三区| www.色精品| 欧美高清hd18日本| 国产视频视频一区| 亚洲综合精品久久| 国产一区二区不卡在线| 色美美综合视频| 日韩精品一区在线观看| 亚洲日本欧美天堂| 免费人成精品欧美精品| 99久久久国产精品免费蜜臀| 欧美片在线播放| 国产欧美日韩三区| 日本aⅴ亚洲精品中文乱码| 成人午夜电影久久影院| 欧美二区三区的天堂| 久久精品在线免费观看| 亚洲成人久久影院| 国产激情一区二区三区桃花岛亚洲| 成人黄页毛片网站| 日韩欧美国产精品| 亚洲一区二区三区自拍| 国精产品一区一区三区mba桃花 | 欧美一区二区三区免费在线看| 日本一区二区三区在线观看| 日韩黄色免费电影| 9色porny自拍视频一区二区| 日韩亚洲欧美在线| 亚洲一区中文日韩| 99在线视频精品| 久久久久久久久久久黄色| 五月天欧美精品| 福利一区福利二区| 2023国产精品| 免费观看成人鲁鲁鲁鲁鲁视频| 色94色欧美sute亚洲线路一久| 久久久久久久综合日本| 日韩—二三区免费观看av| 色综合中文字幕国产| 国产精品毛片高清在线完整版| 青青草国产精品97视觉盛宴| 91福利在线播放| 综合激情成人伊人| 9人人澡人人爽人人精品| 国产欧美一区二区在线| 国产福利不卡视频| 国产视频在线观看一区二区三区| 久久99精品一区二区三区三区| 欧美日韩精品是欧美日韩精品| 亚洲免费在线看| 91久久精品国产91性色tv| 最新久久zyz资源站| 成人h精品动漫一区二区三区| 国产亚洲成av人在线观看导航| 老司机午夜精品| 2021国产精品久久精品| 极品少妇一区二区三区精品视频| 91精品国产综合久久久久久久| 亚洲mv大片欧洲mv大片精品| 欧美日韩免费在线视频| 午夜精品久久久久久久久久久| 欧美日韩精品一二三区| 青青草91视频| 精品国产一区二区精华| 国产伦精品一区二区三区在线观看| 精品乱人伦一区二区三区| 国产伦精品一区二区三区视频青涩 | aaa国产一区| 亚洲午夜免费福利视频| 欧美一区二区三区在线看| 久久er精品视频| 国产精品麻豆视频| 日本精品免费观看高清观看| 亚洲高清视频的网址| 欧美变态tickling挠脚心| 国产成人av电影在线| 夜夜精品视频一区二区 | 美美哒免费高清在线观看视频一区二区 | 欧美一二三四在线| 国产一区二区三区综合| ...xxx性欧美| 日韩欧美资源站| 99久久99久久综合| 另类小说欧美激情| 最近中文字幕一区二区三区| 欧美日韩国产综合久久| 国产美女主播视频一区| 一区二区三区日韩精品| 精品少妇一区二区| 91麻豆成人久久精品二区三区| 日本特黄久久久高潮| 中文字幕日韩欧美一区二区三区| 欧美三级视频在线| 国产精品一区久久久久| 午夜精品福利一区二区蜜股av| 久久久精品黄色| 制服视频三区第一页精品| 成人免费高清视频| 国产自产v一区二区三区c| 午夜婷婷国产麻豆精品| 国产精品国产a级| 久久综合九色综合欧美就去吻| 欧洲国内综合视频| 成人av在线一区二区| 国产美女精品在线| 美女视频黄免费的久久 | 日韩一区精品视频| 综合久久久久久| 国产丝袜美腿一区二区三区| 精品国产乱码久久久久久久久| 色综合天天综合网国产成人综合天| 国精产品一区一区三区mba视频| 亚洲乱码精品一二三四区日韩在线 | 国产精品77777| 国产精品的网站| 亚洲欧洲精品成人久久奇米网| 亚洲欧洲日韩女同| 日韩一区二区三区视频在线观看| 成人av综合一区| 国产在线一区二区| 久久国产麻豆精品| 一区二区三区中文字幕| 国产亚洲精品7777| 精品成a人在线观看| 欧美mv日韩mv国产网站| 欧美日韩国产综合一区二区三区| 成人永久免费视频| 国产一区二区精品久久91| 国产一区二区三区四区五区美女| 爽爽淫人综合网网站| 一区二区三区小说| 中文字幕日本乱码精品影院| 欧美激情综合在线| 久久久亚洲综合| 精品日韩欧美在线| 欧美一区二区三区免费观看视频 | 成人在线综合网| 国产精品一区二区91| 九色|91porny| 免费成人在线观看视频| 丝瓜av网站精品一区二区 | 91亚洲精品一区二区乱码| 99久久精品国产导航| 成人白浆超碰人人人人| 国产精品一线二线三线精华| 久久激情综合网| 狂野欧美性猛交blacked| 蜜臀av国产精品久久久久| 午夜精品久久久久久久蜜桃app| 亚洲综合一二区| 国产精品女同一区二区三区| 综合电影一区二区三区 | 久久99精品久久久久久动态图| 免费高清成人在线| 看片的网站亚洲| 一区二区在线看| 老司机精品视频在线| 精彩视频一区二区| 高清不卡在线观看| 91色porny在线视频| 91精品福利视频| 88在线观看91蜜桃国自产| 日韩美女一区二区三区| 国产日韩欧美精品在线| 亚洲高清在线精品| 精品一区二区三区免费播放| 国产乱码一区二区三区| 精品亚洲免费视频| 色综合色综合色综合| 在线综合+亚洲+欧美中文字幕| 欧美精品一区二区三区高清aⅴ| ...xxx性欧美| 久久99久久99小草精品免视看| 国产成人av在线影院|