Rampa Gölgeleme veya Aydınlatma Nedir?


14

Rampa gölgeleme veya aydınlatma nedir ve nasıl çalışır? Toon gölgelendirmeden farklı mı yoksa aynı kavram mı? Rampa gölgelendirmesi için blinn-phong veya lambert'e göre spekülerlik nasıl farklı hesaplanır?

Yanıtlar:


21

Geleneksel Blinn / Phong gölgelendirmesinde, yüzeydeki normal ile ışığın yönü arasındaki açının kosinüsünü ölçerek bir piksel için dağınık terimi hesaplarsınız. Yani, bu durumda, basit bir gölgelendirici şöyle görünecektir:

float DiffuseCoeff(in float3 pos, in float3 normal, in float3 lightPos) {
    float3 lightDir = lightPos - pos;
    lightDir.normalize();

    return max(0.0, Dot(lightDir, normal));
}

Rampa gölgelendirmesinde fikir, 1D arama dokusu ile dağınık katsayıyı modüle etmektir. Bu dokuya ne koyduğunuza bağlı olarak farklı efektler oluşturabilirsiniz. Bu nedenle, yaygın katsayıyı hesaplamak için gölgelendirici fonksiyonumuz:

texture1D rampTex;
float DiffuseCoeff(in float3 pos, in float3 normal, in float3 lightPos) {
    float3 lightDir = lightPos - pos;
    lightDir.normalize();

    // Map value from [-1, 1] to [0, 1]
    float rampCoord = Dot(lightDir, normal) * 0.5 + 0.5;
    return tex1D(rampTex, rampCoord);
}

Örneğin, bir hücre gölgelendiricisi uygulamak istersek, yapabileceğimiz bir adım işlevini taklit eden bir rampa dokusu oluşturmaktır:

resim açıklamasını buraya girin

Aynısı fikri aynasal ışıklandırma için farklı efektler oluşturmak için de kullanabilirsiniz. "Rampa" gölgeleme gerçekten sadece gölgeleme değerini bir doku ile modüle etme fikrini ifade eder.

EDIT : Team Fortress 2 sunumlarında bir rampa gölgelendirici kullanıyor. Bu makaledeki ayrıntıları kontrol edebilirsiniz:

http://www.valvesoftware.com/publications/2007/NPAR07_IllustrativeRenderingInTeamFortress2.pdf

Bölüm 5, "Dağınık Çözgü İşlevi" başlıklı alt bölüme bakın


1
Mükemmel cevap! Dağınık ve rampa aydınlatması arasındaki aydınlatma farkının açıklaması tam olarak aradığım şeydi. Ayrıca rampa gölgeleme kavramının genel olarak ne olduğu hakkındaki yorumu da takdir ediyorum. Ek olarak, bu konsepti kullanan bir oyundan örnek bir resim yayınlayabilir misiniz?
StampyTurtle

@Stampyturtle Cevabımı bir örnekle güncelledim.
Mokosha
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.