无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

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

分享到微博請遵守國家法律
大足县| 涟源市| 西乌珠穆沁旗| 尚义县| 冕宁县| 和硕县| 泰和县| 威海市| 南康市| 亚东县| 保定市| 额尔古纳市| 建德市| 甘南县| 平凉市| 蓝山县| 石城县| 昆明市| 南漳县| 台东市| 冀州市| 公主岭市| 文登市| 新源县| 东乌| 营口市| 土默特右旗| 长岭县| 博白县| 大渡口区| 扶沟县| 射阳县| 吴桥县| 满洲里市| 宣恩县| 巴东县| 盘山县| 织金县| 延安市| 成安县| 娄烦县|