簡體   English   中英

最有效的紋理Splat OpenGL的方法?

[英]Most efficient way to texture splat opengl?

我必須組合多達17個紋理,然后使用openGL將其渲染為一個四邊形(很好,2個三角形)。 我必須渲染很多這些四邊形-可能是500。

我想知道這樣做最快/最好的方法是什么:

A.多遍渲染B.在FBO中組合紋理並渲染一次C.使用opengl多重紋理並在幾遍中渲染D.將紋理與CPU組合,上傳到opengl紋理,然后渲染E.其他?

多次通過意味着要執行多個像素着色器以及進行多個ROP /混合操作,這很容易成為上一代和當前一代硬件的瓶頸。 這樣,將其全部塞入一遍或幾遍(C)應該是有利的。

我不確定“將FBO組合”,盡管我無法提供確鑿的證據,但它“感覺”起來好像會更慢(因為您將至少有2個FBO重新綁定並且至少有一個管線停滯)。 盡管這當然取決於...如果您一次組合相同的17個紋理並繪制一千次,則可能會更快。 如果您對這17種紋理的組合方式有十幾種不同的組合,則外觀可能會有所不同。

現代GPU在片段着色器中采樣多達17個紋理應該沒有問題(GL 3.x硬件最少有48個),而且很簡單。

A,B和C在性能上應該相同。

一切都取決於您的GPU和CPU的功能。 那將決定是否使用a,b或c或d中的一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM