Normal, tanjant ve binormal vektörler nelerdir ve nasıl kullanılır?


47

Aşağıdaki bilgileri öğrenmek istiyorum:

  • Onlar neler?
  • Oyun geliştirmede örnek kullanım (kullanıldıkları alan)

Aşağıdaki vektör türleri hakkında:

  • Normal
  • Tangent
  • Binormal

Basit bir oyun geliştirme merkezli açıklama yeterli olacaktır.


1
Çok fazla soru soruyorsun. Vektörlerin nasıl çalıştığını okumak en iyisidir. Sıfırdan. Ayrıca trigonometriyi yol boyunca hazırla.
Sidar

3
Bunun soracağı çok şey olabileceğini düşündüm, ancak diğer yandan bu bilgilerin bir soru altında toplanması güzel olurdu. Bu ayrıca özellikle basit açıklamalar istememin nedeni.
Jaanus Varus

Yanıtlar:


43

Genel olarak konuşursak, Normal bir vektör, bir yüzeyden doğrudan "dışarı" yı gösteren yönü temsil eder; bu, düz bir yüzeyde (düz bir yüzey durumunda) veya teğet olan (düz bir yüzey durumunda) teğet olan herhangi bir vektörün ortogonal (90 derecelik açılarda) olduğunu gösterir. düz olmayan bir yüzey olması durumunda, yüzey verilen bir noktada.

Bir Teğet vektör, tipik olarak, yüzeyin düzlemi içinde bulunan (düz bir yüzey için) veya eğri bir yüzeydeki bir referans noktasına teğet yatmakta olan (yani, eğer düz bir düzlem referans noktasından aynı normalde yapılmışsa) bir vektör olarak kabul edilir. teğet vektör, bu düzlem ile düzlemsel olacaktır).

Bir Binormal vektör kavramı biraz daha karmaşıktır; Bilgisayar grafiklerinde, genellikle normal vektöre ve seçilen Teğet vektöre dik olan yüzey için "diğer" teğet vektörü olan bir Bitangent vektörü ( burada referans ) anlamına gelir .Normal, Teğet, Bitanjant

Nasıl hesaplandıkları ile ilgili olarak, bu, yüzeyin karmaşıklığına ve normalin ne kadar kesin olmasını istediğinize bağlı olarak değişir (bazı durumlarda, düz gölgelendiricilerde olduğu gibi, yaklaşık bir yüzey için normal bir hesaplamanın yapılması istenir, bir yüzey için gerçek bilgi) mevcut değildir, ancak verilen birkaç genelleştirilmiş formüller varken burada .

Nerede oluştukları konusunda, cevap her yerdedir . Normal vektörler kameraları ve nesneleri 3B uzayda konumlandırmak, yörüngeleri, yansımaları ve açıları fizik hesaplamalarında belirlemek, derileri ve dokuları 3B modellerle eşleştirmek, AI programlamada amaç yörünge ofsetlerini belirlemek, gölgelendiricilerin nasıl yapılacağına dair ipuçları vermek için kullanılır Işıklara, kameraya ve diğer nesnelere göre bir yüzey üzerinde ışık, gölge ve renk noktaları vb. Muhtemelen bir 3B ortamda olması gereken en yararlı bilgi parçalarından biridir ve hatta 2B'de de son derece kullanışlı hale gelirler.


2
Lanet bir resim ekledi olmalıdır: p
RobCurr

Ayrıntılı açıklama için teşekkür ederiz! Cevap olarak işaretlendi.
Jaanus Varus

2
Kare yama varsayımının neden geçersiz olduğu ve neden herkesin teğet ve telaşlar hakkında söylediği her şeyin sahte olduğu konusunda bu makaleyi okumak yardımcı olabilir . Kullanması gereken matematiği ana hatlarıyla belirtir, fakat ne yazık ki onunla doğru bir cevap yazabilecek kadar yetkin değilim .
Lars Viklund

Bitangent ve binormal vektörler eşdeğerdir. Bunlar aynı şeye atfedilen isimlerdir ve yalnızca hangi ismi kullanacağınızla ilgili “zihinsel bakış açınıza” bağlıdır.
Nikos

15

Normal vektörler tipik olarak aydınlatma hesaplamaları için kullanılır. Bir ağın köşeleri ile yaklaştırılan yüzeye dik olması beklenen bir vektördür. Normaller her bir tepe pozisyonunda tanımlanır, ancak ışığın o köşede nasıl yansıtmasını istediğinize veya gölgelendiricideki ışık hesaplamalarınızla ne yapmak istediğinize bağlı olarak farklı şekilde hesaplanabilir.

Teğet ve Binormal vektörler birbirine dik olan vektörlerdir ve esas olarak u, v dokusunun oluşturmaya çalıştığınız yüzeye göre koordinatlarının yönünü tanımlayan normal vektörlerdir. Tipik olarak, modeliniz için alt yüzey aydınlatma detayı yaratmanıza izin veren normal haritalarla birlikte kullanılabilir (çarpma).

Açıkçası bu vektörleri kullanmanın başka yolları da var ve bunların ortalama kullanımını az önce tarif ettim. Daha fazla teknik bilgi için bilgisayar grafikleri hakkında bir kitap almanızı veya internetteki bazı makaleleri keşfetmenizi öneririm. Bu konuda pek çok bilgi var.


4
+1 - Bir dahaki sefere olsa; resim ekle
Pieter Geerkens

9

Teğet ve binormal arasındaki fark yüzeylerde hemen daha az belirgindir, ancak bu çok şaşırtıcı olmamalıdır - binormal başlangıçta yüzeyler için değil , kavramın çok daha anlamlı olduğu (ve gerçekte nerede yaşadığı) eğriler için tanımlanmıştır. 'normal' olarak, hareket yönüne dik, yani adıdır. Daha spesifik olmak gerekirse, p = V (t) = (V x (t), V y (t), V z (t) biçiminde bir boşluk eğrisi verildiğinde , ardından teğet - içinde işaret eden bir vektör hareket yönü - T u = dp / dt = (dV x / dt, dV z / dt, dV z ile verilir/ dt). (Buradaki alt betiği, burada benim MathJax'ım olmadığı için 'normalize edilmemiş' olanı ayırt etmek için kullanıyorum.) O zaman eğri boyunca (anlık) hız sadece s = | T u |, teğet vektörün uzunluğu ve 'normalize' teğet vektör basitçe T = Tu / s'dir.

Sonra eğriye normal vektör zamanla normalize teğet vektörün türevidir, N u = dT / dt; Normalize edilmiş teğetin burada kullanılmasının nedeni, eğri boyunca hızı normal vektörü çarpıtmaktan korumaktır - bu tanımla birlikte, her zaman TN u = 0 olduğunu gösterebilirsin . N u mutlaka bir birim vektör değildir. T daha fazla bir u olduğu; Aslında, büyüklüğü k = | N u | Verilen noktadaki eğrinin (anlık) eğriliğidir ve p + N u , söz konusu oskülatör dairenin merkezidir (verilen noktada). Normalize Normal sonra sadece N = N u/ k, ve iki bitlik B, çapraz ürün B'dir = TxN; T ve N her ikisi de birim vektör olduğu ve birbirlerine dik oldukları için, B aynı zamanda bir birim vektördür ve (T, N, B) dikgen bir çerçevedir.

Bu tanımla bir eğriye 'binormal' in bir yüzeye normal olarak düşündüğümüze (eğrinin 'yerel' düzlemine normal) ve eğriye normal olana yakın olduğuna dikkat edin. bir yüzeyin bitanjanı olarak düşünüyoruz.

(Bu görüntü, ne yazık ki, kavram adaleti gerçekten yapmıyor, ancak internette bulabildiğim en iyisi ve kolayca kendimi oluşturamıyorum ...)

görüntü tanımını buraya girin

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.