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

            實(shí)時(shí)陰影繪制技術(shù)研究

            C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
              48 Posts :: 20 Stories :: 57 Comments :: 0 Trackbacks

            因?yàn)橐鵱sg中填加shader框架,所以從昨天開始著手學(xué)習(xí)cg,上午跟lzd問了一下傳參的問題,發(fā)現(xiàn)了glColor設(shè)置的顏色其實(shí)只對(duì)COLOR的語義變量起作用,那DIFFUSE和SPECULAR的就不好使了,所以每次都要set一下parameter.

            下邊是我看到的cg使用的流程。


            cg 使用流程:

            1. #ifdef __APPLE__

            static CGprofile VertexProfile = CG_PROFILE_ARBVP1;

            #else

            static CGprofile VertexProfile = CG_PROFILE_VP20;

            #endif

            1. CGContext context = cgCreateContext() ;
            2. CGProgram VertexProgram = cgCreateProgramFromFile(Context,CG_SOURCE, "vertexShader.cg",VertexProfile,NULL, NULL );
            3. if(VertexProgram != NULL)

            {

            /* Vertex shader only needs to be loaded once */

            cgGLLoadProgram(VertexProgram);

            /* Bind parameters to give access to variables in the shader */

            KdParam = cgGetNamedParameter(VertexProgram, "Kd");

            ModelViewProjParam = cgGetNamedParameter(VertexProgram, "ModelViewProj");

            VertexColorParam = cgGetNamedParameter(VertexProgram, "IN.VertexColor");

            }

            1. // 上邊做一次初始化工作即可,下邊是每次循環(huán)要用到的
            2. cgGLBindProgram(VertexProgram);
            3. if(KdParam != NULL)

            cgGLSetParameter4f(KdParam, 1.0, 1.0, 0.0, 1.0);

            if(ModelViewProjParam != NULL)

            cgGLSetStateMatrixParameter(ModelViewProjParam,CG_GL_MODELVIEW_PROJECTION_MATRIX,CG_GL_MATRIX_IDENTITY);

            1. cgGLEnableProfile(VertexProfile);
            2. glBegin(GL_QUADS);

            {

            glNormal3fv(&CubeNormals[i][0]);

            cgGLSetParameter3f(VertexColorParam, 1.0, 0.0, 0.0);

            glVertex3fv(&CubeVertices[CubeFaces[i][0]][0]);

            cgGLSetParameter3f(VertexColorParam, 0.0, 1.0, 0.0);

            glVertex3fv(&CubeVertices[CubeFaces[i][1]][0]);

            cgGLSetParameter3f(VertexColorParam, 0.0, 0.0, 1.0);

            glVertex3fv(&CubeVertices[CubeFaces[i][2]][0]);

            cgGLSetParameter3f(VertexColorParam, 1.0, 1.0, 1.0);

            glVertex3fv(&CubeVertices[CubeFaces[i][3]][0]);

            }

            glEnd();

            1. cgGLDisableProfile(VertexProfile);

            // 后邊是收尾工作

            1. cgDestroyProgram(vertexProgram)
            2. cgDestroyContext(context);

            ?

            posted on 2006-04-20 01:43 苦行僧 閱讀(2091) 評(píng)論(0)  編輯 收藏 引用 所屬分類: graphic
            午夜天堂av天堂久久久| 久久精品桃花综合| 久久精品亚洲AV久久久无码| 91麻豆精品国产91久久久久久| 久久久久人妻一区精品色| 亚洲中文字幕久久精品无码喷水 | 国产99久久久久久免费看| 久久精品国产亚洲av水果派| 少妇内射兰兰久久| 麻豆AV一区二区三区久久| 91精品国产综合久久婷婷| 丰满少妇人妻久久久久久| 久久久久AV综合网成人| 欧美亚洲另类久久综合| 久久AAAA片一区二区| 热综合一本伊人久久精品| 久久久久亚洲AV成人网人人网站| 亚洲国产精品无码久久久蜜芽| 久久午夜羞羞影院免费观看| 26uuu久久五月天| 一本色道久久88综合日韩精品| AV无码久久久久不卡蜜桃| 国产美女久久精品香蕉69| 欧美一区二区精品久久| 亚洲va久久久久| 久久99中文字幕久久| 一级a性色生活片久久无少妇一级婬片免费放 | 久久天天躁狠狠躁夜夜2020老熟妇| 久久这里只精品99re66| 国产产无码乱码精品久久鸭| 久久青青草原精品国产不卡| 亚洲愉拍99热成人精品热久久| 久久久久久免费一区二区三区| 一97日本道伊人久久综合影院| 97热久久免费频精品99| 国产精品亚洲综合久久| 国产精品久久久久久久午夜片| 亚洲av日韩精品久久久久久a| 久久国产免费| 亚洲国产成人久久精品动漫| 伊人久久大香线蕉亚洲|