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

永遠(yuǎn)也不完美的程序

不斷學(xué)習(xí),不斷實(shí)踐,不斷的重構(gòu)……

常用鏈接

統(tǒng)計(jì)

積分與排名

好友鏈接

最新評(píng)論

正確理解shadowmap的實(shí)現(xiàn)方式

首先確定陰影的最基本原理:
陰影是以光源作為攝像機(jī)(叫作Camera_light),光照方向作為攝像機(jī)的look的方向,然后把這個(gè)攝像機(jī)看到的場(chǎng)景物渲染到紋理,這個(gè)紋理就叫shadowmap。
在這里我把場(chǎng)景的攝像機(jī)叫Camera_scene
在渲染場(chǎng)景的時(shí)候,接收shadowmap的物體根據(jù)自身的坐標(biāo)計(jì)算出對(duì)應(yīng)的shadowmap的紋理坐標(biāo)已經(jīng)把shadowmap貼上去。

然后shadowmap都面臨很多的問題,例如分辨率差,模糊等,解決這些問題有很多種算法,如PSM,CSM等。無論是何種算法,最核心的問題就是要解決shadowmap的攝像機(jī)參數(shù)。

在nvidia的sdk和很多引擎的代碼中,都有一個(gè)叫casterAABB的東西,可能很多人一開始寫shadowmap的時(shí)候不太理解這個(gè)是干什么用的。
casterAABB是指:以當(dāng)前場(chǎng)景看到的所有接收shadowmap物體的總AABB與Camera_scene的view空間所轉(zhuǎn)換的AABB的交集。
這個(gè)casterAABB的作用是計(jì)算Camera_light的攝像機(jī)參數(shù),使shadowmap的分辨率達(dá)到最清楚。

下面是計(jì)算的代碼:
    ISceneManager* pScene = ENGINE_INST->GetSceneMgr();

    //首先取得當(dāng)前pScene的frustum,然后轉(zhuǎn)成世界坐標(biāo)的AABB
    AABBBox3Df frustumInViewAABB;
    GetAABBFromProjectMatrix(frustumInViewAABB, pScene->GetCamera()->GetProjectionMatrix());
    
    AABBBox3Df shadowArea = m_casterAABB;
    m_casterAABB.Intersection(shadowArea, frustumInViewAABB);

    Vector3Df centerPos = shadowArea.GetCenter();
    Matrix4f matInvView;
    
    pScene->GetCamera()->GetViewMatrix().GetInverse(matInvView);
    Vector3Df vecLookAt;
    matInvView.TransformCoord(centerPos, vecLookAt);     //這個(gè)時(shí)候centerPos是world空間的坐標(biāo)
    m_pCamera->SetLookAt(vecLookAt);
    m_pCamera->SetPosition(vecLookAt - m_directionLight * m_fDisLightToTarget);
    m_pCamera->BuildViewMatrix();

    const Matrix4f& cameraLightView = m_pCamera->GetViewMatrix();

    Matrix4f matCameraToLight = matInvView * cameraLightView;
    matCameraToLight.TransformBox(shadowArea);
    f32 fWidth = shadowArea.MaxEdge.x - shadowArea.MinEdge.x;
    f32 fheight = shadowArea.MaxEdge.y - shadowArea.MinEdge.y;
    f32 fDis = shadowArea.MaxEdge.z - shadowArea.MinEdge.z;

    matCameraToLight.TransformBox(m_casterAABB);

    m_pCamera->SetViewport(m_casterAABB.MinEdge.z, shadowArea.MaxEdge.z, AIR::PI / 4, fWidth, fheight, false);
接下來就是shadowmap的最常規(guī)做法了,渲染到紋理,設(shè)置渲染狀態(tài)等,這里就不再介紹了。






posted on 2015-06-10 20:44 狂爛球 閱讀(3009) 評(píng)論(1)  編輯 收藏 引用 所屬分類: 圖形編程

評(píng)論

# re: 正確理解shadowmap的實(shí)現(xiàn)方式 2015-06-14 18:31 irons

請(qǐng)問一個(gè)物體在地圖上,它的陰影咋實(shí)現(xiàn)的呢?
使用你說的陰影紋理?
根據(jù)光照(攝像機(jī))為方向,進(jìn)行渲染場(chǎng)景(包含物體?)渲染到陰影紋理?
最后再根據(jù)真正的攝像機(jī),再渲染陰影?
意思要實(shí)現(xiàn)陰影的話,要分多個(gè)步渲染哇?  回復(fù)  更多評(píng)論   

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久久99国产精品免费| 亚洲破处大片| 99精品福利视频| 激情婷婷亚洲| 亚洲欧美韩国| 亚洲一区二区网站| 欧美黄色aaaa| 亚洲国产精品热久久| 国产一区在线视频| 亚洲欧美视频在线| 午夜精品久久| 国产精品女同互慰在线看| 亚洲激情另类| 亚洲久久成人| 欧美激情日韩| 亚洲精品小视频在线观看| 亚洲精品色婷婷福利天堂| 玖玖视频精品| 欧美国产一区二区| 91久久午夜| 欧美高清一区二区| 91久久线看在观草草青青| 亚洲精品一级| 欧美乱大交xxxxx| 亚洲伦理在线| 亚洲一区二区在线| 国产精品毛片a∨一区二区三区| 野花国产精品入口| 午夜精品偷拍| 国产手机视频精品| 久久久美女艺术照精彩视频福利播放| 久久九九免费视频| 在线看欧美日韩| 欧美成人蜜桃| 夜夜精品视频一区二区| 亚洲综合色丁香婷婷六月图片| 国产精品白丝av嫩草影院| 亚洲一区二区免费视频| 久久精品国产免费观看| 亚洲电影免费观看高清完整版在线 | 欧美激情精品久久久久久变态| 亚洲高清一二三区| 99精品热6080yy久久| 国产精品毛片va一区二区三区| 午夜欧美理论片| 欧美成人高清| 亚洲一区二区久久| 国产一区二区久久| 欧美18av| 亚洲综合激情| 欧美mv日韩mv国产网站app| aaa亚洲精品一二三区| 国产精品乱码| 牛牛精品成人免费视频| 国产精品99久久久久久有的能看| 久久久久久久一区二区| 91久久久亚洲精品| 国产精品综合av一区二区国产馆| 久久久久久久综合| 中文久久乱码一区二区| 免费观看日韩| 亚洲欧美日韩精品在线| 亚洲黄色高清| 国产日韩精品一区二区三区| 女同一区二区| 欧美一区二区视频观看视频| 亚洲激情小视频| 久久男人资源视频| 国产精品99久久不卡二区| 激情综合网址| 国产精品人成在线观看免费| 免费在线观看精品| 欧美一区二粉嫩精品国产一线天| 亚洲精品乱码久久久久久日本蜜臀 | 国产精品久久久免费| 免费黄网站欧美| 久久国产精品久久久久久电车| 日韩视频免费| 亚洲国产婷婷| 牛牛精品成人免费视频| 欧美尤物一区| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 在线观看av一区| 国产欧美精品在线| 欧美日韩综合精品| 欧美精品自拍| 男人的天堂亚洲| 久久久精品动漫| 性伦欧美刺激片在线观看| 一区二区三区你懂的| 91久久久一线二线三线品牌| 欧美freesex交免费视频| 久久天天躁夜夜躁狠狠躁2022 | 欧美激情第4页| 久久婷婷成人综合色| 欧美资源在线| 久久精品卡一| 欧美一区二区日韩一区二区| 亚洲综合不卡| 性8sex亚洲区入口| 羞羞色国产精品| 午夜亚洲性色福利视频| 性欧美8khd高清极品| 亚洲欧美伊人| 欧美亚洲综合久久| 亚欧成人在线| 久久久不卡网国产精品一区| 久久成年人视频| 久久久久久久久久久久久9999| 久久疯狂做爰流白浆xx| 久久精品国产精品亚洲精品| 欧美在线一级va免费观看| 欧美一区二区在线播放| 久久久久久伊人| 鲁大师成人一区二区三区| 欧美jjzz| 欧美日韩在线一区二区| 国产精品成人观看视频免费| 国产精品视频男人的天堂| 国产网站欧美日韩免费精品在线观看 | 欧美日本在线观看| 欧美日韩亚洲高清一区二区| 欧美日韩在线观看一区二区| 国产精品手机视频| 国产有码在线一区二区视频| 在线观看久久av| 亚洲精品一区二区在线观看| 一区二区三区三区在线| 午夜精品福利在线观看| 久久一区二区三区国产精品| 欧美激情1区2区| 一本一本久久| 欧美一区中文字幕| 欧美成人一区在线| 国产精品免费一区豆花| 狠狠入ady亚洲精品经典电影| 亚洲国产中文字幕在线观看| 亚洲午夜电影网| 久久久久久久久综合| 亚洲欧洲精品一区二区三区 | 亚洲一区二区在线免费观看视频| 欧美一区二区三区在| 欧美va亚洲va国产综合| 国产精品美女久久久久久2018| 好吊妞这里只有精品| 99亚洲精品| 久久婷婷一区| 一区二区三区波多野结衣在线观看| 性久久久久久| 欧美日韩国产片| 国内外成人在线| 亚洲一级免费视频| 噜噜噜在线观看免费视频日韩| 日韩视频二区| 久久视频这里只有精品| 国产精品国产自产拍高清av王其| 亚洲国产成人精品女人久久久 | 欧美粗暴jizz性欧美20| 国产日韩在线播放| 一本色道婷婷久久欧美| 久久综合伊人77777蜜臀| 一二三区精品| 美女性感视频久久久| 国产欧美一区二区三区久久 | 亚洲一区二区在线| 欧美激情精品久久久久| 韩国av一区二区| 午夜天堂精品久久久久| 亚洲精品一区二区三区婷婷月 | 欧美亚洲色图校园春色| 欧美日韩免费观看一区| 亚洲人被黑人高潮完整版| 久久男女视频| 香蕉av福利精品导航| 国产精品国产亚洲精品看不卡15| 亚洲欧洲日本专区| 免费成人高清| 久久人人97超碰精品888| 国产视频观看一区| 欧美一区二区免费视频| 亚洲私拍自拍| 国产精品国产精品| 亚洲中无吗在线| 夜夜精品视频| 欧美午夜在线观看| 亚洲免费视频在线观看| 99re在线精品| 欧美日韩你懂的| 亚洲深夜福利| 一本久久青青| 国产精品免费久久久久久| 午夜精品福利视频| 亚洲一区二区欧美日韩| 国产精品一区一区三区| 香港成人在线视频| 欧美一区在线看| 亚洲二区视频| 亚洲激情自拍| 欧美日韩中文字幕在线| 亚洲欧美日韩综合国产aⅴ|