• <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>

            Shuffy

            不斷的學習,不斷的思考,才能不斷的進步.Let's do better together!
            posts - 102, comments - 43, trackbacks - 0, articles - 19

            《基于MFC的OpenGL編程》Part 8 Colors

            Posted on 2010-03-31 20:35 Shuffy 閱讀(155) 評論(0)  編輯 收藏 引用 所屬分類: MFC,OpenGL
                 OpenGL支持兩種顏色模式:RGBA和顏色索引模式,本文關注于前者。

            Smooth Shading and Flat Shading  

            When Smooth Shading is specified, the color values are interpolated between vertices. If Flat Shading is specified, one vertex is selected as being representative of all the vertices, thus the entire primitive is displayed using one single color. 

            一個簡單Demo

            1,CCY457OpenGLView.h中加入如下旋轉控制變量:

                 GLfloat m_xRot, m_yRot;//繞x,y軸旋轉的角度,隨時間不斷變化

             并在構造函數中初始化:

            CCY457OpenGLView::CCY457OpenGLView()
            {
                m_xRot 
            = 0.0f;
                m_yRot 
            = 0.0f;
            }

            2,在OnTimer函數中,修改繞x,y軸旋轉的角度值

            void CCY457OpenGLView::OnTimer(UINT nIDEvent) 
            {
                m_xRot 
            = m_xRot + 0.5f;
                m_yRot 
            = m_yRot + 0.5f;
                InvalidateRect(NULL, FALSE);    
                CView::OnTimer(nIDEvent);
            }

            3,加入兩個菜單項,控制OpenGL的渲染模式

            void CCY457OpenGLView::OnShadingmodelSmooth() 
            {
                glShadeModel(GL_SMOOTH);
                InvalidateRect(NULL,FALSE);
            }

            void CCY457OpenGLView::OnShadingmodelFlat() 
            {
                glShadeModel(GL_FLAT);
                InvalidateRect(NULL,FALSE);
            }

            4,在RenderScene中加入繪制代碼:

            void CCY457OpenGLView::RenderScene ()
            {
            //繪制函數
                    glTranslatef(0.0f,0.0f,-5.0f);
                    glRotatef(m_xRot,
            1.0f,0.0f,0.0f);
                    glRotatef(m_yRot,
            0.0f,1.0f,0.0f);
                    
            //Front Face
                    glBegin(GL_POLYGON);
                        glColor3f(
            1.0f,0.0f,0.0f);
                        glVertex3f(
            -1.0f,-1.0f,0.0f);
                        glColor3f(
            1.0f,1.0f,0.0f);
                        glVertex3f( 
            1.0f,-1.0f,0.0f);
                        glColor3f(
            1.0f,0.0f,1.0f);
                        glVertex3f( 
            1.0f1.0f,0.0f);
                        glColor3f(
            1.0f,1.0f,1.0f);
                        glVertex3f(
            -1.0f1.0f,0.0f);
                    glEnd();
                    glColor3f(
            1.0f,1.0f,0.0f);
                    
            //Back Face
                    glBegin(GL_POLYGON);
                        glVertex3f(
            -1.0f,-1.0f,-1.0f);
                        glVertex3f(
            -1.0f1.0f,-1.0f);
                        glVertex3f( 
            1.0f1.0f,-1.0f);
                        glVertex3f( 
            1.0f,-1.0f,-1.0f);
                    glEnd();
                    glColor3f(
            1.0f,0.0f,1.0f);
                    
            //Left Face
                    glBegin(GL_POLYGON);
                        glVertex3f(
            -1.0f,-1.0f0.0f);
                        glVertex3f(
            -1.0f1.0f0.0f);
                        glVertex3f(
            -1.0f1.0f,-1.0f);
                        glVertex3f(
            -1.0f,-1.0f,-1.0f);
                    glEnd();
                    glColor3f(
            0.0f,1.0f,0.0f);
                    
            //Right Face
                    glBegin(GL_POLYGON);
                        glVertex3f(
            1.0f,-1.0f0.0f);
                        glVertex3f(
            1.0f,-1.0f,-1.0f);
                        glVertex3f(
            1.0f1.0f,-1.0f);
                        glVertex3f(
            1.0f1.0f0.0f);
                    glEnd();
                    glColor3f(
            0.0f,1.0f,1.0f);
                    
            //Top Face
                    glBegin(GL_POLYGON);
                        glVertex3f(
            -1.0f1.0f,  0.0f);
                        glVertex3f( 
            1.0f1.0f,  0.0f);
                        glVertex3f( 
            1.0f1.0f-1.0f);
                        glVertex3f(
            -1.0f1.0f-1.0f);
                    glEnd();
                    glColor3f(
            0.0f,0.0f,1.0f);
                    
            //Botton Face
                    glBegin(GL_POLYGON);
                        glVertex3f(
            -1.0f-1.0f,  0.0f);
                        glVertex3f(
            -1.0f-1.0f-1.0f);
                        glVertex3f( 
            1.0f-1.0f-1.0f);
                        glVertex3f( 
            1.0f-1.0f,  0.0f);
                    glEnd();
            }

             

            作者:洞庭散人

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

            本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
            原文鏈接:http://www.cnblogs.com/phinecos/archive/2008/11/05/1327571.html
            国产美女久久精品香蕉69| 久久亚洲中文字幕精品有坂深雪| 91性高湖久久久久| 久久精品国产国产精品四凭| 久久夜色撩人精品国产小说| 亚洲αv久久久噜噜噜噜噜| 久久免费视频网站| 久久人人爽人人爽人人片AV高清| 久久精品午夜一区二区福利| 手机看片久久高清国产日韩| 99国产精品久久| 日韩精品久久久久久久电影蜜臀| 久久国产美女免费观看精品| 国产三级久久久精品麻豆三级| 久久综合偷偷噜噜噜色| 91精品国产91热久久久久福利| 久久久久久久久久久精品尤物| 久久久久久久综合综合狠狠| 国产成年无码久久久久毛片| 成人综合久久精品色婷婷| 久久精品国产亚洲7777| 91久久婷婷国产综合精品青草| 婷婷五月深深久久精品| 国产免费久久精品99re丫y| 久久精品成人| 国产精品九九久久精品女同亚洲欧美日韩综合区 | 久久久精品国产亚洲成人满18免费网站| 伊人色综合久久天天人手人婷| 久久久99精品成人片中文字幕 | 久久精品视频网| 亚洲一区中文字幕久久| 欧美综合天天夜夜久久| 狠色狠色狠狠色综合久久| 久久精品黄AA片一区二区三区| 日本久久久久亚洲中字幕| 久久丫精品国产亚洲av不卡| 亚洲国产精品无码久久久不卡 | 99久久国产亚洲综合精品| 怡红院日本一道日本久久 | 久久夜色tv网站| 国产ww久久久久久久久久|