2 回答

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊
如果您禁用了代碼片段中所示的深度測(cè)試,那絕對(duì)不是深度戰(zhàn)斗。
“我將所有頂點(diǎn)、uvs(精靈圖集)、平移、旋轉(zhuǎn)等打包在一個(gè)大包中,發(fā)送到頂點(diǎn)著色器。” - 您需要查看添加精靈的順序。也許由于某種原因它不一致。

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊
這可能是Z戰(zhàn)斗
通常的原因是:
一些方法來(lái)解決這個(gè)問(wèn)題:
稍微改變重疊表面的大小/位置
為 Z 緩沖區(qū)(深度)使用更多位
使用線性或?qū)?shù) Z 緩沖區(qū)
增加Z-near或減少Z-far或兩者都用于透視投影,您可以組合更多視錐體以獲得高清 Z 范圍
有時(shí)有助于使用
glDepthFunc(GL_LEQUAL)
片段位于相同的 Z 坐標(biāo)或更接近 Z 坐標(biāo)的精度
片段離透視相機(jī)太遠(yuǎn)了,你離Z越遠(yuǎn),精度越低
這可能是混合的問(wèn)題。
當(dāng)您使用混合時(shí),您需要進(jìn)行一些不同的渲染。要正確渲染透明度,您必須對(duì)場(chǎng)景進(jìn)行 Z 排序,否則可能會(huì)出現(xiàn)偽影。如果透明對(duì)象或它們附近的對(duì)象(附近有許多多邊形邊緣)的幾何結(jié)構(gòu)過(guò)于密集。此外,Z-fighting 會(huì)通過(guò)混合產(chǎn)生更高數(shù)量級(jí)的偽像。
一些方法來(lái)解決這個(gè)問(wèn)題:
Z排序可以通過(guò)多遍渲染+深度測(cè)試+切換正面來(lái)部分完成
所以首先渲染所有實(shí)體,然后渲染 Z 排序的透明對(duì)象,正面設(shè)置為不面向相機(jī)的一側(cè)。然后使用正面設(shè)置為側(cè)向相機(jī)渲染相同的對(duì)象。您需要為此使用深度測(cè)試?。?!。這樣您就不需要對(duì)場(chǎng)景的所有多邊形進(jìn)行排序,而只是對(duì)透明對(duì)象進(jìn)行排序。對(duì)于復(fù)雜的透明幾何體,結(jié)果并非 100% 正確,但結(jié)果通常已經(jīng)足夠好(尤其是對(duì)于動(dòng)態(tài)場(chǎng)景)。這就是輸出的樣子
這是一個(gè)玻璃杯,在這種情況下選擇的混合功能在視覺(jué)上有點(diǎn)混亂,因?yàn)檩^暗的像素意味著故意使用 2 層玻璃,這不是錯(cuò)誤。因此,開(kāi)口看起來(lái)就像是正面/背面互換了
對(duì)透明對(duì)象使用密度較低的幾何體
擺脫Z-fighting問(wèn)題
- 2 回答
- 0 關(guān)注
- 189 瀏覽
添加回答
舉報(bào)