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

歡迎光臨散文網(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)近判斷的疑問與研究的評論 (共 條)

分享到微博請遵守國家法律
翁源县| 福建省| 高台县| 芒康县| 大名县| 天柱县| 自治县| 泊头市| 灵武市| 双辽市| 汶川县| 深圳市| 古丈县| 正阳县| 汝城县| 淮阳县| 浦江县| 黔南| 巴林左旗| 平塘县| 桂平市| 万载县| 南溪县| 张家川| 宝兴县| 绥江县| 阿荣旗| 集安市| 东乡县| 习水县| 梅州市| 和田县| 安国市| 乡宁县| 韶关市| 华亭县| 汉中市| 永定县| 来凤县| 扬州市| 乐平市|