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

            不斷的學(xué)習(xí),不斷的思考,才能不斷的進(jìn)步.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 閱讀(150) 評論(0)  編輯 收藏 引用 所屬分類: MFC,OpenGL
                 OpenGL支持兩種顏色模式:RGBA和顏色索引模式,本文關(guān)注于前者。

            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. 

            一個(gè)簡單Demo

            1,CCY457OpenGLView.h中加入如下旋轉(zhuǎn)控制變量:

                 GLfloat m_xRot, m_yRot;//繞x,y軸旋轉(zhuǎn)的角度,隨時(shí)間不斷變化

             并在構(gòu)造函數(shù)中初始化:

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

            2,在OnTimer函數(shù)中,修改繞x,y軸旋轉(zhuǎn)的角度值

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

            3,加入兩個(gè)菜單項(xiàng),控制OpenGL的渲染模式

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

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

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

            void CCY457OpenGLView::RenderScene ()
            {
            //繪制函數(shù)
                    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/    

            本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。
            原文鏈接:http://www.cnblogs.com/phinecos/archive/2008/11/05/1327571.html
            国产福利电影一区二区三区久久老子无码午夜伦不 | 欧美精品福利视频一区二区三区久久久精品 | 日韩精品久久久久久| 久久精品国内一区二区三区| 国产99久久久国产精品~~牛| 久久精品国产精品亚洲人人| 一级a性色生活片久久无少妇一级婬片免费放 | 一级女性全黄久久生活片免费| 漂亮人妻被黑人久久精品| 99久久亚洲综合精品网站| 香蕉久久久久久狠狠色| 人人狠狠综合久久88成人| 国产精品九九久久免费视频 | 精品熟女少妇aⅴ免费久久| 亚洲精品综合久久| 97久久国产亚洲精品超碰热 | 无码8090精品久久一区| 亚洲AV无码1区2区久久| 欧美久久亚洲精品| 久久香蕉综合色一综合色88| 伊人久久无码中文字幕| 久久人搡人人玩人妻精品首页| 精品国产乱码久久久久久郑州公司 | 国产精品亚洲综合久久| 青青青国产精品国产精品久久久久| 精品熟女少妇AV免费久久 | 久久久久久久综合狠狠综合| 色综合久久中文色婷婷| 免费国产99久久久香蕉| 精品久久久久久国产潘金莲| 日产精品99久久久久久| 久久久久人妻一区精品色 | 国产综合久久久久久鬼色| 亚洲欧洲中文日韩久久AV乱码| 国产精品日韩深夜福利久久| 日本一区精品久久久久影院| 国产精久久一区二区三区| 国产激情久久久久影院老熟女免费 | 久久精品国产69国产精品亚洲| 久久精品国产精品亚洲毛片| 久久久久久久久久久久中文字幕 |