Model Görünümü Projeksiyon Matrisinin amacı


102

Model Görünümü Projeksiyon Matrisini hangi amaçlarla kullanıyoruz? Gölgelendiriciler neden Model Görünümü Projeksiyon Matrisine ihtiyaç duyar?


12
Şu bağlantıya bir göz atmanız
yeterli

3
Computer Graphics'e ayrılmış bir Stack Exchange sitesi açmayı önerdim ve bu soruyu örnek bir soru olarak seçtim . Açılan siteyi görmek istiyorsanız computergraphics.stackexchange.com adresini takip edin !
2013

Yanıtlar:


196

Model, görünüm ve projeksiyon matrisleri üç ayrı matristir. Bir nesnenin yerel koordinat alanından dünya alanına haritalar modelleyin, dünya alanından kamera alanına görüntüleme, kameradan ekrana projeksiyon.

Üçünü de oluşturuyorsanız, bir sonucu nesne alanından ekran alanına kadar tüm yolu haritalamak için kullanabilirsiniz, böylece gelen tepe konumlarından programlanabilir bir ardışık düzeneğin sonraki aşamasına geçirmeniz gerekenleri hesaplayabilirsiniz.

Eski sabit işlevsellik ardışık düzenlerinde, model ve görüntülemeyi birlikte uygularsınız, ardından onlardan türetilen başka bir sonucu kullanarak ışıklandırma üzerinde çalışırsınız (bazı düzeltmelerle, böylece nesneye biraz ölçeklendirme uygulamış olsanız bile normaller hala birim uzunluktadır. ), ardından projeksiyonu uygulayın. Bunun modeli ve matrisleri asla ayırmayan OpenGL'de yansıtıldığını görebilirsiniz - onları tek bir model görünüm matrisi yığını olarak tutar. Bu nedenle bazen bunun gölgelendiricilere de yansıdığını görürsünüz.

Dolayısıyla, oluşturulan model görünümü projeksiyon matrisi, genellikle gölgelendiriciler tarafından her model için yüklediğiniz köşelerden ekrana eşlemek için kullanılır. Gerekli değil, aynı şeyi başarmanın pek çok yolu var, sadece olağan çünkü tüm olası doğrusal dönüşümlere izin veriyor. Bu nedenle, daha az derlenmiş bir versiyonu, eski sabit boru hattı dünyasında da bir normdu.


3
bu yüzden birkaç nesne (ağ) için birkaç modelView matrisine ihtiyacımız var, değil mi?
Yuriy Vikulov

5
Bağımsız hareket edebileceklerini veya ayrı konumlandırılabileceklerini varsayarsak, evet sonra. Yani bu, uzaklaşmanın en yaygın yoludur - modelView veya projectionModelView'ü, CPU'daki mevcut model için ayarladıktan sonra gölgelendirici programına tek tip olarak geçirmek.
Tommy

Merhaba Tommy, Mümkünse bu Model Görünümü Projeksiyon Matrisini kullanarak Android'de Opengl Es2.0'da pan işlevi için herhangi bir örnek kod önerebilir misiniz? Daha fazla bağlantıya hakem oldum, net bir fikir alamadım. Herhangi bir örnek kod anlamı benim için anlaşılması kolay ..
harikrishnan

1
Bir sorum var. OpenGL, MV matrisini bir olarak kullanıyorsa ve kamera uzayından dünya uzayına gitmeye gidersek, tersine çevirmemiz gerekir (projeksiyon matrisi * görünüm matrisi) * (imleç konumu), ancak model görünümü birleşik bir matris ise. Bu hesaplama için görünüm matrisini kullanabilmem için modeli ve görünüm matrisini nasıl ayırırız. Yani onları ayrı tutmam mı gerekiyor?
Evren Bingøl

@ EvrenBingøl Cevabınızı henüz almadınız mı? Modelimi ve matrisleri ayrı tuttum, ancak sorunuzu ayırmaya devam edip etmeyeceğimi sormanın gerçek cevabını bilmek istiyorum.
tom_mai78101

9

Çünkü matrisler uygundur. Matrisler, farklı alanlara göre konumları / yönleri dönüştürmeye yardımcı olur (Bir boşluk 3 dikey eksen ve bir başlangıç ​​noktası ile tanımlanabilir).

İşte yorumlarda @ legends2k ile belirtilen bir kitaptan bir örnek.

Cartesia sakinleri, şehirlerinin haritasını oldukça mantıklı bir şekilde şehrin merkezinde ortalanmış ve eksenleri pusulanın ana noktaları boyunca yönlendirilmiş olarak kullanırlar. Disleksi sakinleri, koordinatları rastgele bir noktaya ortalanmış ve eksenleri bazı gelişigüzel yönlerde ilerleyen, o zamanlar muhtemelen iyi bir fikir gibi görünen şehirlerinin bir haritasını kullanıyorlar. Her iki şehrin vatandaşları da kendi haritalarından oldukça memnunlar, ancak Devlet Ulaştırma Mühendisi, Kartezya ve Disleksi arasındaki ilk otoyol için bir bütçe hazırlama görevi atadı, her iki şehrin ayrıntılarını gösteren bir haritaya ihtiyaç duyuyor, bu nedenle üçüncü bir koordinat tanıtıyor. bir başkasından olmasa da ondan üstün olan bir sistem.

İşte başka bir örnek,

Bir oyunda, dünyanın koordinatlarını kullanarak tepe konumlarına sahip bir araba nesnesi oluşturduğunuzu varsayalım. Bu aynı arabayı tamamen farklı bir dünyada başka bir oyunda kullanmanız gerektiğini varsayalım, pozisyonları yeniden tanımlamanız gerekiyor ve hesaplamalar karmaşıklaşacak. Bunun nedeni, yeni dünyaya göre arabadaki cam, kaput, far, tekerlek vb. Konumlarını yeniden hesaplamanız gerektiğidir.

Bkz bu model görünümü ve projeksiyon kavramları anlamak için video. (şiddetle tavsiye edilir)

Sonra bakın bu dünyada köşe Matris olarak temsil edilir ve nasıl dönüşür anlamak için.


Bunu derinlemesine düşünürseniz, dönüşümün bir nesnenin kökenine (yani tek bir noktaya) dayanmasına rağmen, nesnenin tüm köşelerinin (resmi olarak ağ / model) dönüşüme uğrayacağını, yani tüm 1000 köşenin çarpılacağını fark edeceksiniz. model matrisine göre. Dolayısıyla, amacınız iyi biçimlendirilmiş değil. Model matrisi basitçe model uzayındaki köşeleri dünya uzayına dönüştüren matristir. Burada performans avantajı yok, sadece kolaylık.
efsaneler2k

Öyleyse, neden her noktayı tek bir 3B alanda temsil etmiyorlar? Bir sahnenin çıktısını başka bir hareketli sahneye girdi olabilecek başka bir sahneye kullandığınızda faydalar olmalı :)
cegprakash

1
Göreli bir alanda çalışmak, dünya gibi daha büyük bir alanda çalışmak daha uygun olduğundan, tek bir alandaki tüm köşeleri temsil etmezler. Diyelim ki bir robota 2 metre ileriye gitme komutu verildiğinde, onu gözüne dikmek, dünyanın merkezini bulmaktan ve sonra doğru koordinatları hesaplamaktan daha uygun.
efsaneler2k

Sanırım haklısın .. Her neyse her piksel için parça gölgelendiricisi çağrılacak ve karmaşık ağlarda her piksel için matris çarpımları yapacağız. : |
cegprakash

2
Parça gölgelendiricisinde yalnızca ışıklandırma / renklendirme hesaplamaları yapılır, veriler parça gölgelendiricisine ulaştığında, tüm konum hesaplamaları tamamlanır (yani köşe gölgelendiricisinde); Neden çoklu koordinat sistemlerinin kullanıldığına dair daha iyi bir açıklama burada . Bu kitap mükemmel bir 3D oyun matematik kaynağıdır. Kitabın web sitesinden bir örnek PDF olarak aynı bölüm .
efsaneler2k
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.