2015-07-19 198 views
1

我重新使用來自http://www.html5rocks.com/en/tutorials/webgl/webgl_fundamentals/webgl/webgl-2d-image.html的簡單的例子來加載一個16 * 16的png,這是完全的黑色,除了一個點在那裏,這是我的RGB值設置爲0錯誤的顏色值, 0,202使用油漆。片段着色器:從紋理

在上面的例子中,我也改變了片段着色器

vec4 x=floor(texture2D(u_image,v_texCoord).rgba*255.0); 

      if(x==vec4(48.0,0.0,220.0,255)) 
      { gl_FragColor = vec4(1.0,vec2(0.0),1.0);} 
      else 
      { gl_FragColor = vec4(vec3(x),1.0);} 

對於一些原因,我得到的0,0,202 RGB = 48,0,220不是作爲最初的預期?

這裏是我的PNG,你可以在本地保存... enter image description here

+0

爲什麼這個問題得-1,甚至沒有任何評論??? – RogerLePatissier

回答

2

我發現我自己的問題。

WebGL的確實使用倍增前的alpha值,並且還適用於一些色彩空間轉換。可以使用以下方式禁用預乘Alpha: gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,false);

色彩空間轉換可以通過以下方式禁用: gl.pixelStorei(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL,false);

您需要您上傳您的紋理之前調用這兩方面的功能。

多虧了這個帖子http://games.greggman.com/game/webgl-image-processing/

相關問題