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

永遠也不完美的程序

不斷學習,不斷實踐,不斷的重構……

常用鏈接

統計

積分與排名

好友鏈接

最新評論

正確理解shadowmap的實現方式

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

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

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

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

    //首先取得當前pScene的frustum,然后轉成世界坐標的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);     //這個時候centerPos是world空間的坐標
    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的最常規做法了,渲染到紋理,設置渲染狀態等,這里就不再介紹了。






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

評論

# re: 正確理解shadowmap的實現方式 2015-06-14 18:31 irons

請問一個物體在地圖上,它的陰影咋實現的呢?
使用你說的陰影紋理?
根據光照(攝像機)為方向,進行渲染場景(包含物體?)渲染到陰影紋理?
最后再根據真正的攝像機,再渲染陰影?
意思要實現陰影的話,要分多個步渲染哇?  回復  更多評論   

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产欧美欧美| 牛牛精品成人免费视频| 亚洲激情在线观看视频免费| 亚洲午夜电影| 欧美午夜a级限制福利片| 亚洲在线一区| 欧美一区二区免费| 亚洲精品1234| 91久久中文字幕| 欧美日韩在线一区| 午夜老司机精品| 久久久7777| 亚洲欧洲三级电影| 正在播放日韩| 一区在线播放视频| 亚洲欧洲综合| 国产热re99久久6国产精品| 久久久久久久综合| 玖玖玖国产精品| 一区二区三区视频观看| 亚洲综合精品自拍| 亚洲国产网站| 亚洲特级毛片| 亚洲高清一二三区| 亚洲一区二区高清| 亚洲啪啪91| 亚洲男女毛片无遮挡| 亚洲高清资源| 亚洲性xxxx| 亚洲精品美女久久久久| 亚洲影视九九影院在线观看| 亚洲国产婷婷香蕉久久久久久99| 99亚洲精品| 亚洲大片在线| 午夜精品影院| 亚洲一区二区三区精品在线| 久久久久久一区二区| 亚洲一区二区三区三| 猛干欧美女孩| 久久精品国产一区二区电影 | 欧美专区在线播放| 久久久久久电影| 亚洲欧美日韩一区二区在线| 欧美成人精品1314www| 久久精品免费观看| 国产精品毛片| 亚洲精品久久| 亚洲日本成人| 久久久久久夜| 久久久久久久久伊人| 国产精品久久久久久久午夜片| 亚洲第一精品夜夜躁人人爽| 国内伊人久久久久久网站视频| 在线性视频日韩欧美| 日韩一区二区久久| 欧美成人亚洲成人日韩成人| 美腿丝袜亚洲色图| 尤物99国产成人精品视频| 欧美与黑人午夜性猛交久久久| 亚洲一级高清| 欧美三区在线| 99在线|亚洲一区二区| 中国成人亚色综合网站| 欧美精品在线观看91| 亚洲国产日韩欧美在线动漫| 亚洲日本视频| 欧美成年人视频| 亚洲国产午夜| 一本色道久久综合狠狠躁篇的优点| 欧美1区2区| 亚洲人成欧美中文字幕| 国产有码在线一区二区视频| 亚洲三级免费| 亚洲精品久久久久| 欧美成人精品一区| 亚洲三级影院| 亚洲一区精品视频| 国产乱人伦精品一区二区| 亚洲欧美日韩国产成人精品影院| 欧美一区二区三区免费观看视频| 国产精品久久久久久妇女6080| 一区二区三区精品视频| 性欧美18~19sex高清播放| 国产精品推荐精品| 欧美尤物巨大精品爽| 麻豆久久精品| 日韩网站免费观看| 国产精品v亚洲精品v日韩精品 | 亚洲女人小视频在线观看| 国产精品日日做人人爱| 久久aⅴ国产紧身牛仔裤| 欧美**人妖| 中文精品视频| 国产亚洲精久久久久久| 蜜臀久久99精品久久久久久9| 亚洲日韩成人| 欧美在线关看| 亚洲伦理精品| 国产欧美日本在线| 美女诱惑一区| 亚洲一区二区网站| 欧美激情小视频| 香蕉久久a毛片| 影音先锋欧美精品| 国产精品都在这里| 裸体女人亚洲精品一区| 日韩亚洲国产欧美| 久久一区欧美| 亚洲欧美另类综合偷拍| 亚洲高清视频的网址| 国产麻豆91精品| 男女激情久久| 香蕉精品999视频一区二区| 亚洲伦伦在线| 美女成人午夜| 欧美中文字幕第一页| 宅男66日本亚洲欧美视频| 国产视频一区欧美| 欧美体内she精视频| 欧美一区三区二区在线观看| 日韩视频免费观看高清在线视频| 久热成人在线视频| 欧美一级片久久久久久久| 99视频在线观看一区三区| 在线成人黄色| 国产九九精品视频| 欧美性大战久久久久久久| 欧美黄色一区| 免费亚洲一区| 欧美在线视频一区二区| 亚洲一区欧美一区| 亚洲伦理精品| 亚洲国产经典视频| 欧美成人免费在线| 久久人体大胆视频| 欧美一级淫片aaaaaaa视频| 亚洲在线日韩| 亚洲一区二区三区免费在线观看 | 欧美大秀在线观看 | 亚洲裸体视频| 欧美高清视频在线播放| 一区电影在线观看| 激情一区二区三区| 久久亚洲综合| 久久久久久久久久久成人| 午夜日韩av| 欧美一级精品大片| 亚洲欧美一区二区在线观看| 亚洲一区免费观看| 亚洲一区二区三区在线看| 99国产精品视频免费观看| 99国产精品99久久久久久粉嫩| 91久久精品一区二区别| 亚洲高清av在线| 亚洲三级免费观看| 在线亚洲精品| 亚洲专区在线| 久久精彩视频| 久久综合导航| 欧美精品在线免费观看| 欧美日韩系列| 国产精品久久久久久久久久直播| 国产精品久久久久久久久久妞妞 | 久久女同互慰一区二区三区| 久久久久**毛片大全| 久久综合色播五月| 欧美金8天国| 国产精品你懂的| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲高清免费视频| 亚洲女ⅴideoshd黑人| 久久天堂成人| 亚洲精选久久| 亚洲欧美成人网| 久久在线91| 国产精品播放| 在线免费观看一区二区三区| 一区二区三区高清在线观看| 午夜久久tv| 亚洲电影在线观看| 亚洲免费视频一区二区| 美日韩在线观看| 国产区在线观看成人精品| 亚洲理伦电影| 久久久精品tv| 正在播放日韩| 欧美福利在线| 国内自拍一区| 午夜欧美不卡精品aaaaa| 欧美不卡高清| 午夜精品久久久久久久久久久久久 | 久久久99免费视频| 亚洲激情中文1区| 欧美一区在线看| 欧美日韩网站| 亚洲激情视频在线观看| 久久久久久**毛片大全| 日韩一区二区精品| 久久久一区二区三区| 国产日韩精品一区二区|