Bunun için iyi bir sebep bulamıyorum. Phong'da kullanılan yansıma vektörünün fizikte basit bir temeli vardır. Ancak, blinn'de kullanılan yarı vektörün görünüşte rasyonel bir temeli yoktur ve uygun bir yansıma oluşturmaz. Ve yine de, her "fiziksel temelli" gölgeleme işlevinde kullanılır. Bunun için iyi bir fiziksel temel varsa, bilmek isterim.
Bulduğum şey birkaç nedenden kaynaklanıyor:
Daha hızlı - bu konuda karışık bilgiler var, ancak bu yüzden 1998 yılında çok iyi bir sebep olurdu.
90 dereceden daha yüksek açıları daha iyi ele alıyor - bunun tek nedeni, phong teriminin yanlış kullanılmasından kaynaklanıyor. Yansımanın ve görüntünün nokta ürünü -1 ile +1 arasında bir açı verir. Genellikle bu açı 0 ila 1'e kelepçelenir, bu 90 derecelik problemin doğrudan nedenidir. Sıkıştırma yerine açıyı yeniden normalleştirin ve tam 180 derece kapsama elde edin. Basit bir x * 0.5 + 0.5 işleminin 40 yıl boyunca grafik dünyasından uzaklaştığına inanmayı reddediyorum.
kenarları daha iyi idare eder - “problem” kenarı da blinn çözümünde, daha düşük bir dereceye kadar mevcuttur. Asıl sebep, “fiziksel temelli” herhangi bir gölgelendirici için esas olması gereken, sonlandırıcının alan aydınlatmasının hatalı simülasyonudur. Ancak daha basit durumlarda bile bir sigmoid işlevi, yumuşak bir sonlandırıcı çizgisine doğru bir şekilde yaklaşabilir. Bir lambert terimine çarpmak, speküler terimi yanlış bir şekilde zayıflattığından yanlıştır, bu fresnel bir terimi iptal edebilir ve başka hatalara yol açabilir.
Kenarında uzun yansımalar var - Bana öyle geliyor ki, anizotropik yansımalar gerçekçi olsa da, blinn sadece kenarda göründüğü için bunları uygulamanın doğru yolu değil. H terimindeki bir hatanın gerçekçi görünmesi sadece mutlu bir tesadüf.
Bu nedenlerin hiçbiri tatmin edici değil, bu deliliği çözmek istiyorum.
Özel olarak kınama ve pongdan bahsetmediğimi , bunun yerine H ve R vektör bileşenlerinden bahsettiğimi açıklığa kavuşturmak istiyorum .