欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

基于Qt的OpenGL可編程管線學(xué)習(xí)(8)-探照燈-創(chuàng)新互聯(lián)

關(guān)于探照燈的效果如下圖所示:

成都創(chuàng)新互聯(lián)公司制作網(wǎng)站網(wǎng)頁(yè)找三站合一網(wǎng)站制作公司,專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì),網(wǎng)站設(shè)計(jì),企業(yè)網(wǎng)站搭建,網(wǎng)站開(kāi)發(fā),建網(wǎng)站業(yè)務(wù),680元做網(wǎng)站,已為成百上千家服務(wù),成都創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)將一如既往的為我們的客戶提供最優(yōu)質(zhì)的網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣服務(wù)!

基于Qt的OpenGL可編程管線學(xué)習(xí)(8)- 探照燈

基于Qt的OpenGL可編程管線學(xué)習(xí)(8)- 探照燈

探照燈需要傳入光源的位置,光源的方向以及夾角的大小(夾角為光源覆蓋的夾角的一半)

計(jì)算思路:

用光源到點(diǎn)的距離與光源的方向的單位向量做點(diǎn)乘,得到夾角的cos,用計(jì)算的夾角cos與

傳入的角度的cos做比較,確定光線照射的范圍。邊緣不部分計(jì)算的cos做基底,然后給定一個(gè)冪,

就可以做到漸變的效果;探照燈的計(jì)算時(shí)也要算上衰減

Shader中的相關(guān)代碼如下:

vec3 light = M_LightPos.xyz;
float distanceLight = 0.0;      // 距離光源的距離
float attenuation = 1.0;         // 衰減系數(shù)

// 衰減因子
float constantFactor = 0.9;           // 常亮衰減常數(shù)
float linerFactor = 0.0;                 //  線性衰減系數(shù)
float expFactor = 0.0;                  //  平方衰減系數(shù)
// 點(diǎn)光源
if (M_LightPos.w != 0.0)
{
    light = M_LightPos.xyz - M_WordPos;
    distanceLight = length(light);
    attenuation = 1.0 / (constantFactor + linerFactor * distanceLight + expFactor * distanceLight * distanceLight);
}
vec3 LightNormal = normalize(light);       // 指向光源的單位向量
vec3 NormalNormal = normalize(M_normal);      //  法線的單位向量

light = M_LightPos.xyz - M_WordPos;
vec3 spotLightPointDirection = normalize(-light);
vec3 spotLightDirection = normalize(M_SpotLightDirection.xyz);
float spotDegreeCos = dot(spotLightPointDirection, spotLightDirection);
float spotCutoffCos = cos(M_SpotLightCutoff * 3.14 / 180.0);
float diffuseIntensity = 0.0;
if (M_SpotLightDirection.w > 0 && M_SpotLightCutoff > 0)
{
    if (spotDegreeCos > spotCutoffCos)
    {
        diffuseIntensity = pow(max(0.0, spotDegreeCos), M_SpotLightDirection.w) * 2;
    }
}
else
{
    diffuseIntensity = max(0.0, dot(NormalNormal, LightNormal));
}
vec4 diffuseColor = M_DiffuseLightColor * M_DiffuseMaterial * 
                    diffuseIntensity * attenuation;

CPU中的設(shè)置

// 光源位置
float nLightPos[4] = {0.0f, 0.0f, -2.0f, 1.0f};
OpenGLCore->glUniform4fv(m_LightPos, 1, nLightPos);
// 探照燈方向及角度
float nSpotLightDirection[4] = {0.0f, 0.0f, -1.0f, 128.0f};
OpenGLCore->glUniform4fv(m_SpotLightDirection, 1, nSpotLightDirection);
float nSpotLightDegree = 30.0f;
OpenGLCore->glUniform1f(m_SpotLightCutoff, nSpotLightDegree);

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前文章:基于Qt的OpenGL可編程管線學(xué)習(xí)(8)-探照燈-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://aaarwkj.com/article40/gdjeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、定制網(wǎng)站、定制開(kāi)發(fā)、企業(yè)建站、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)
日本在线免费成人高清| 欧美精品成人免费在线| 不卡二卡三卡四卡精品| 熟妇人妻中文字幕在线| 日本加勒比一道本东京热| 蜜臀av成人精品蜜臀av| 欧美一级黄色免费电影| 国产一区二区三区在线精品专区| 国产原创av剧情在线观看| 日本成人一区二区三区视频| 国产在线精品成人欧美| 精品欧美熟妇高潮喷水特黄| 亚洲精品国产第一区第二区 | 久久se精品人妻一区二区三区| 国产精品国产三级国产av丨| 国产欧美日韩精品一区| 蜜臀视频在线观看免费| 在线观看男人的天堂av| 人人妻人人澡人人爽老妇| 亚洲黄色一区大陆av剧情| 国产极品美女视频福利| 久久成人免费在线电影| 日本国产一区二区三区在线| 欧美日韩在线视频第三区| 一区二区高清免费日本| 日本黄色av一区二区| 亚洲欧美日韩颜射极品| 国产精品一区二区夜夜夜| 国产av一区二区三区| 美女丝袜美腿魅惑男人| 97青青草免费在线视频| 午夜麻豆影网在线观看| 亚洲高清中文字幕一区二三区| 亚洲一区二区三区精品在线| 欧美日韩一区二区三区大片| 丰满少妇一区二区三区专区 | 天堂在线av免费观看| 日韩av一区二区国产| 精品国产一区二区三区不卡| 欧美精品中出一区二区三区| 色吊丝二区三区中文字幕|