Giriş Düzeni 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

Giriş Düzeni 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 .Com uzantılı site açmak ücretsiz Google web sitesi Kurma ücretsiz Web sitesi Kurma ücretsiz 0
Ön ve Son İşleme

Doku Eşleme

Burada, gölgelendiricilerde doku eşlemenin nasıl uygulanacağını gösteriyoruz. Bu örnek, tek doku eşleme, çoklu doku eşleme, ışıkla doku eşleme, doku animasyonu, ışık eşleme ve kabartma eşleme içerir. Ayrıca bu örnekte render-to-texture efektini de uyguluyoruz.

Bu örnekte, sahnede dönen bir küp oluşturuyoruz ve doku eşleştirmenin yanı sıra dokudan dokuya göstermek için kübe farklı dokular uyguluyoruz. Dokuya dönüştürmenin temel fikri, sahneyi bir dokuya çekmek ve ardından dokuyu sahnedeki bir veya daha fazla nesneye uygulamaktır.

Görünümler Oluşturma

Örnekte iki render hedefi görünümü (g_pD3D10RenderTargetView ve g_pD3D10TextureRenderTargetView) oluşturuyoruz. g_pD3D10RenderTargetView, takas zinciri geri arabelleğinden oluşturulur. Nihai işleme sonucunu görüntülemek için kullanıyoruz. g_pD3D10TextureRenderTargetView, ayrı bir 2B dokudan oluşturulur.

Dokuya işlemeyi kullanırken, sahneyi ikinci işleme hedef görünümüne işleyeceğiz ve ardından işleme sonucunu son işleme sonucu için bir doku olarak kullanacağız.

Yukarıda, önce DXGI_FORMAT_R8G8B8A8 _UNORM biçiminde bir 2B doku oluşturuyoruz ve D3D10_BIND_RENDER_TARGET | D3D10_BIND_SHADER_RESOURCE. D3D10_BIND_SHADER_RESOURCE’u bind flag’lerinde belirtiyoruz, böylece shader’da texture’e erişebiliyoruz.

Varsayılan derinlik şablon dokusu g_pD3D10DepthStencil’e ek olarak, işlemeden dokuya için ikinci bir derinlik şablon dokusu, g_pD3D10TextureDepthStencil oluşturmamız gerekiyor. Bu iki derinlik şablon dokusu aynı biçime sahiptir. Ayrıca, varsayılan derinlik şablon görünümü g_pD3D10DepthStencilView ile aynı biçime sahip ikinci bir derinlik şablon görünümü g_pD3D10TextureDepthStencilView oluşturuyoruz.

Giriş Düzeni Oluşturma

Doku eşleme için, her köşe için doku koordinatlarını belirtmemiz gerekir. Bu örnekte köşe yapımızı beş alanla tanımlıyoruz. İlk üç alan köşe konumu, doku koordinatları ve normal için kullanılır. Son iki alan tepe teğet vektörü ve ikili normal vektör için kullanılır. Bu iki alan, kabartma eşleme örneğinde kullanılır. Bu iki alanı bump mapping bölümünde açıklayacağı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.

İlk eleman köşe konumu içindir; ikincisi köşe doku koordinatları içindir; ve üçüncüsü köşe normali içindir. İkinci öğe için, D3D10_INPUT_ELEMENT_DESC yapısındaki AlignedByteOffset alanına 12 atarız, çünkü ilk öğe olan köşe konumu, üç kayan noktalı sayı için 12 bayt alır.

Üçüncü öğe için, D3D10_INPUT_ELEMENT_DESC yapısındaki AlignedByteOffset alanına 20 değerini ayarladık çünkü ilk öğe, köşe konumu ve ikinci öğe, doku koordinatları, beş kayan noktalı sayı için 20 bayt alıyor. Benzer şekilde, dördüncü ve beşinci öğeler için uzaklık 32 ve 48’dir. Aşağıda, giriş düzenini oluşturmak ve onu grafik boru hattına bağlamak için kullanılan kod bulunmaktadır.


En iyi ücretsiz site Kurma
.Com uzantılı site açmak ücretsiz
Web sitesi Kurma ücretsiz
Google web sitesi Kurma ücretsiz
Hazır Web Sitesi ücretsiz
Hazır Web sitesi
Profesyonel hazır web sitesi
Hazır web sitesi Fiyatları


Render-to-texture İşlevi

Çalışma zamanında, render-to-texture’ı etkinleştirmek veya devre dışı bırakmak için klavyedeki “R” tuşuna basabiliriz. Varsayılan olarak örnek, dokuya dönüştürmeyi devre dışı bırakır. Aşağıdaki kod, normal doku eşlemenin yanı sıra dokuya işlemeyi gösterir.

g_renderToTexture değişkeni doğru olduğunda, g_pD3D10TextureRenderTargetView ve _pD3D10TextureDepthStencilView kullanmak için OMSetRenderTargets()’ı çağırırız. Ardından, sahneyi oluşturma hedef dokusuna dönüştürmek için DrawIndexed() yöntemini çağırırız.

İşleme tamamlandıktan sonra, g_pD3D10RenderTargetView ve g_pD3D10DepthStencilView’e geri dönmek için OMSetRenderTargets()’ı tekrar çağırıyoruz. Bu durumda, varsayılan ahşap dokusu yerine g_pTextureRenderTargetSRV işlenmiş dokusunu kullanmak için g_pMainTexVariable öğesini değiştiririz. Ardından, sahneyi küp üzerine uygulanmış işlenmiş doku ile işlemek için DrawIndexed() yöntemini çağırırız. Son efekt, küpün tüm yüzlerine işlenen tüm sahnedir.

g_renderToTexture değişkeni yanlış olduğunda, g_pD3D10RenderTargetView ve g_pD3D10DepthStencilView’ü kullanmak için basitçe OMSetRenderTargets()’ı çağırırız. Ardından, varsayılan dokuları kullanarak sahneyi ekrana işlemek için DrawIndexed() yöntemini çağırırız.

Şimdi Example03.fx dosyasını açıklıyoruz. Yine global değişkenleri tanımlayarak başlıyoruz. Yeni değişken türleri, Texture2D ve SamplerState’tir.

Direct3D 10’da dokular ve örnekleyiciler bağımsız nesnelerdir. Her doku nesnesi, bir örnekleyiciyi giriş parametresi olarak alan doku örnekleme yöntemlerini uygular. Örnekleyici, gölgelendiricilere sağlanan dokuyu nasıl örnekleyeceğini söyler. Bu örnekte doğrusal bir filtre kullanıyoruz.

Vertex shader ve pixel shader için giriş yapıları önceki örneklerden farklıdır. VS_INPUT yapısının üç öğesi vardır: köşe konumu, doku koordinatları ve normal. PS_INPUT yapısı dört öğeye sahiptir: piksel konumu, piksel doku koordinatları, piksel yüzey normali ve enterpolasyonlu köşe dünya alanı koordinatları.

Vertex shader’da, Direct3D ardışık düzen işlemesi için köşe konumunu dönüştürüyoruz. Dönüştürülen tepe noktası konumunu, doku koordinatlarını ve dünya alanı tepe konumu ve normalini piksel gölgelendiriciye iletiyoruz. Ayrıca küpü, köşeleri geçerli çerçeve süresine göre ölçeklendirerek canlandırıyoruz.

Piksel gölgelendiricide, g_textureMappingMode global değişkeninin değerine bağlı olarak farklı doku eşleme teknikleri uyguluyoruz.

Basit Doku Eşleme

Basit doku eşlemede, kübe tek bir doku uyguluyoruz. Piksel rengi, doku nesnesi Sample() işlevi tarafından belirlenir. Sample() işlevi, bir örnekleyiciyi ve doku koordinatlarını giriş parametreleri olarak alır ve bir renk döndürür.

Çoklu Doku Eşleme

Piksel gölgelendiricideki çoklu doku eşleme oldukça basittir. Farklı doku nesnelerinin Sample() işlevinden döndürülen renkleri son piksel rengi olarak toplarız. Bu durumda, ana ahşap dokusundan dönen renkleri ve bir metin dokusunu ekledik. Son etki, metni ahşap doku üzerine çizmektir.

Doku ve Aydınlatma

Aydınlatma ve doku eşlemeyi birleştirmek için, geçerli piksel konumundaki doku renklerini hesaplanan açık renklerle çarparız. Piksel gölgelendiricide speküler ile yönlü bir ışık uyguluyoruz.

Doku Animasyonu

Animasyon efektleri oluşturmak için piksel gölgelendiriciyi de kullanabiliriz. Bu bölümde, salınımlı bir etki elde etmek için doku koordinatlarını zamanla değişen bir tarzda bozan bir gölgelendiriciye bakıyoruz. Jelatinimsi bir yüzeyi veya “dans eden” bir logoyu simüle etmek için animasyonlu bir efekt üretebiliriz.

Efekt fikri, doku örnekleme işleminden önce doku koordinatlarını bozmak için piksel gölgelendiricide bir sinüs işlevi kullanmaktır. Pertürbasyonun miktarı ve sıklığı, uygulamadan gönderilen global değişkenler aracılığıyla kontrol edilebilir. Örnekte, piksel gölgelendiricide yerleşik bir sabit ve frekans kullanıyoruz. Efekti uygulayan kod aşağıda listelenmiştir.

yazar avatarı
akademi22 akademi22

 

Bir yanıt yazın

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