在unity中如何實現開放世界的超大野外環境下時間流逝的光照變化?

時間 2021-05-12 06:51:51

1樓:

個人覺得應該可以啊,distance shadow在defferlighting下應該滿足你的需求啊?不知道你有沒有實際做過一下,到什麼程度。如果是在PC平台實驗的話肯定可以。

Unity出過自己的官方的demo就是晝夜變化的。你可以參照那個demo的實現。多套動態引數然後做融合。

我們已經在移動端解決這個效果問題了。只是陰影方向還不能搞。不過大多數時候玩家不太注意方向變化。

可以用很高的shadowmap精度。

2樓:Steven Liu

如果遠景也需要動態陰影,distance field 現在是比較好的解決方案。對每個遠景看得見的模型離線烘培乙個 distance filed(同樣的模型 distance field 可以復用,縮放旋轉位移都沒關係),然後在遊戲內將這之融合到乙個全域性的 distance field。

這邊有乙個 blog 介紹自己如何實現 distance filed,也不需要 3d texture。

part 1: Signed Distance Field Rendering Journey pt.1

part 2: Signed Distance Field Rendering Journey Pt.2

3樓:安柏霖

大場景即便遠近都用cook好的shadow mask也是效能有巨大壓力的,如果遊戲要在主流平台上去跑。

大場景整體來看,不是乙個技術,而是指整體遊戲執行效率高。

落實到場景上,可以考慮的包括

多執行緒 & simd

culling(frustum cull到portal到software rasterizer),

lod相關技術(geometry lod到billboard,mesh和terrain都有),

盡可能的離線化計算(從lightmap到各種可以離線化計算的東東)

這裡面unity有的做了,但是大部分是做的不到位和沒做,沒做的部分根據自己情況,能自己實現多少是多少。

如何在unity中實現炮彈碰撞體的敵我區分。?

北海若 Layer可以用來忽略一些物體之間的碰撞判定 但如果你需要的是打到自己人炮彈判定碰撞但是不扣血這種,可以在OnCollisionEnter裡判斷other.gameObject.name或者設定乙個用來判斷的型別,加個Friendly成員other.gameObject.GetCompone...

如何用unity實現戰鬥系統呢

張詡文 所謂戰鬥系統,無非是個狀態機。延伸出去做細了,才涉及到AI,尋路之類的方面。當然對戰遊戲的話就得研究同步了。其實每項技術原理都非常簡單,但面對要求比較高的場景,需要考慮的東西就很多了。 參考unity的物理引擎使用,入門和中等級別的可以看Unity3D動作遊戲開發的隨書demo。動畫幀事件的...

如何使用Unity實現「饑荒」遊戲中的效果?

楊楊 我想說的用2d來實現3d效果是完全可以的,但是並不是必要的,複雜的設計會讓遊戲開發遇到更多的困難,而歐美遊戲設計師很懂這個道理. 秋淵 我經常玩饑荒,仔細觀察和思考了下,模型應該就是立在場景上,向著攝像機的2d麵片,而不是純2d的。這樣物體的前後關係 透視,攝像機變化等都很明朗了。 Jiang...