• <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 閱讀(151) 評(píng)論(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è)簡(jiǎn)單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)作者同意必須保留此段聲明,且在文章頁(yè)面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。
            原文鏈接:http://www.cnblogs.com/phinecos/archive/2008/11/05/1327571.html
            久久97久久97精品免视看秋霞| 国内精品人妻无码久久久影院导航| 久久久久亚洲AV无码永不| 亚洲va久久久噜噜噜久久狠狠| 久久国产精品成人影院| 97超级碰碰碰碰久久久久| 亚洲va久久久久| 亚洲国产精品热久久| 久久亚洲精品成人无码网站| 国产精品美女久久久久久2018| 精品99久久aaa一级毛片| 久久亚洲精精品中文字幕| 久久国产精品视频| 久久精品亚洲精品国产色婷| 欧美国产精品久久高清| 国产精品一久久香蕉国产线看 | 国产69精品久久久久APP下载 | 久久精品国产精品亚洲艾草网美妙| 无码任你躁久久久久久久| 国产成人精品免费久久久久| 香蕉久久永久视频| 久久免费线看线看| 久久精品国产亚洲av日韩| 一本一本久久a久久精品综合麻豆| 久久成人国产精品二三区| 少妇久久久久久被弄高潮| 一个色综合久久| 午夜精品久久影院蜜桃| 热综合一本伊人久久精品 | 色综合久久中文字幕无码 | 亚洲人成无码久久电影网站| 久久99精品久久久久久9蜜桃| 久久精品草草草| 色综合久久中文字幕综合网| 久久伊人精品青青草原高清| 久久国产欧美日韩精品| 国产婷婷成人久久Av免费高清 | 欧美粉嫩小泬久久久久久久 | 欧美国产成人久久精品| 久久国产综合精品五月天| 国产精品狼人久久久久影院|