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

永遠也不完美的程序

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

常用鏈接

統計

積分與排名

好友鏈接

最新評論

正確理解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 狂爛球 閱讀(3008) 評論(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>
            欧美黄色精品| 亚洲电影免费观看高清| 国产一区二区中文字幕免费看| 久久久蜜臀国产一区二区| 性欧美超级视频| 蜜桃久久精品一区二区| 欧美精品久久99| 国产精品黄色| 国内精品模特av私拍在线观看| 国产精品一区二区久久国产| 国产日韩精品入口| 日韩午夜剧场| 欧美~级网站不卡| 激情综合中文娱乐网| 亚洲国产91| 久久网站免费| 欧美mv日韩mv国产网站| 亚洲最黄网站| 国产精品尤物| 免费在线看一区| 午夜精品久久99蜜桃的功能介绍| 亚洲精品一区二| 猛干欧美女孩| 亚洲人成网站在线观看播放| 国产精品高潮呻吟久久av无限| 久久久99久久精品女同性| 国产精品久久久久77777| 久久激情五月激情| 免费不卡在线视频| 久久久久国产精品厨房| 国产亚洲欧美一区| 欧美午夜在线| 亚洲视频日本| 亚洲第一页中文字幕| 亚洲精品乱码| 欧美精品 国产精品| 在线激情影院一区| 久久久欧美精品sm网站| 性色av一区二区三区红粉影视| 欧美另类一区| 午夜精品福利电影| 亚洲人成人99网站| 国产精品高清在线| 欧美在线影院| 免费亚洲电影| 亚洲一区在线免费| 亚洲第一页中文字幕| 久久中文字幕一区| 免费成人av资源网| 亚洲视频大全| 久久亚洲综合| 亚洲欧美日韩直播| 久久亚洲精品网站| 亚洲女人天堂成人av在线| 欧美一区午夜精品| 一区二区三区产品免费精品久久75| 一区二区不卡在线视频 午夜欧美不卡'| 欧美国产日韩在线| 久久九九国产精品怡红院| 亚洲精品久久久久| 欧美日韩国产精品| 欧美成人免费播放| 国产精品网站在线观看| 亚洲激情另类| 亚洲国产欧美一区| 欧美性大战久久久久久久蜜臀| 玖玖国产精品视频| 欧美全黄视频| 欧美成人在线免费视频| 国产亚洲成人一区| 一二三区精品| 一区二区精品在线观看| 亚洲综合色丁香婷婷六月图片| 亚洲美女电影在线| 久久午夜精品| 亚洲国产精品综合| 一本大道久久a久久精二百| 美女日韩欧美| 亚洲福利视频网站| 亚洲桃色在线一区| 欧美日韩在线播放一区| 一区二区91| 欧美在线日韩在线| 99成人在线| 性欧美xxxx大乳国产app| 欧美三区在线视频| 亚洲精品欧美一区二区三区| 日韩午夜在线电影| 国内外成人在线| 久久国产精品久久国产精品| 免费精品视频| 欧美在线观看一区| 亚洲精品久久久久久下一站| 欧美一区二区三区免费视| 欧美激情国产日韩精品一区18| 亚洲啪啪91| 国产女精品视频网站免费 | 亚洲看片免费| 亚洲一区二区三| 国产一区视频观看| 欧美激情一区二区三区全黄| 欧美一区二区精美| 一区二区高清在线观看| 欧美国产日韩二区| 老司机精品视频一区二区三区| 9人人澡人人爽人人精品| 欧美亚洲不卡| 国产农村妇女精品一二区| 国产精品高潮呻吟久久| 国产一本一道久久香蕉| 国内外成人在线视频| 欧美精品免费播放| 欧美日韩第一页| 欧美激情1区2区| 欧美日韩国产二区| 美女视频黄a大片欧美| 亚洲欧美日韩综合aⅴ视频| 日韩一区二区精品视频| 亚洲影院免费观看| 久久激情综合网| 欧美大成色www永久网站婷| 免费毛片一区二区三区久久久| 久久久九九九九| 欧美成人精品在线播放| 久久亚洲色图| 麻豆精品网站| 亚洲人成久久| 亚洲欧美电影院| 久久精品免费观看| 亚洲午夜精品视频| 亚洲欧美日韩国产一区二区| 午夜精品福利一区二区三区av| 欧美在线视频免费播放| 欧美电影免费观看高清完整版 | 亚洲摸下面视频| 久久精品国产91精品亚洲| 麻豆91精品| 日韩一二三在线视频播| 亚洲综合二区| 蜜桃久久精品乱码一区二区| 欧美精品系列| 亚洲另类在线视频| 久久精品五月婷婷| 亚洲精品看片| 欧美另类变人与禽xxxxx| 亚洲韩国日本中文字幕| 久久久噜噜噜久久中文字免| 久久动漫亚洲| 亚洲一区二区三区在线观看视频| 亚洲欧洲综合另类在线| 欧美成人视屏| 国产精品成人播放| 欧美黑人国产人伦爽爽爽| 欧美国产日韩a欧美在线观看| 一区二区国产精品| 久久久九九九九| 午夜精品成人在线| 久久亚洲精品网站| 亚洲一区二区在| 欧美精品一二三| 久久电影一区| 奶水喷射视频一区| 欧美成人高清| 欧美电影在线播放| 国产精品xxxav免费视频| 久久―日本道色综合久久| 国产精品久久久久9999吃药| 久久国产黑丝| 国产精品乱码久久久久久| 美女脱光内衣内裤视频久久网站| 欧美日韩一区在线观看| 91久久精品美女高潮| 国产精品主播| 亚洲一区二区三区乱码aⅴ| 亚洲视频在线看| 国产精品九九久久久久久久| 亚洲九九爱视频| 亚洲精品乱码久久久久久按摩观| 亚洲精品社区| 99精品视频免费观看| 欧美激情1区2区3区| 亚洲激情女人| 99国产精品99久久久久久粉嫩| 久久手机免费观看| 亚洲自拍偷拍麻豆| 国产精品久久一卡二卡| 亚洲视频免费看| 久久国产精彩视频| 亚洲第一天堂av| 久久婷婷国产综合国色天香| 欧美1区2区3区| 中日韩美女免费视频网站在线观看| 欧美日韩成人一区二区三区| 亚洲一区在线免费| 最新热久久免费视频| 久久久久久久久岛国免费| 亚洲日本成人女熟在线观看| 欧美午夜视频| 欧美日韩成人在线观看| 免费成人av在线|