最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

關(guān)于unity渲染順序的遠(yuǎn)近判斷的疑問與研究

2023-08-01 21:06 作者:絕劍結(jié)城  | 我要投稿

這一切的起因都是因?yàn)橐粋€現(xiàn)象。

如圖,我這里本來有個關(guān)閉深度寫入的白色面片,現(xiàn)在場景是這樣(地板,人物,面片都是在不透明物體隊列即2000隊列內(nèi))。我的理解是先渲染了地板,然后寫入深度,然后渲染面片,不寫入深度,然后渲染人物寫入深度,最后的隊列渲染了天空球,覆蓋掉白色面片溢出地板的部分。

但是鏡頭稍微拉遠(yuǎn)些,就會變成圖里這樣,我的理解是先渲染了白色面片,然后再渲染地板,然后再渲染了人物,最后在后面隊列渲染了天空球。所以白色面片全被擋住了。

然后我在framedebug里面看了下,發(fā)現(xiàn)我的想法是對的,就是隨著距離的移動,一下子是先渲染面片,一下子是先渲染地板,但是我不懂這是什么原因?qū)е碌摹?/p>

之后我感覺這個現(xiàn)象很可能跟unity相同渲染隊列內(nèi)判斷物體遠(yuǎn)近的方式有關(guān)。我們知道相同隊列內(nèi)的不透明物體,unity是按照由近到遠(yuǎn)的方式繪制的。(這里要注意區(qū)分逐物體繪制和逐片元繪制的區(qū)別,它是先確定繪制一個物體后,再對物體進(jìn)行逐片元繪制,圖中的問題就是因?yàn)槲矬w繪制順序?qū)е碌模?yīng)該是有什么原因,導(dǎo)致了它在正面情況下計算物體和攝像機(jī)距離的時候出錯了。而且這個算法應(yīng)該不是單純的物體坐標(biāo)和攝像機(jī)坐標(biāo)的distance。不然不會出現(xiàn)正面拉遠(yuǎn)閃爍,側(cè)面拉遠(yuǎn)就不閃爍的問題。

https://zhuanlan.zhihu.com/p/473875401

https://qxsoftware.github.io/Unity-Rendering-Order.html

這兩個網(wǎng)址都提到了unity繪制不透明物體順序的算法是什么,然后我去官方文檔看了說明。

它的確是用了一種別致的算法來確定遠(yuǎn)近。但是我想找源碼來看,找了半天都找不到。

個人目前結(jié)論,低賤的油膩體不知道用的什么天才算法導(dǎo)致了這個物體遠(yuǎn)近距離的判斷會有bug。當(dāng)然,這個情況其實(shí)是極端情況。我只需要把面片渲染隊列+1,就可以完美解決這個問題,這也是模板測試mask常用的操作。但這個bug還是很顛。

關(guān)于unity渲染順序的遠(yuǎn)近判斷的疑問與研究的評論 (共 條)

分享到微博請遵守國家法律
荆门市| 贵德县| 甘泉县| 洞口县| 穆棱市| 慈利县| 顺义区| 灵山县| 台江县| 萍乡市| 贞丰县| 忻州市| 班戈县| 抚州市| 乌拉特中旗| 公安县| 顺昌县| 河西区| 涪陵区| 靖边县| 于都县| 于田县| 临湘市| 通州区| 新巴尔虎左旗| 东城区| 壤塘县| 东港市| 屯昌县| 肃南| 安陆市| 库车县| 专栏| 马鞍山市| 天柱县| 象州县| 高清| 崇明县| 潜江市| 梓潼县| 类乌齐县|