için Renk Sabit Bir piksel kapalıyken bir piksel açık mı ve saydam mı?OpenGL Fragman Shader Dönüş Şu anda doku bir pikselin rengini döndürür parça gölgelendirici altında olması Doku
Kullanmakta olduğum TGA dosyası saydamlık ve yeşil ve kahverengi bir görüntü içeriyor (temel ağaç resmi - yeşil üst, kahverengi gövde). Yapmaya çalıştığım şey, ağacın şeklini yeşil, kahverengi ve şeffaflık yerine belirli bir renkte (bir siluet gibi) meydana getirmektir. Eğer gl_FragColor'u ayarlı bir renge değiştirirsem, görüntü istediğim gibi değil, sağlam bir dikdörtgen olarak çizilir.
Sadece sabit rengin atanması ve texture2D tarafından döndürülen alfa (.a?) Değerini kullanma meselesi mi?
aşağıda hat bana beyaz bir silüet verir ama alfa kanalı yok sayılır yüzden siyah bir dikdörtgen içinde beyaz bir ağacı almak:
gl_FragColor = texture2D(s_texture, v_texCoord).aaaa;
GÜNCELLEME: Aşağıdaki ama hala bir dikdörtgen render edilir çalıştı. Şeffaflığın dokumama yüklenmediği anlaşılıyor. GIMP ile kesinlikle şeffaf, ancak şeffaflık bir nedenden dolayı benim için beyaz gibi görünüyor.
vec4 tmpColor = texture2D(s_texture, v_texCoord);
tmpColor.r = vColor4.r;
tmpColor.g = vColor4.g;
tmpColor.b = vColor4.b;
// gl_FragColor = texture2D(s_texture, v_texCoord);
//gl_FragColor = vColor4;
gl_FragColor = tmpColor;
My LoadTexture() işlevi, aşağıdaki parametreleri kullanır: piksel başına
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, TexHandle); // Set our Tex handle as current
// Specify filtering and edge actions
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
//glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE);
glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA, Img.GetWidth(),Img.GetHeight(),0,
GL_RGBA,GL_UNSIGNED_BYTE,Img.GetImg());
Bit (BPP) kesinlikle 32 (R, G, B, A).
sen ('glEnable (GL_BLEND)') etkin harmanlama var mı farklı harmanlama denklem sonuçlarını görmek için? Karıştırma işleviniz nedir ('glBlendEquation')? –