2015-10-06 73 views
0

我不確定texture2D命令在GLSL中如何使用線性過濾。它如何選擇和線性內插像素之間。glsl的texture2d命令如何與GL_LINEAR紋理一起工作

想象我有紋理的值4點灰度級的像素{0,1,2,3}。我希望OpenGL能夠畫出8個像素寬的線。 texture2D如何填充這8個像素?

難道是這樣的:{0,0.375(3/8),0.75(6/8),1.125(9/8),1.5(12/8),1.875(15/8), 2.25(18/8),2.625(21/8),3}?

回答

0

實際上在這個問題中有兩個方面: - 是的,GL_LINEAR意味着它是一個線性插值,在每個方向(所以,雙線性)。 - 現在,紋理像素和屏幕像素可能不會完全面對面地落下,這取決於頂點的浮點值是將它投影在中心還是角落。所以它會首先,最後,甚至是所有的中間值。

請注意,對於這些問題,實驗幾乎比討論它快得多:例如,在GLSL(ES)中進行快速小實驗在網站上很簡單,例如shadertoy