Kısa cevap
Normal haritalar ve Normaller iki farklı şeydir: Normaller, herhangi bir kafesin / yüzeyin geometrik bir özelliğidir, kullanımı gölgeleme ve aydınlatma hesaplamaları için özel değildir, ancak aslında fizikte başka birçok kullanıma sahiptir. Normal haritalar bilgisayar grafiklerinde tümsekleri simüle etmek için kullanılan alternatif normal vektörleri kodlayan dokulardır.
Uzun cevap
Geometride normaller normal, belirli bir nesneye dikey olan bir vektör veya çizgidir (örn. Düzlem normal, tepe normal). Grafiklerdeki normaller genellikle nokta ürününü ışık yönü ve yüzey normalleri arasında alarak dağınık yansımayı hesaplamak gibi ışık hesaplamaları için kullanılır . Normaller genellikle ağın geometrik özelliklerine (Yüzler / Vertisler) dayanarak, aynı düzlemde yer alan iki paralel olmayan kenarın çapraz çarpımı alınarak hesaplanır.
OpenGL'de normaller her köşe için belirtilir (bu nedenle köşe özellikleri olarak adlandırılır), ancak bu durumda yalnızca her yüz için hesaplanabilse de, bir yüzdeki her köşe için aynı normali belirtmeniz gerekir. Normaller, bir yüzün (üçgenin) her köşesinde OpenGL ile enterpole edilebilir, böylece köşe başına değil piksel başına yansıyan ışığı hesaplayabilirsiniz, böylece daha fazla doğru bir sonuç elde edebilirsiniz.
Normal Haritalama : Öte yandan, bilgisayar grafiklerinde bir doku haritasında Normalleri kodlayan bir tekniktir, bu nedenle her normal metin başına kodlanır. Genellikle çarpma ve ezik ışıklarının taklit edilmesi için kullanılır (örn. Yumru haritalama, paralaks haritalama).
Normaller, kafes / yüzeyin geometrik özelliklerine göre hesaplandığından, Normal Haritalar size daha fazla çokgen eklemeden yüzeye ayrıntı eklemek için tümsekleri simüle edebilen alternatif Normaller verecektir.
Normal haritalar genellikle çok daha ayrıntılı bir 3D model kullanılarak oluşturulur, daha sonra bu modele dayanarak normaller hesaplanır ve Normal Haritada kodlanır.
Neden ikisine de ihtiyacımız var?
Sadece nihai aydınlatma efektini elde etmek için genellikle render, normaller ve normal haritalar birlikte konuşurken, iyi bir örnek, yumru aydınlatma efektini elde etmek için normal normal haritaya ihtiyacınız olan bir yumru gölgelendirici olabilir ve yine de teğet uzay denilen şeyi hesaplamak için normal geometrik . Teğet boşluk genellikle normal haritalarda yeniden kullanılabilirlik sağlamak için kullanılır.
Normalin yüzeyin geometrik bir özelliği olarak kabul edildiğini ve sadece ışık hesaplamalarından çok daha fazla kullanımı olduğunu unutmayın. Diğer yandan normal haritalar genellikle yüzeysel etkiler için kullanılır.
Teğet alanların neden önemli olduğunu açıklamak için cevabı genişletmek:
Kısa cevap:
Teğet uzaylar, normal haritaları altta yatan geometriden bağımsız hale getirmek için kullanılır.
[EDIT] Teğet uzaydaki normal haritayı ve dünya uzayındaki normal haritayı temsil eden resim eklendi.
Uzun cevap:
Aşağıdaki resim UV düzlemini ve teğet alanı tanımlayan normali gösterir, normal bir harita oluştururken, kullanılan alanın her zaman Z yönünde Normal işaretine sahip olacağını zaten bileceğiz (bu yüzden normal haritalar mavimsi görünür) , bu yüzey eğriliğini görmezden gelmemize yardımcı olacaktır **.
Teğet alan bize normal harita kodlamamızın belirli bir mesh normaline bağlı olmaması avantajını sağlar. Dünya veya nesne uzayında normal haritamızı kodladığımızı varsayalım, o zaman kodladığımız her normalin, orijinal haritanızın dünya uzayında nasıl değiştiğine bağlı olarak bir yönü olacağını, normal haritanızın model dönüşümlerinden etkileneceğini belirtmiyoruz.
Yukarıdaki iki resimde teğet uzayının altta yatan geometriden bağımsız olarak normal haritalar (sağda) yaptığı oldukça açıktır, çünkü tüm normaller, çarpmaların etkisini simüle etmek için küçük varyasyonlarla neredeyse aynı yönde kodlanır.
** yüzey eğriliği, bir geometrik nesnenin bir çizgi durumunda düz veya düz olmaktan saptığı miktarla tanımlanır, ancak bu, bağlama bağlı olarak farklı şekillerde tanımlanır.