• <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 閱讀(146) 評論(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
            亚洲第一极品精品无码久久| 久久亚洲国产精品成人AV秋霞| 亚洲伊人久久精品影院| 久久精品麻豆日日躁夜夜躁| 久久精品国产免费一区| 久久综合久久久| 久久亚洲精品国产精品婷婷| www.久久精品| 伊人久久大香线蕉无码麻豆| 久久久久高潮毛片免费全部播放| 91精品久久久久久无码| 伊人久久大香线蕉亚洲| 国产福利电影一区二区三区久久老子无码午夜伦不 | 亚洲国产精品久久| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 狠狠久久综合伊人不卡| 国内精品久久久久影院薰衣草| 国产精品久久久久jk制服| 蜜桃麻豆WWW久久囤产精品| 国产亚洲欧美成人久久片| 欧美午夜精品久久久久久浪潮| 国产精品久久久久久| 亚洲午夜久久久久久噜噜噜| 天堂无码久久综合东京热| 94久久国产乱子伦精品免费| 久久精品99久久香蕉国产色戒 | 青青久久精品国产免费看| 99国产精品久久| 亚洲AV日韩精品久久久久久久| 一本大道久久香蕉成人网| 久久久久国产一区二区| 精品久久综合1区2区3区激情| 潮喷大喷水系列无码久久精品| 亚洲AV无一区二区三区久久| 无码人妻久久一区二区三区免费| 久久人人爽人人爽人人爽| 午夜精品久久久久久影视777 | 久久久国产精品| 无码乱码观看精品久久| 香蕉aa三级久久毛片| 久久精品国产99久久久古代 |