Giriş Düzeni Oluşturma – Analizi Yaptırma Fiyatları – Yazılım Analizi Örnekleri – Ücretli Analizi Yaptırma – Ücretli Yazılım Yaptırma
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.
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.
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 programlaması 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 ve yarımküre aydınlatma vb.
Slayt düzeni örnekleri
Online PPT düzenleme
PowerPoint slayt düzenleri
Sunumları farklı sıra ve düzende kaydederek oluşturulan sunumlara verilen isim
Paragraf başı nasıl yapılır örnek
Word Tasarım örnekleri
word’de paragraf başı yapma tuşu
Powerpoint slayt düzenleri nelerdir
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 ayarlıyoruz.
Ö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 bir soldan bakış 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. Tüm bunların kodu aşağıda listelenmiştir.
Ç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.
Daha önce bahsedildiği gibi, dönen bir küpün yanı sıra yörüngede dönen üç ışık kaynağı oluşturacağız. Bu örnekte, RenderScene ve RenderLight olmak üzere iki teknik kullanıyoruz. İlk teknik, aydınlatma efektini merkez küp üzerinde oluşturmaktır. İkinci teknik, ışık kaynaklarını temsil eden tek renkli küpler oluşturmaktır.
Merkez küpü işleme kodu, önceki örneklerdeki işleme koduyla hemen hemen aynıdır. Tek fark, dizinlenmiş ilkelleri çizmek için DrawIndexed() yöntemini kullanıyor olmamızdır. Köşelere endeksler kullanmak, ilkel çizimde tekrar eden köşeleri kaydeder. Her dizin, köşe arabelleğinde bir köşeye atıfta bulunur.
DrawIndexed() yöntemi, IndexCount, StartIndexLocation ve BaseVertexLocation olmak üzere üç parametreyi kabul eder. IndexCount, çizilecek indekslerin sayısıdır. StartIndexLocation, ilk dizinin başlangıcıdır. BaseVertexLocaton, ilk köşenin indeksidir. Küpü işlemek için kullanılan kod vardır.
Kırmızı, yeşil ve mavi renklerde üç ışığımız var. Işık kaynaklarını oluşturmak için, ışık kaynağı küpleri için yeni köşeler oluşturmak yerine merkez küp için aynı geometriyi kullanıyoruz. Farklı konumlarda farklı boyutlarda küpler çizmek için öteleme ve ölçekleme matrislerini hesaplıyoruz. Işık konumlarını ışık yönlerine göre hesaplıyoruz.
Ardından merkez küpü dönüştürmek ve ölçeklendirmek için D3DXMatrixTranslation() yöntemini ve D3DXMatrixScaling() yöntemini çağırıyoruz. Her ışık için, çeviri ve ölçeklendirmeyi yansıtacak şekilde dünya projeksiyon matrisini güncelliyoruz. Ayrıca grafik ardışık düzenine kırmızı, yeşil ve mavi ışık renkleri göndeririz. Son olarak, ışık kaynaklarını tek renkli küçük küpler olarak işlemek için ikinci teknik olan g_pD3D10TechniqueRenderLight’ı kullanıyoruz.
Online PPT düzenleme Paragraf başı nasıl yapılır örnek Word Tasarım örnekleri PowerPoint slayt düzenleri Powerpoint slayt düzenleri nelerdir Slayt düzeni örnekleri sunumlara verilen isim Sunumları farklı sıra ve düzende kaydederek oluşturulan word'de paragraf başı yapma tuşu