青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Shuffy

不斷的學(xué)習(xí),不斷的思考,才能不斷的進(jìn)步.Let's do better together!
posts - 102, comments - 43, trackbacks - 0, articles - 19

Reflections

Adding reflections to a program too can improve its realism to a great extent. Here we'll look at a simple method to create reflection where we simply redraw the object with an appropriate transformation and make the surface in between translucent. This creates an effective illusion of reflection!!

1,設(shè)置光源代碼修改如下:

void CCY457OpenGLView::SetupLighting ()
{
      
//Material Properties
      GLfloat matSpecular[] = { 1.0f0.0f0.0f0.7f};
      GLfloat matShininess[] 
= { 50.0f};
      GLfloat matAmbient[] 
= { 0.25f0.25f0.25f0.7f};
      GLfloat matDiffuse[] 
= { 0.5f0.5f0.5f0.7f};
      glMaterialfv(GL_FRONT, GL_SPECULAR, matSpecular);
      glMaterialfv(GL_FRONT, GL_SHININESS, matShininess);
      glMaterialfv(GL_FRONT, GL_DIFFUSE, matDiffuse);
      glMaterialfv(GL_FRONT, GL_AMBIENT, matAmbient);
      
//Lighting Parameters
      
//Enable Lighting
      glEnable(GL_LIGHTING);
      
//Specify a single directional light
      GLfloat ambient1[] = { 0.5f,0.5f,0.5f};
      GLfloat diffuse1[] 
= { 0.5f,0.5f,0.5f};
      GLfloat specular1[] 
= { 1.0f,0.0f,0.0f};
      GLfloat position1[] 
= { 0.0f,0.0f,5.0f,0.0};
      glLightfv(GL_LIGHT0, GL_AMBIENT, ambient1);
      glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse1);
      glLightfv(GL_LIGHT0, GL_SPECULAR, specular1);
      glLightfv(GL_LIGHT0, GL_POSITION, position1);    
      glEnable(GL_LIGHT0);
      
//Specify a single positional spotlight
      GLfloat ambient2[] = { 1.0f,1.0f,0.0f};
      GLfloat diffuse2[] 
= { 1.0f,0.0f,0.0f};
      GLfloat position2[] 
= { 1.0f,0.0f,5.0f,1.0};
      GLfloat direction2[] 
= {0.0f,0.0f,-5.0f};
      glLightfv(GL_LIGHT1, GL_AMBIENT, ambient2);
      glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse2);
      glLightfv(GL_LIGHT1, GL_POSITION, position2);
      glLightfv(GL_LIGHT1, GL_SPOT_DIRECTION, direction2);
      glLightf(GL_LIGHT1, GL_SPOT_CUTOFF, 
15.0f);
      glEnable(GL_LIGHT1);
}

2,繪制函數(shù)修改如下:

void CCY457OpenGLView::RenderScene ()
{
//繪制函數(shù)
      glTranslatef(0.0f,0.0f,-8.0f);
      
// Save matrix state and do the rotation
      glPushMatrix();
           glRotatef(m_xRot, 
1.0f0.0f0.0f);
           DrawCube();
           glPopMatrix();
           glPushMatrix();
                 glTranslatef(
0.0f-3.0f0.0f);
                 glScalef(
1.0f-1.0f1.0f);
                 glRotatef(m_xRot, 
1.0f0.0f0.0f);
                 DrawCube();
           glPopMatrix();
           
// Draw bottom of floor
           glEnable(GL_BLEND);
           glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
           glPushMatrix();
           glEnable(GL_TEXTURE_2D);
           glBindTexture(GL_TEXTURE_2D, m_Texture[
3]);
           glBegin(GL_POLYGON);
                 glTexCoord2f(
0.0f0.0f);
                 glVertex3f(
-5.0f-1.5f5.0f );
                 glTexCoord2f(
1.0f0.0f);
                 glVertex3f(
-5.0f-1.5f-5.0f );
                 glTexCoord2f(
1.0f1.0f);
                 glVertex3f(
5.0f-1.5f-5.0f );
                 glTexCoord2f(
0.0f1.0f);
                 glVertex3f(
5.0f-1.5f5.0f );
           glEnd();
      glPopMatrix();
      glDisable(GL_TEXTURE_2D);
      glDisable(GL_BLEND); 
}
void CCY457OpenGLView::DrawCube ()
{
           glEnable(GL_TEXTURE_2D);
           glBindTexture(GL_TEXTURE_2D,m_Texture[
0]);    
           
//Front Face
           glBegin(GL_POLYGON);
                 glTexCoord2f(
0,0);
                 glVertex3f(
-1.0f,-1.0f,0.0f);
                 glTexCoord2f(
1,0);
                 glVertex3f( 
1.0f,-1.0f,0.0f);
                 glTexCoord2f(
1,1);
                 glVertex3f( 
1.0f1.0f,0.0f);
                 glTexCoord2f(
0,1);
                 glVertex3f(
-1.0f1.0f,0.0f);
           glEnd();
           
//Back Face
           glBegin(GL_POLYGON);
                 glTexCoord2f(
1,0);
                 glVertex3f(
-1.0f,-1.0f,-1.0f);
                 glTexCoord2f(
1,1);
                 glVertex3f(
-1.0f1.0f,-1.0f);
                 glTexCoord2f(
0,1);
                 glVertex3f( 
1.0f1.0f,-1.0f);
                 glTexCoord2f(
0,0);
                 glVertex3f( 
1.0f,-1.0f,-1.0f);
           glEnd();
           glBindTexture(GL_TEXTURE_2D,m_Texture[
1]);
           
//Left Face
           glBegin(GL_POLYGON);
                 glTexCoord2f(
1,0);
                 glVertex3f(
-1.0f,-1.0f0.0f);
                 glTexCoord2f(
1,1);
                 glVertex3f(
-1.0f1.0f0.0f);
                 glTexCoord2f(
0,1);
                 glVertex3f(
-1.0f1.0f,-1.0f);
                 glTexCoord2f(
0,0);
                 glVertex3f(
-1.0f,-1.0f,-1.0f);
           glEnd();
           
//Right Face
           glBegin(GL_POLYGON);
                 glTexCoord2f(
0,0);
                 glVertex3f(
1.0f,-1.0f0.0f);
                 glTexCoord2f(
1,0);
                 glVertex3f(
1.0f,-1.0f,-1.0f);
                 glTexCoord2f(
1,1);
                 glVertex3f(
1.0f1.0f,-1.0f);
                 glTexCoord2f(
0,1);
                 glVertex3f(
1.0f1.0f0.0f);
           glEnd();
           glBindTexture(GL_TEXTURE_2D,m_Texture[
2]);
           
//Top Face
           glBegin(GL_POLYGON);
                 glTexCoord2f(
0,0);
                 glVertex3f(
-1.0f1.0f0.0f);
                 glTexCoord2f(
0,1);
                 glVertex3f( 
1.0f1.0f0.0f);
                 glTexCoord2f(
1,1);
                 glVertex3f( 
1.0f1.0f-1.0f);
                 glTexCoord2f(
1,0);
                 glVertex3f(
-1.0f1.0f-1.0f);
           glEnd();
           
//Botton Face
           glBegin(GL_POLYGON);
                 glTexCoord2f(
0,1);
                 glVertex3f(
-1.0f-1.0f0.0f);
                 glTexCoord2f(
0,0);
                 glVertex3f(
-1.0f-1.0f-1.0f);
                 glTexCoord2f(
1,0);
                 glVertex3f( 
1.0f-1.0f-1.0f);
                 glTexCoord2f(
1,1);
                 glVertex3f( 
1.0f-1.0f0.0f);
           glEnd();
           glDisable(GL_TEXTURE_2D);
}

 

作者:洞庭散人

出處:http://phinecos.cnblogs.com/    

本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁(yè)面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。
原文鏈接:http://www.cnblogs.com/phinecos/archive/2008/11/07/1328887.html
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲黄色小视频| 亚洲精品欧洲| 欧美有码在线视频| 久久天天躁狠狠躁夜夜av| 激情综合视频| 欧美大片在线观看一区| 亚洲乱码一区二区| 欧美在线影院| 激情五月***国产精品| 欧美成人激情在线| 亚洲视频专区在线| 久久国产欧美精品| 亚洲国产精品专区久久| 欧美日韩在线视频一区| 亚洲欧美中文日韩在线| 欧美成人蜜桃| 亚洲一区二区三区免费在线观看| 国产精品一区免费观看| 久久久久综合一区二区三区| 亚洲精华国产欧美| 亚洲欧美综合| 亚洲国产美女久久久久| 国产精品高潮呻吟久久av无限 | 欧美黄色一区二区| 亚洲图片欧美一区| 狠狠色丁香久久婷婷综合_中| 欧美激情在线免费观看| 亚洲欧美日韩天堂| 91久久精品美女| 欧美一区二区三区四区高清 | 99精品国产福利在线观看免费| 国产精品久久久久久久久免费| 久久精品日产第一区二区| 亚洲乱码精品一二三四区日韩在线| 欧美在线亚洲一区| 一区二区三区日韩在线观看| 精品动漫3d一区二区三区| 欧美特黄一区| 欧美成ee人免费视频| 亚洲综合色婷婷| 亚洲精品一区二区在线观看| 美女精品在线观看| 欧美在线三级| 中国av一区| 亚洲欧洲精品一区二区三区波多野1战4 | 日韩一区二区精品视频| 免费久久99精品国产自在现线| 亚洲欧美在线观看| 99精品国产一区二区青青牛奶| 极品少妇一区二区三区| 国产精品麻豆成人av电影艾秋| 欧美成人性生活| 久久午夜精品一区二区| 香蕉久久精品日日躁夜夜躁| 亚洲午夜免费视频| 日韩视频―中文字幕| 欧美激情中文字幕乱码免费| 久久亚洲二区| 久久久久99精品国产片| 西西人体一区二区| 先锋亚洲精品| 亚洲欧美一区二区激情| 亚洲性感美女99在线| 日韩写真视频在线观看| 亚洲精品永久免费精品| 最新国产成人在线观看| 亚洲国产清纯| 亚洲精品视频中文字幕| 亚洲激情网站| 亚洲日本va午夜在线电影| 亚洲黄色视屏| 亚洲人体一区| 夜夜嗨av一区二区三区网站四季av | 亚洲人成在线播放| 亚洲精品日韩在线观看| 亚洲毛片在线| 夜夜精品视频一区二区| 一本高清dvd不卡在线观看| 亚洲免费成人| 正在播放亚洲一区| 亚洲欧美日韩视频一区| 欧美一区二区三区久久精品茉莉花| 亚洲一区二区在线免费观看视频| 亚洲无线视频| 午夜精品视频网站| 久久久久久久久久久一区| 久久综合网络一区二区| 欧美成人一区二区| 亚洲国产视频直播| 99热精品在线| 欧美一级黄色网| 久久久久九九视频| 欧美极品在线播放| 国产精品国产三级国产普通话蜜臀 | 欧美在线观看你懂的| 欧美成人免费在线视频| 亚洲第一中文字幕| 亚洲精品乱码视频| 亚洲一区二区黄| 欧美一区二区免费观在线| 欧美一区在线视频| 蜜桃伊人久久| 国产精品国产精品| 在线观看欧美激情| 亚洲小少妇裸体bbw| 久久久99久久精品女同性| 欧美大片免费久久精品三p | 欧美高清影院| 亚洲免费观看| 欧美一区二区在线| 欧美国产第二页| 国产精品亚洲人在线观看| 亚洲国产精品成人va在线观看| 在线一区二区三区四区| 久久精品在线播放| 亚洲久久一区二区| 久久精品国产在热久久| 欧美日韩色一区| 黄色精品一区二区| 亚洲一本视频| 欧美freesex交免费视频| 一二美女精品欧洲| 狂野欧美激情性xxxx欧美| 国产精品久久精品日日| 亚洲欧洲一二三| 久久精品国亚洲| 一区二区三区鲁丝不卡| 毛片基地黄久久久久久天堂| 国产精品免费电影| 一本色道**综合亚洲精品蜜桃冫 | 国产乱人伦精品一区二区 | 久久久久久网| 一区二区三区欧美激情| 蜜桃伊人久久| 影视先锋久久| 欧美一站二站| 妖精视频成人观看www| 欧美成人小视频| 黄色国产精品| 久久精品国产欧美激情| 一本一本a久久| 欧美久久久久久| 亚洲理伦电影| 亚洲国产成人午夜在线一区| 久久国产精品网站| 国产精品一区久久久久| 亚洲一区久久| 亚洲精品欧美| 久久一区免费| 一区二区在线看| 久久精品国产免费| 午夜久久一区| 国产精品一区免费在线观看| 亚洲午夜电影在线观看| 亚洲三级电影全部在线观看高清| 久久综合国产精品台湾中文娱乐网| 国产一级久久| 久久精品国语| 欧美在线视屏| 国内不卡一区二区三区| 久久精品观看| 亚欧美中日韩视频| 国语自产偷拍精品视频偷 | 亚洲激情影院| 欧美国产极速在线| 欧美v国产在线一区二区三区| 亚洲电影自拍| 亚洲高清一二三区| 欧美国产亚洲视频| 艳妇臀荡乳欲伦亚洲一区| 亚洲精品一区二区三区99| 欧美日韩精品系列| 亚洲欧美日韩精品久久亚洲区 | 99国内精品| 国产精品成人免费| 午夜精品美女自拍福到在线 | 久久夜色精品亚洲噜噜国产mv| 欧美尤物一区| 91久久久久| 99视频日韩| 国产日韩综合| 欧美二区不卡| 欧美日韩国产亚洲一区| 亚洲欧美日本在线| 欧美亚洲日本一区| 亚洲黄色一区二区三区| 亚洲激情在线观看视频免费| 欧美日韩精品一区二区三区| 亚洲欧美日韩国产| 久久久久天天天天| 亚洲理论在线观看| 亚洲一区二区三区视频播放| 国产亚洲精品bt天堂精选| 欧美电影在线观看| 国产精品家教| 免费成人美女女| 欧美日韩一区二区三区在线| 久久国产精品99国产精| 农夫在线精品视频免费观看| 亚洲综合精品四区|