24СʱÈÈÃŰæ¿éÅÅÐаñ    

²é¿´: 1341  |  »Ø¸´: 8

sukiyq

ľ³æ (СÓÐÃûÆø)

[ÇóÖú] OpenGLÀïÈ«¾Ö±äÁ¿ÒýÆðµÄÆæ¹ÖµÄÎÊÌâ

ϱßÊÇÒ»¸ö¹âÕÕµÄOpenGLʾÀý³ÌÐò£¬ÔËÐÐÓдíÎ󣬰ѳÌÐòÀïÍêȫûÓÐÓõ½µÄÈ«¾Ö±äÁ¿¡°GLfloat light_pos[] = {1.0, 2.0, 3.0, 0.0};¡±Ò»ÐÐɾ³ýÔËÐоÍÕý³£ÁË¡£ÕâÊÇΪʲô£¿Ã÷Ã÷Õâ¸öÈ«¾Ö±äÁ¿²¢Ã»ÓÐÓõ½£¬µ«ÊÇÉèÖÃÁËËü³ÌÐò¾Í»á³ö´í£¬ºÃÆæ¹Ö¡£

#include
        GLfloat vertices[][3] = {{-1.0,-1.0,-1.0},{1.0,-1.0,-1.0},
        {1.0,1.0,-1.0}, {-1.0,1.0,-1.0}, {-1.0,-1.0,1.0},
        {1.0,-1.0,1.0}, {1.0,1.0,1.0}, {-1.0,1.0,1.0}};


        GLfloat colors[][4] = {{1.0,0.0,0.0,0.5},
        {0.0,1.0,1.0,0.5}, {1.0,1.0,0.0,0.5},
        {0.0,1.0,0.0,0.5}, {0.0,0.0,1.0,0.5}, {1.0,0.0,1.0,0.5}};
        GLfloat light_pos[] = {1.0, 2.0, 3.0, 0.0};

void polygon(int a, int b, int c , int d)
{
        glColor4fv(colors[a]);
        if(colors[a][4] != 1.0) glDepthMask(GL_TRUE);
                else glDepthMask(GL_FALSE);
        glBegin(GL_POLYGON);
                glVertex3fv(vertices[a]);
                glVertex3fv(vertices);
                glVertex3fv(vertices[c]);
                glVertex3fv(vertices[d]);
        glEnd();
}

void cube()
{
        polygon(0,3,2,1);
        polygon(2,3,7,6);
        polygon(3,0,4,7);
        polygon(1,2,6,5);
        polygon(4,5,6,7);
        polygon(5,4,0,1);
}

static GLfloat theta[] = {0.0,0.0,0.0};
static GLint axis = 2;

void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        glLoadIdentity();
        glRotatef(theta[0], 1.0, 0.0, 0.0);
        glRotatef(theta[1], 0.0, 1.0, 0.0);
        glRotatef(theta[2], 0.0, 0.0, 1.0);
        cube();
        glutSwapBuffers();
}

void spinCube()
{
        theta[axis] += 2.0;
        if( theta[axis] > 360.0 ) theta[axis] -= 360.0;
        glutPostRedisplay();
}

void mouse(int btn, int state, int x, int y)
{
        if(btn==GLUT_LEFT_BUTTON && state == GLUT_DOWN) axis = 0;
        if(btn==GLUT_MIDDLE_BUTTON && state == GLUT_DOWN) axis = 1;
        if(btn==GLUT_RIGHT_BUTTON && state == GLUT_DOWN) axis = 2;
}

void myReshape(int w, int h)
{
    glViewport(0, 0, w, h);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    if (w <= h)
        glOrtho(-2.0, 2.0, -2.0 * (GLfloat) h / (GLfloat) w,
            2.0 * (GLfloat) h / (GLfloat) w, -10.0, 10.0);
    else
        glOrtho(-2.0 * (GLfloat) w / (GLfloat) h,
            2.0 * (GLfloat) w / (GLfloat) h, -2.0, 2.0, -10.0, 10.0);
    glMatrixMode(GL_MODELVIEW);
}

void
main(int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
    glutInitWindowSize(500, 500);
    glutCreateWindow("colorcube";
    glutReshapeFunc(myReshape);
    glutDisplayFunc(display);
    glutIdleFunc(spinCube);
    glutMouseFunc(mouse);
    glEnable(GL_DEPTH_TEST); /* Enable hidden--surface--removal */
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    glutMainLoop();
}
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

±È²ËÄñǿһµãµã
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

conanwj

°æÖ÷ (ÖøÃûдÊÖ)

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

¸Ðл²ÎÓ룬ӦÖúÖ¸Êý +1
³ö´íÐÅÏ¢ÊÇʲô£¿
ÇëÌù³öÀ´¡£
2Â¥2012-09-10 20:16:48
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

sukiyq

ľ³æ (СÓÐÃûÆø)

ÒýÓûØÌû:
2Â¥: Originally posted by conanwj at 2012-09-10 20:16:48
³ö´íÐÅÏ¢ÊÇʲô£¿
ÇëÌù³öÀ´¡£

ûÓгö´íÐÅÏ¢£¬¾ÍÊǼÓÉÏÉϱßÄǾ䣬»æÖƵÄÁ¢·½Ìå²»ÄÜÕý³£ÏÔʾ£¬Ô˶¯ºó¾ÉÃæ»á±»ÐÂÃæ¸²¸Ç£»²»¼ÓÉϱßÄǾä¾Í¿ÉÒÔÕý³£ÏÔʾºÍˢС£
±È²ËÄñǿһµãµã
3Â¥2012-09-10 22:12:04
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

СÄñôÁôÁ

гæ (ÕýʽдÊÖ)

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

¸Ðл²ÎÓ룬ӦÖúÖ¸Êý +1
glVertex3fv(vertices);
glutCreateWindow("colorcube";
ÐÞ¸ÄΪ£º
  glVertex3fv(vertices);
glutCreateWindow("colorcube";
ÆäËûÈκεط½²»Ð޸쬽á¹ûÏÔʾһ¸öÐýתµÄÕý·½ÐÎ
£¨ÕâÓëÄãÉèÖõĴ°¿ÚÓйØÏµ£¬Èç¹ûΪÊÓͼ´°¿ÚÏÔʾΪÁ¢·½Ì壩
4Â¥2012-09-11 09:03:36
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

conanwj

°æÖ÷ (ÖøÃûдÊÖ)

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

¡ï ¡ï ¡ï
sukiyq: ½ð±Ò+3, ¡ïÓаïÖú 2012-09-23 09:10:56
ÒýÓûØÌû:
3Â¥: Originally posted by sukiyq at 2012-09-10 22:12:04
ûÓгö´íÐÅÏ¢£¬¾ÍÊǼÓÉÏÉϱßÄǾ䣬»æÖƵÄÁ¢·½Ìå²»ÄÜÕý³£ÏÔʾ£¬Ô˶¯ºó¾ÉÃæ»á±»ÐÂÃæ¸²¸Ç£»²»¼ÓÉϱßÄǾä¾Í¿ÉÒÔÕý³£ÏÔʾºÍˢС£...

±àÒë¹ý³ÌÖУ¬
void polygon(int a, int b, int c , int d)º¯ÊýµÄ
glVertex3fv(vertices);´Ë¾ä´íÎó£¬
Ó¦¸ÄΪglVertex3fv(vertices);

ÔÚÊó±ê×ó¼üÍ϶¯Á¢·½Ìåºó£¬¹âÕÕ»áÔì³ÉÁ¢·½Ìå¾Ö²¿ºÚ°µ¡£
LZËù˵µÄÄǾä´úÂëÊÇ·ñ¼ÓÉÏЧ¹û¶¼ÊÇÒ»ÑùµÄ¡£
Çë¼ì²é´úÂ룬¼ÓÈëºÏÊʵĹâÕÕ²»°É¡£¡£
5Â¥2012-09-11 09:06:43
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

СÄñôÁôÁ

гæ (ÕýʽдÊÖ)

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

¡ï ¡ï
sukiyq: ½ð±Ò+2, ¡ïÓаïÖú 2012-09-23 09:11:02
¸øÄãÌù½á¹û²»ÐУ¬²»Ö§³ÖͼƬ£¬ÎÒ½«setting------Link ÖеÄwindows¸ÄΪconsoleÔÚÎÒµçÄÔ³ÌÐòÔËÐÐÕý³££¬Äã˵µÄÕâ¸ö GLfloat light_pos[] = {1.0, 2.0, 3.0, 0.0};²¢²»Ó°Ïì³ÌÐò³ö´í£¬Èý¶ÔÁ¢·½ÌåÑÕÉ«ÓÐÓ°Ïì¡£
6Â¥2012-09-11 09:44:47
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

sukiyq

ľ³æ (СÓÐÃûÆø)

sukiyq: »ØÌûÖö¥ 2012-09-11 13:10:09
Ê×ÏÈ£¬È·Êµ¼ÓÉÏÄǸöÈ«¾Ö±äÁ¿ºÍ²»¼Ó»æÖƵĽá¹û²»Ò»Ñù£¬¼ÓÉϺó»æÖÆ´íÎó¡£
Æä´Î£¬³ÌÐòÐèҪͨ¹ýÊó±ê×óÖÐÓÒ°´¼üÀ´¸Ä±äÐýת·½Ïò£¬²»ÐèÒª¶Ô¸÷ÖÖÊÓÍ¼ÖØÐÂ×÷µ÷Õû£¬Õâ¸ö³ÌÐòÊÇ¡¶opengl±à³Ì»ù´¡¡·ÖеÚÁùÕµÄʵÀýcubet¸ÄдµÄ£¬Ó¦¸ÃûÓдíÎó¡£
±È²ËÄñǿһµãµã
7Â¥2012-09-11 13:09:37
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

sukiyq

ľ³æ (СÓÐÃûÆø)

ÒýÓûØÌû:
4Â¥: Originally posted by СÄñôÁôÁ at 2012-09-11 09:03:36
glVertex3fv(vertices);
glutCreateWindow("colorcube";
ÐÞ¸ÄΪ£º
  glVertex3fv(vertices);
glutCreateWindow("colorcube";
ÆäËûÈκεط½²»Ð޸쬽á¹ûÏÔʾһ¸öÐýתµÄÕý·½ÐÎ
£¨ÕâÓëÄã ...

ÄãÒª°´Êó±êµÄ×óÖÐÓÒ¼üÁ¢·½Ìå²ÅÄÜÐýת£¬ÄãÊÔÊÔ
±È²ËÄñǿһµãµã
8Â¥2012-09-11 13:20:49
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

sukiyq

ľ³æ (СÓÐÃûÆø)

ÒýÓûØÌû:
5Â¥: Originally posted by conanwj at 2012-09-11 09:06:43
±àÒë¹ý³ÌÖУ¬
void polygon(int a, int b, int c , int d)º¯ÊýµÄ
glVertex3fv(vertices);´Ë¾ä´íÎó£¬
Ó¦¸ÄΪglVertex3fv(vertices);

ÔÚÊó±ê×ó¼üÍ϶¯Á¢·½Ìåºó£¬¹âÕÕ»áÔì³ÉÁ¢·½Ìå¾Ö²¿ºÚ°µ¡£
LZËù˵µÄÄǾä´úÂëÊÇ ...

Õâ¸öÁ¢·½ÌåÊÇÒ»¸ö°ë͸Ã÷(alpha=0.5)µÄÁ¢·½Ì壬ûÓмӹâÕÕ£¬Ö»¿ªÁË»ìºÏ£¬ËùÒÔÎÞÂÛµãÊó±êµÄÄÄÒ»¸ö¼ü£¬¿´µ½µÄ¶¼Ó¦¸ÃÊÇÒ»¸öÁùÃæÑÕÉ«²»Í¬µÄÐýתÕý·½Ì壬²»ÐèÒª¼Ó¹âÕÕ¡£µ«ÊÇÈç¹û¼ÓÉÏÄÇÒ»¾äÈ«¾Ö±äÁ¿£¬µÃµ½µÄÐýתÁ¢·½Ìå×îÖÕ»á±äµÃÒ»Íźڡ£
±È²ËÄñǿһµãµã
9Â¥2012-09-11 13:23:47
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ sukiyq µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[»ù½ðÉêÇë] ͶƱ:  ÓжàÉÙÈËÊǽñÌì²éϵͳ֪µÀ½á¹ûµÄ£¿ +12 °®¿´ÊéµÄ¿ÉÀÖ 2026-08-26 14/700 2026-08-26 14:21 by coolysnow
[»ù½ðÉêÇë] Ö»ÓÐÿÄêÕâÖÖʱºòÀ´¹ä¹äСľ³æ +26 yaoyewhu2008 2026-08-20 28/1400 2026-08-26 13:49 by zzuzxg
[»ù½ðÉêÇë] Ϊʲô¹ú×ÔÈ»²»ÄÜÖ±½Ó¹«²¼ +4 bjdxyxy 2026-08-26 4/200 2026-08-26 13:12 by qingmu1201
[»ù½ðÉêÇë] ϵͳ²é²»µ½ +9 ¶­°Ëǧ 2026-08-26 9/450 2026-08-26 12:30 by yanmofang
[»ù½ðÉêÇë] ¿ÆÑй¶ùÌ«ÄÑÁË +21 ÎÒ4´ó°×²Ë 2026-08-20 22/1100 2026-08-26 11:29 by nlgza
[»ù½ðÉêÇë] ϵͳ½ø²»È¥ +4 yanglien 2026-08-26 5/250 2026-08-26 11:10 by wenfengw83
[»ù½ðÉêÇë] 2026ÄêµÄ¹ú¼ÒÉç¿Æ»ù½ðÏîĿͨѶÆÀÉóµÄйæÔòÓëж¯Ïò¡¢ÐÂÌôÕ½ +6 process2012 2026-08-23 8/400 2026-08-26 11:03 by zjlp
[»ù½ðÉêÇë] ÏîÄ¿ÐÅÏ¢ºÍ¾­·ÑÐÅÏ¢ÔÚϵͳÀï¶¼¿ÉÒÔ¿´µ½ÁË +6 wittyboy 2026-08-26 14/700 2026-08-26 10:55 by wittyboy
[»ù½ðÉêÇë] ¹úºÏ¿É²éÁË +3 paperzjh 2026-08-26 3/150 2026-08-26 10:41 by LemmonTr
[»ù½ðÉêÇë] ½ñÌìÎñί»á¿ªÍêÁË£¬Ã÷Ìì³ö½á¹ûÂð +19 angus9576 2026-08-25 23/1150 2026-08-26 10:03 by zp519
[Ö°³¡ÈËÉú] ѧÉúײ¼û¸¨µ¼Ô±ËÍÍâÂô£¬µÚ¶þÌìÈ«°à¶¼³ÁĬÁË +3 ¾¨ÓãÈÚ½ð_Õã½­_É 2026-08-22 3/150 2026-08-26 09:01 by zzuzxg
[»ù½ðÉêÇë] ¹úºÏÏÖÔڲ鲻µ½ÁËÂ𣿠+10 chengyan1220 2026-08-24 20/1000 2026-08-26 08:57 by peasantsprig
[»ù½ðÉêÇë] Å£À´£¡Ã×À´£¡ÃæÀ´£¡ +8 beefly 2026-08-26 8/400 2026-08-26 08:37 by xuzhipiao
[»ù½ðÉêÇë] 2026¹ú×ÔÈ»º¯ÆÀ·Ñµ½ÕË +21 ÑòÑü°å 2026-08-21 24/1200 2026-08-26 07:20 by finnigan
[»ù½ðÉêÇë] ÓÐûÓдóÉñ°ïÎÒ¿´¿´»ù½ð´úÂë 28+4 1234567wang 2026-08-24 10/500 2026-08-25 19:15 by lfy8008
[»ù½ðÉêÇë] ½ñÈÕ²»·Å°ñ£¿Íø´«¹ú×ÔȻԤ¼Æ 8 Ô 27 Èտɲé½á¹û +17 ҽѧÀÏÄк¢ 2026-08-20 22/1100 2026-08-25 15:36 by ҽѧÀÏÄк¢
[»ù½ðÉêÇë] Èç¹û´Ë¿ÌÄãÕýÔÚΪ¹ú»ù¸Ðµ½½¹ÂÇ£¬²»·ÁÀ´ÌýÌýÕâÊס¶»ù½ðÖ®Íâ¡· +8 scalable 2026-08-24 8/400 2026-08-25 12:52 by jnhyjjm
[»ù½ðÉêÇë] ÈÃÎÒÖÐÒ»¸öÃæÉϰɣ¡ +13 ´óƼ1987 2026-08-20 16/800 2026-08-24 10:23 by ̫ɵÁË
[½Ìʦ֮¼Ò] Ìø²ÛºóÔÚÑÐÏîÄ¿Ôõô°ì£¿ +5 ¼òµ¥»¯xn 2026-08-22 10/500 2026-08-23 12:38 by ¼òµ¥»¯xn
[»ù½ðÉêÇë] ʱ¼ä´ÁÓÖ±äÁË +13 wuchongjun 2026-08-20 19/950 2026-08-21 17:21 by ×Ïɼ´¼
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û