Şablon Görünümü Oluşturma – Analizi Yaptırma Fiyatları – Yazılım Analizi Örnekleri – Ücretli Analizi Yaptırma – Ücretli Yazılım Yaptırma

info@akademidelisi.com * 0 (312) 276 75 93 * Her bölümden, Ödev Yazdırma, Proje Yaptırma, Tez Yazdırma, Rapor Yazdırma, Makale Yazdırma, Araştırma Yazdırma, Tez Önerisi Yazdırma talepleriniz için iletişim adreslerini kullanın. Makale YAZDIRMA siteleri, Parayla makale YAZDIRMA, Seo makale fiyatları, Sayfa başı yazı yazma ücreti, İngilizce makale yazdırma, Akademik makale YAZDIRMA, Makale Fiyatları 2022, Makale yazma, Blog Yazdırma, Blog Yazdırmak İstiyorum

Şablon Görünümü Oluşturma – Analizi Yaptırma Fiyatları – Yazılım Analizi Örnekleri – Ücretli Analizi Yaptırma – Ücretli Yazılım Yaptırma

3 Mayıs 2023 Hazır şablon Word şablon oluşturmak Yazı şablonu oluşturma 0
İşlevsel Olmayan Nitelikler

Derinlik Şablon Görünümü Oluşturma

Merkez küpün etrafında dönen ışıklarımız olduğundan, doğru işleme sonuçları sağlamak için ekrana çizilen her pikselin derinliğini takip etmek için derinlik arabelleğini kullanırız. Önce bir derinlik arabelleği (yani bir DepthStencil dokusu) oluşturuyoruz.

Ardından, derinlik arabelleğini grafik boru hattına bağlamak için derinlik arabelleğinin bir DepthStencilView’ını yaratırız. Aşağıda bir derinlik arabelleği ve bir DepthStencilView oluşturmak için kullanılan kod bulunmaktadır. Bir doku oluşturmak için bir D3D10_TEXTURE2D_DESC yapısını dolduruyoruz.

BindFlags parametresi, Direct3D’nin dokunun derinlik tamponu olarak kullanılacağını bilmesi için D3D10_BIND_DEPTH_STENCIL olarak ayarlanmıştır. Ardından bir DepthStencil görünümü oluşturmak için bir D3D10_DEPTH_STENCIL_VIEW_DESC yapısını dolduruyoruz.

Direct3D 10’da, doku kaynaklarına, donanımın bellekteki bir kaynağı yorumlama mekanizması olan bir görünümle erişilir. Görünüm, cihaza işleme sırasında bir dokuya nasıl erişilmesi gerektiğini söyleyen bir nesnedir.

OMSetRenderTargerts yöntemini çağırarak derinlik stencil görünümünü aynı anda render hedef görünümü ile grafik işlem hattına bağlarız. OMSetRenderTargets yönteminin üçüncü parametresi, derinlik şablon görünümüne yönelik bir işaretçidir. Aşağıdaki kodda, hem oluşturma hedef görünümünü hem de derinlik kalıp görünümünü ayarlamak için OMSetRenderTargets yöntemini çağırıyoruz.

Giriş Düzeni Oluşturma

Bu örnekte, köşe konumlarına ek olarak, grafik boru hattına köşe normalleri ekleyeceğiz. Köşe yerleşimi yapımızı, köşe konumları ve normaller için iki D3DXVECTOR3 alanıyla tanımlarız.

Ardından bir D3D10_INPUT_ELEMENT_DESC dizisi oluşturarak giriş düzenini tanımlarız. Dizinin içinde, her öğe bir köşe özelliğine karşılık gelir. Konum ve normal olmak üzere iki köşe niteliği kullandığımız için, giriş düzeni dizisinin de iki öğesi vardır.

İlk eleman köşe konumu içindir ve ikincisi tepe normali içindir. İkinci öğe için, D3D10_INPUT_ELEMENT_DESC yapısındaki AlignedByteOffset alanına 12’yi ayarladık çünkü ilk öğe olan köşe konumu, üç kayan noktalı sayı için 12 bayt alır. Giriş düzenini oluşturmak ve onu grafik boru hattına bağlamak için aşağıdaki kodu kullanıyoruz.

Küp Geometrisi Oluşturma

CreateVertexBuffer() yönteminin içinde, bir küp için köşe arabelleğini oluşturuyoruz. İlk olarak, küpün altı yüzü için 24 köşe oluşturuyoruz, burada her yüz dört köşe içeriyor. Köşe arabelleği, köşeler için konumları ve normalleri içerir.

Örneğin, ilk üçgen 3, 1 ve 0 noktalarıyla tanımlanır. Bu, ilk üçgenin şu noktalarda köşelere sahip olduğu anlamına gelir: (-1.0f, 1.0f, 1.0f), (-1.0f, -1.0f, -1.0) f) ve (-1.0f, -1.0f, 1.0f) sırasıyla. Her küp yüzünün iki üçgeni vardır. Toplamda burada 12 üçgen tanımlıyoruz.

Dizin arabelleğinin oluşturulması, yapıda boyut ve tür gibi parametreleri belirttiğimiz ve D3D10_BIND_INDEX_BUFFER türüyle CreateBuffer() yöntemini çağırdığımız köşe arabelleğine çok benzer.

Son olarak, indeks arabelleğini grafik boru hattına bağlamak için ID3D10Device::IASetIndexBuffer() yöntemini çağırıyoruz ve köşeleri bir üçgen listesi olarak işlemek için ID3D10Device::IASetPrimitiveTopology() yöntemini çağırıyoruz.


Word şablon oluşturma
Hazır Word şablonları
Word şablonları ücretsiz
Yazı şablonu oluşturma
Hazır şablon
Word şablon indir
Online şablon oluşturma
Excel şablon oluşturma


Effect Nesnesindeki Değişkenlere Erişmek için Arayüzler

Efekt nesnesinde g_worldMatrix, g_viewMatrix, g_projectionMatrix, g_lightDirections, g_lightColors, g_solidLightColor, g_eyePosition ve g_lightingMode olmak üzere sekiz değişkenimiz var. Direct3D 10 bazı sabit grafik işlevlerini grafik ardışık düzeninden kaldırdığından, gölgelendirici programlama için grafik ardışık düzenine dünya, görünüm ve projeksiyon dönüştürme matrislerini göndermek için üç matris değişkeni, g_worldMatrix, g_viewMatrix ve g_projectionMatrix kullanıyoruz.

Yönlü aydınlatma için, g_lightDirections değişkeni ışık yönünü grafik hattına gönderir. Nokta aydınlatması ve spot aydınlatma için, g_lightPositions değişkeni ışık konumunu ardışık düzene gönderir.

g_solidLightColor değişkeni, sabit açık rengi grafik hattına göndermek için kullanılır. Örnekte, ışıkları sabit açık renklere sahip küçük küpler olarak gösteriyoruz. Aynasal ışık bileşenini g_eyePosition değişkeni ile göz konumunu kullanarak hesaplıyoruz. g_lightingMode değişkeni, geçerli aydınlatma modunu tanımlar: yönlü, aynasal ile yönlü, nokta, aynasal ile nokta, aynasal ile spot, aynasal ile nokta ve yarım küre aydınlatma vb.

Sahneyi Oluşturma

Sahneyi işlemek için önce işleme hedefini ve işleme için derinlik şablon arabelleğini temizliyoruz. Aşağıdaki kod, önceki karelerdeki derinlik değerlerinin geçerli karedeki pikselleri yanlışlıkla atmamasını sağlar. Her karede derinlik tamponunu maksimum değere (1.0) ayarladık.

Önceki örnekte, sadece x ve y koordinatlarını değiştirerek köşe gölgelendiricide animasyon uyguladık. Yörünge ve dönüşü uygulamak için bu örnekte daha fazlasını yapmamız gerekiyor. Uygulamada, 3D dönüşümü gerçekleştirmek için gerekli olan dünya matrisi, görüş matrisi ve projeksiyon matrisini kuruyoruz.

Oluşturmadan önce, D3DXMatrixIdentity() yöntemini çağırarak dünya matrisini bir kimlik matrisi olarak başlatıyoruz. Ardından, D3DXMatrixLookAtLH() yöntemini çağırarak görünüm matrisini başlatıyoruz. Yöntem, üç giriş parametresi, göz konumu, kamera bakış konumu ve dünya yukarı vektörü ile soldan bakma matrisi oluşturur.

Göz konumunu g_eyePosition global değişkeninde tanımlıyoruz, kamerayı bakış noktasına (0,0,0) ayarlıyoruz ve pozitif y yönünü dünya yukarı vektörü olarak kullanıyoruz.

FOVy, Aspect, Zn ve Zf olmak üzere dört parametre gerektiren D3DXMatrixPerspectiveFovLH() yöntemiyle bir projeksiyon matrisi oluşturuyoruz. FOVy, Y yönündeki görüş alanıdır. Görünüş, görüş alanı genişliğinin yüksekliğe oranıdır. Zn ve Zf sırasıyla görüş uzayındaki yakın ve uzak Z değerleridir.

Çalışma zamanında, animasyon için dünya matrisini güncelleriz. RenderScene() yönteminde, geçerli kare süresine dayalı bir dünya döndürme matrisi oluşturmak için D3DXMatrixRotationYawPitchRoll()’u çağırıyoruz. Merkez küpü dönüştürmek için dünya matrisi kullanılacaktır. Dünya matrisi x, y ve z yönünde farklı dönüş açılarına sahip olacak şekilde ayarlanmıştır.

Merkez küpün etrafında dönen üç ışık kullandığımız için, çalışma zamanında ışık yönlerini ve konumlarını da güncellememiz gerekiyor. İlk ışığı z ekseni etrafında, ikinci ışığı x ekseni etrafında ve üçüncü ışığı da y ekseni etrafında dönecek şekilde ayarladık.

Işık yönlerini döndürmek için, ilk ışık yönlerini D3DVECTOR4’ün (dört kayan nokta sayısına sahip bir vektör) dizisi olan yerel bir lightDirs değişkeninde depolarız. Ardından, ışık yönü vektörlerini döndürmek için D3DXMatrixRotation() yöntemini ve D3DXVec3Transform yöntemini çağırıyoruz.

yazar avatarı
akademi22 akademi22

 

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir