• <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
            狠狠色婷婷综合天天久久丁香| 久久久久久免费一区二区三区| 日本亚洲色大成网站WWW久久| 久久久噜噜噜久久| 伊人久久大香线焦AV综合影院| 99久久成人国产精品免费 | 久久亚洲电影| 777午夜精品久久av蜜臀 | 久久国产视频网| 777午夜精品久久av蜜臀| 久久不射电影网| 久久久久亚洲AV片无码下载蜜桃| 国产午夜福利精品久久2021| 久久精品中文字幕第23页| 午夜精品久久久久久毛片| 草草久久久无码国产专区| 日韩精品久久久久久免费| 久久久久久毛片免费看| 91精品国产高清久久久久久io| 亚洲?V乱码久久精品蜜桃 | 99久久精品国产一区二区蜜芽| 久久久久久久波多野结衣高潮| 91久久精品无码一区二区毛片| 久久精品成人欧美大片| 亚洲&#228;v永久无码精品天堂久久 | 99热精品久久只有精品| 国内高清久久久久久| 人妻无码精品久久亚瑟影视| 99久久www免费人成精品| 国产一级做a爰片久久毛片| 精产国品久久一二三产区区别 | 久久精品aⅴ无码中文字字幕不卡 久久精品aⅴ无码中文字字幕重口 | 亚洲精品无码久久久久AV麻豆| 久久综合久久综合久久| 波多野结衣中文字幕久久| 五月丁香综合激情六月久久| 久久精品国产99久久久古代| 思思久久精品在热线热| 国产精品久久久久久久人人看| 亚洲午夜福利精品久久 | 成人综合伊人五月婷久久|