Aracılığıyla paylaş


Dönüştürmeyi Görüntüle (Direct3D 9)

Bu bölümde, görünüm dönüştürmesinin temel kavramları tanıtılır ve Direct3D uygulamasında görünüm dönüştürme matrisinin nasıl ayarlanacağına ilişkin ayrıntılar sağlanır.

Görünüm dönüşümü, görüntüleyiciyi dünya uzayında bulur ve köşeleri kamera alanına dönüştürür. Kamera alanında, kamera veya görüntüleyici çıkış noktasındadır ve pozitif z yönüne bakar. Direct3D'nin sol elle kullanılan bir koordinat sistemi kullandığını, dolayısıyla z'nin bir sahnede pozitif olduğunu hatırlayın. Görünüm matrisi, dünyadaki nesneleri bir kameranın konumu (kamera alanının kaynağı) ve yönlendirme etrafında yeniden konumlandırır.

Görünüm matrisi oluşturmanın birçok yolu vardır. Her durumda, kamera, bir sahnedeki modellere uygulanacak bir görünüm matrisi oluşturmak için başlangıç noktası olarak kullanılan dünya alanında bazı mantıksal konuma ve yönlendirmeye sahiptir. Görünüm matrisi nesneleri çevirip döndürerek kamerayı çıkış noktasındaki kamera alanına yerleştirir. Görünüm matrisi oluşturmanın bir yolu, çeviri matrisini her eksen için döndürme matrisleriyle birleştirmektir. Bu yaklaşımda aşağıdaki genel matris denklemi uygulanır.

Görünüm dönüştürme

Bu formülde V, oluşturulan görünüm matrisidir, T dünyadaki nesneleri yeniden konumlandıran bir çeviri matrisidir ve Rₓ Rz x-, y ve z ekseni boyunca nesneleri döndüren döndürme matrisleridir. Çeviri ve döndürme matrisleri, kameranın dünya uzayında mantıksal konumunu ve yönlendirmesini temel alır. Bu nedenle, kameranın dünyadaki mantıksal konumu 10.20.100><ise çeviri matrisinin amacı nesneleri x ekseni boyunca -10 birimleri, y ekseni boyunca birimleri -20 ve z ekseni boyunca -100 birimleri taşımaktır. Formüldeki döndürme matrisleri, kamera alanının eksenlerinin dünya alanıyla hizalamadan ne kadar döndürülmesi açısından kameranın yönüne bağlıdır. Örneğin, daha önce bahsedilen kamera doğrudan aşağıyı gösteriyorsa, z ekseni, aşağıdaki çizimde gösterildiği gibi dünya uzayının z ekseniyle hizalamanın 90 derece (pi/2 radyan) dışındadır.

dünya uzayı ile karşılaştırıldığında kameranın görüş alanının çizimi

Döndürme matrisleri, sahnedeki modellere eşit, ancak tersi büyüklükte döndürmeler uygular. Bu kameranın görünüm matrisi x ekseni etrafında -90 derece döndürme içerir. Döndürme matrisi çeviri matrisi ile birleştirilerek, sahnedeki nesnelerin konumunu ve yönünü ayarlayarak üstlerinin kameraya dönük olmasını sağlayan ve kameranın modelin üzerinde olduğu görünümü veren bir görünüm matrisi oluşturulur.

Görünüm Matrisi Ayarlama

D3DXMatrixLookAtLH ve D3DXMatrixLookAtRH yardımcı işlevleri, kamera konumunu ve bir bakış noktasını temel alan bir görünüm matrisi oluşturur.

Aşağıdaki örnek, solak koordinatlar için bir görünüm matrisi oluşturur.

D3DXMATRIX out;
D3DXVECTOR3 eye(2,3,3);
D3DXVECTOR3 at(0,0,0);
D3DXVECTOR3 up(0,1,0);
D3DXMatrixLookAtLH(&out, &eye, &at, &up);

Direct3D, çeşitli iç veri yapılarını yapılandırmak için dünyayı kullanır ve matrisleri görüntüler. Her yeni dünya veya görünüm matrisi ayarladığınızda, sistem ilişkili iç yapıları yeniden hesaplar. Bu matrisleri sık sık ayarlamak işlem açısından zaman alır. Dünyanızı birleştirerek ve matrisleri dünya matrisi olarak ayarladığınız bir dünya görünümü matrisine dönüştürerek ve ardından görünüm matrisini kimliğe ayarlayarak gerekli hesaplamaların sayısını en aza indirebilirsiniz. Tek tek dünyanın önbelleğe alınmış kopyalarını saklayın ve gerektiğinde dünya matrisini değiştirebileceğiniz, birleştirebileceğiniz ve sıfırlayabileceğiniz matrisleri görüntüleyin. Netlik sağlamak için örneklerde nadiren bu iyileştirme kullanılabilecek.

Dönüşüm