, sonra bu yapın:Piksel bilgilerini bir parça gölgelendiricide nasıl edinilir? benim parça gölgelendirici ben bir doku yükleyebilir yılında
doku renk değerine geçerli piksel ayarlaruniform sampler2D tex;
void main(void) {
vec4 color = texture2D(tex, gl_TexCoord[0].st);
gl_FragColor = color;
}
. Bunları değiştirebilirim ve iyi çalışır.
Ancak birkaç soru. "Hangi" piksel olduğumu nasıl anlarım? Örneğin, 100.100 (x, y) pikselini kırmızıya ayarlamak istiyorum. Siyah olan her şey. Nasıl yapabilirim:
"eğer currentSelf.Position() == (100,100); daha sonra color = kırmızı; else color = black?"
?
Renklerin nasıl ayarlanacağını biliyorum, ancak "konumumu" nasıl alabilirim?
İkinci olarak, bir komşu pikselden nasıl değerler alabilirim? berrak
vec4 nextColor = texture2D(tex, gl_TexCoord[1].st);
Ama bu ne döndürüyor:
Bu çalıştı? eğer ben 100.100 pikselim; değerleri 101,100 veya 100,101'den nasıl alabilirim?
Beni ona yendi iyi bir örnek var; Ben bu biraz daha farklı olduğunu söylemek zorundayım "gl_FragCoord" biraz daha fazla ayrıntıya gider http://www.opengl.org/sdk/docs/manglsl/xhtml/gl_FragCoord.xml bağlantı ve bir öneri Eğer çıktı tamponlarını birden fazla komşu pikselin kombinasyonuna bağlı olarak gerçekten çıktı tamponu olarak hesaplamak istiyorsa ara dokuya dönüşür. – Tommy
Temel olarak, yapmak istediğim şey, x, y piksellerinin x, y ile kırmızısını artıran piksel x, y ile komşudur. Bunu nasıl yapacağını açıklayan bir öğretici var mı? – user697111
@ user697111: Bir dokunun kırmızı kanalında çalışan bir "genişleme" filtresi uygulamak istiyorsunuz. Google bu anahtar kelimeler ve bol miktarda bulmalısınız. – datenwolf