青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

黎明的剔透里伸出了你沁清的曖昧

Graphics|EngineDev|GameDev|2D&3D Art

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  60 隨筆 :: 1 文章 :: 18 評論 :: 0 Trackbacks
 
方向光:Directional Light 只具有方向和顏色屬性的光源,常用來模擬太陽



方向光的計算只與頂點法線和光源放方向有關,其光照的結果是頂點法線與入射角形成的夾角的cos值*光源強度
 1void CalculateDirectionalLight (Vertex_PCN *pVertices, int num_vertices){
 2     for(int i=0;i<num_vertices;i++){
 3         //求出轉換后在世界坐標系的頂點法線;
 4         Vector4 vNormal= g_world_matrix.RotateVector (pVertices[i].m_normal );
 5         Vector4 vIntensity=Vector3Dot(vNormal,g_vLightDirection);//頂點法線和光線方向的夾角,決定反射光的強度
 6        // `累加上計算出來方向光的強度`
 7        pVertices[i].m_color += vIntensity * g_vLightColor;
 8    
 9     }

10}

對一個四邊形定義頂點位置 ,頂點顏色 頂點法線
定義方向光源,光源顏色,
渲染一個四邊形,光源只對其兩個頂點照射:



點光源:point light具有位置和顏色的屬性,它在空間中占據一個點,并向四面八方散射,光線照射到某個物體后,反射光的強度與物體表面的法線和入射光線的夾角有關,這一點和方向光淚水,不同的是,因為點光源具有位置屬性,所以光線達到每個頂點的方向與距離不同,并且它還會光源隨著物體的距離增大而衰減,
 1//計算點光源,只與頂點位置,頂點法線以及光源位置有關
 2void CalculatePointLight (Vertex_PCN *pVertices, int num_vertices){
 3     float fSpotLightCutoffCos=FastMath::Cos (FastMath::DegreeToRadian (g_fSpotLightCutoff));
 4     for(int i=0;i<num_vertices;i++){
 5         Vector4 vPosition=pVertices[i].m_position *g_world_matrix;
 6         Vector4 vNormal=g_world_matrix.RotateVector (pVertices[i].m_normal );
 7         Vector4 vVertex_to_Light=g_vLightPosition-vPosition;
 8         float light_distance=vVertex_to_Light.NormalizeAndGetLength ();
 9         Vector4 vDistance(1.0,light_distance,light_distance*light_distance);
10         Vector4 vAttenuation=Vector3Dot(vDistance,g_vLightAttenuation);
11         Vector4 vIntensity=Vector3Dot(vNormal,vVertex_to_Light);
12         pVertices[i].m_color +=vIntensity*g_vLightColor/vAttenuation;
13     }

14}


取四邊形的一個頂點位置 法線 顏色參與點光源的照射:



使用OpenGL自己定義的函數可以實現方向光,點光源以及聚光燈

 

//方向光參數light0
  float vDirection[4]={0.0f1.0f0.0f0.0f};//w=0,表示平行光
  float vDirAmbientColor[4]={0.0f0.0f0.0f1.0f};
  
float vDirDiffuseColor[4]={1.0f0.0f0.0f1.0f};

     
//點光源參數Light1
  float vPointPosition[4]={0.0f,3.0f-5.0f1.0f};//w=1表示點光源
  float vPoiAmbientColor[4]={0.0f0.0f0.0f1.0f};
  
float vPoiDiffuseColor[4]={0.0f1.0f0.0f1.0f};
  
float vPoiAttenuation[4]={2.0f1.0f0.5f};
     
   
//聚光燈參數Light2
  float vSpotPoint[4]={0.0f10.0f0.0f1.0f};//w=1
  float vSpotDirection[4]={0.0f0.0f,-1.0f0.0f};
  
float vSpotAmbientColor[4]={0.0f0.0f0.0f1.0f};
  
float vSpotDiffuseColor[4]={0.0f0.0f1.0f1.0f};
  
float vSpotAttenuationg[4]={1.0f1.0f0.0f};
  
float mfSpotLightCutoff=20;
  
float mfSpotLightExponent=5;

方向光:

void Light::SetDirectionLight() {
        glEnable(GL_LIGHTING);
        glEnable(GL_LIGHT0);
        glLightfv(GL_LIGHT0, GL_POSITION, vDirection);
}
 

點光源:

 

void Light::SetPointLight (){
           glEnable(GL_LIGHTING);
        glEnable(GL_LIGHT0);
        
// `光源位置`
        glLightfv(GL_LIGHT0, GL_POSITION, vPointPosition);
                
// `隨距離的衰減值 `
                
// 1/(CONSTANT + LINEAR*d + QUADRATIC*d^2) `公式中的CONSTANT,LINEAR,QUADRATIC值`
                glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION,    vPoiAttenuation[0]);
                glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION,    vPoiAttenuation[
1]);
                glLightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION,vPoiAttenuation[
2]);

}

聚光燈:

void Light::SetSpotLight (){
       glEnable(GL_LIGHTING);
       glEnable(GL_LIGHT0);
         
// `光源位置`
        glLightfv(GL_LIGHT0, GL_POSITION, vSpotPoint);
        
// `隨距離的衰減值`
        
// 1/(CONSTANT + LINEAR*d + QUADRATIC*d^2) `公式中的CONSTANT, LINEAR, QUADRATIC值`
        glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION,  vSpotAttenuationg[0]);
        glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION,      vSpotAttenuationg[
1]);
        glLightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, vSpotAttenuationg[
2]);
        
// `光柱的方向`
        glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, vSpotDirection);
        
// `光柱圓錐的一半角度`
        glLightf(GL_LIGHT2, GL_SPOT_CUTOFF, mfSpotLightCutoff);
        
// `光柱圓錐的角度衰減`
        glLightf(GL_LIGHT0, GL_SPOT_EXPONENT, mfSpotLightExponent);
        
);

}


 

 











posted on 2012-02-10 14:51 情絕格調(fresmaster) 閱讀(680) 評論(0)  編輯 收藏 引用 所屬分類: Graphics
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲欧美亚洲| 榴莲视频成人在线观看| 国产拍揄自揄精品视频麻豆| 欧美日韩在线播放一区| 欧美视频网址| 国产欧美日韩亚洲精品| 影音先锋久久久| 亚洲精品美女久久7777777| 99re66热这里只有精品3直播| 亚洲午夜激情网页| 久久国产精品一区二区| 免费久久99精品国产自| 亚洲人成艺术| 亚洲人成人77777线观看| 99视频国产精品免费观看| 亚洲制服丝袜在线| 久久综合成人精品亚洲另类欧美| 欧美高清视频| 国产欧美精品在线| 亚洲黄色天堂| 午夜精品久久久久久久久久久| 一本色道久久88精品综合| 欧美激情a∨在线视频播放| 亚洲美女黄色| 久久精品国产精品亚洲综合 | 亚洲乱码国产乱码精品精可以看 | 一区二区欧美在线| 久久久五月婷婷| 国产精品美女久久久久久2018 | 国产精品国产三级国产专播品爱网 | 久久爱www.| 欧美日韩一二三四五区| 在线观看久久av| 欧美一区二区视频网站| 亚洲精品看片| 免费精品99久久国产综合精品| 国产精品进线69影院| 亚洲人成网站在线播| 久久女同互慰一区二区三区| 亚洲调教视频在线观看| 欧美韩日一区二区三区| 亚洲第一狼人社区| 久久视频在线视频| 亚洲欧美文学| 国产精品久久久久秋霞鲁丝| 亚洲视频一区二区| 亚洲人成在线观看一区二区| 久久综合伊人77777麻豆| 国产综合色精品一区二区三区| 亚洲天天影视| 日韩一级网站| 欧美视频一区在线观看| 一本色道**综合亚洲精品蜜桃冫 | 国产精品国产精品| 亚洲一区综合| 欧美色图首页| 国产精品99久久久久久人 | 亚洲人成在线观看网站高清| 免费观看成人| 亚洲人人精品| 亚洲乱码精品一二三四区日韩在线| 麻豆av一区二区三区| 伊人天天综合| 亚洲国产精品一区| 亚洲精品少妇30p| 久久久精品午夜少妇| 中文日韩在线| 国产精品一区免费视频| 午夜在线一区二区| 午夜精品福利在线观看| 狠狠入ady亚洲精品| 欧美jizz19性欧美| 国产亚洲视频在线| 亚洲校园激情| 亚洲一区二区免费| 国内精品模特av私拍在线观看| 久久天天躁夜夜躁狠狠躁2022| 久久久久免费观看| 亚洲伦理自拍| 亚洲天堂免费观看| 影音先锋欧美精品| 亚洲精品视频在线观看免费| 国产精品毛片a∨一区二区三区| 欧美一区二区三区久久精品| 久久精品系列| 亚洲最快最全在线视频| 亚洲欧美日本视频在线观看| 亚洲第一精品影视| av不卡在线| 影音先锋国产精品| 亚洲视频欧洲视频| 亚洲国产精品一区二区第一页 | 欧美成人免费大片| 欧美特黄一区| 乱中年女人伦av一区二区| 欧美好吊妞视频| 亚洲欧美日韩一区| 麻豆成人在线播放| 午夜精品一区二区三区在线播放 | 亚洲网站啪啪| 久久嫩草精品久久久久| 一区二区三区日韩在线观看| 久久国产福利| 亚洲综合999| 欧美成人精品影院| 欧美影院在线| 欧美日韩一区二区精品| 鲁大师影院一区二区三区| 国产精品99一区| 亚洲第一伊人| 黄色亚洲网站| 午夜精品久久久久久久99樱桃 | 蜜臀a∨国产成人精品| 国产精品进线69影院| 亚洲国产精品久久久久婷婷老年| 国产精品自拍在线| 亚洲精品免费在线播放| 在线观看日韩av电影| 午夜精彩视频在线观看不卡 | 国产欧美一区二区三区在线老狼 | 欧美日韩亚洲国产一区| 欧美在线播放一区二区| 欧美日韩精品欧美日韩精品一| 久久综合九色99| 国产片一区二区| 亚洲欧美日本国产专区一区| 亚洲一区在线免费观看| 欧美日韩在线观看一区二区| 亚洲人成亚洲人成在线观看| 亚洲精品国偷自产在线99热| 麻豆国产精品777777在线| 久久精品一二三区| 国产欧美精品xxxx另类| 亚洲私人影吧| 亚洲女人天堂成人av在线| 欧美肉体xxxx裸体137大胆| 亚洲精选中文字幕| 中文在线资源观看网站视频免费不卡 | 亚洲第一区在线观看| 久久久久成人精品| 久久久蜜桃精品| 一区二区亚洲欧洲国产日韩| 久久国产精品99国产精| 久久综合九色综合欧美就去吻| 国产亚洲午夜| 久久综合导航| 亚洲精品欧美在线| 亚洲欧美大片| 国内一区二区三区在线视频| 久久久久久亚洲精品中文字幕| 欧美高清一区| 99xxxx成人网| 国产精品福利在线| 欧美一区二区三区啪啪| 美女久久一区| 99在线精品免费视频九九视| 国产精品乱码人人做人人爱| 久久黄色影院| 亚洲精品老司机| 久久精品30| 亚洲国产精品va在线观看黑人| 欧美精品久久99| 亚洲午夜久久久久久尤物| 久久久国产精彩视频美女艺术照福利| 在线免费高清一区二区三区| 欧美日韩另类在线| 亚洲欧美日韩直播| 欧美成人综合在线| 亚洲在线播放| 亚洲国产精品成人va在线观看| 欧美连裤袜在线视频| 欧美一区二区三区男人的天堂| 亚洲黄色视屏| 久久久久久亚洲精品中文字幕| 99精品视频网| 激情综合色综合久久综合| 亚洲成色777777女色窝| 极品少妇一区二区| 欧美日韩精品一区二区在线播放 | 亚洲人成在线免费观看| 亚洲欧美国产精品va在线观看| 国产在线日韩| 欧美激情精品久久久六区热门 | 欧美激情一区二区三区蜜桃视频 | 久久综合久久久久88| 一区二区三区www| 精品不卡视频| 国产精品一区免费在线观看| 欧美高清在线播放| 欧美一区二视频| 99精品国产热久久91蜜凸| 狂野欧美激情性xxxx| 亚洲欧美怡红院| av成人国产| 日韩视频中文字幕| 亚洲国产专区| 一区二区三区中文在线观看 | 亚洲一区二区精品视频| 亚洲激情黄色| 揄拍成人国产精品视频|