Sistem Yöntemleri – Analizi Yaptırma Fiyatları – Yazılım Analizi Örnekleri – Ücretli Analizi Yaptırma – Ücretli Yazılım Yaptırma
Sistem Yöntemleri
Kullanıcıların işleme için farklı ilkelleri seçmesine izin vermek için, sistem tarafından oluşturulan WndProc() yöntemini WM_KEYDOWN mesajını işleyecek şekilde değiştiriyoruz. Kullanıcılar klavyede boşluk tuşuna her bastığında, g_currentPrimitiveTopo’yu bir artırıyoruz ve geçerli çizim ilkel türünü ayarlamak için SetPrimitiveTopology()’yi çağırıyoruz.
Ayrıca, mevcut ilkel türüyle eşleşmesi için pencere başlığı dizesini de değiştiriyoruz. SetPrimitiveTopology() yöntemi, g_currentPrimitiveTopo’ya dayalı olarak geçerli çizim ilkel türünü ayarlamak için basit ve kullanışlı bir yöntemdir. Geçerli çizim türünü ayarlamak için ID3DDevice::IASetPrimitiveTopology() yöntemini çağırıyoruz.
Daha sonra, gerçek işlemeyi yapmak için RenderScene() yöntemini değiştiriyoruz. Tekniği açıklayan bir D3D10FX_TECHNIQUE_DESC yapısını almak için InitD3D10Device() içinde elde edilen teknik nesnesinde ID3D10EffectTechnique::GetDesc()’i çağırarak başlıyoruz. Passes adlı üye, tekniğin içerdiği işleme geçişlerinin sayısını belirtir.
Bu tekniği kullanarak doğru bir şekilde işlemek için, tüm geçişlerden geçmeliyiz. Döngü içinde, geçerli geçiş nesnesini elde etmek için önce tekniğin GetPassByIndex() yöntemini çağırmalıyız, ardından ilişkili gölgelendiricileri bağlamak ve durumları grafik boru hattına işlemek için Apply() yöntemini çağırmalıyız.
ID3D10Device::Draw() yöntemi, GPU’ya geçerli köşe arabelleğini, köşe düzenini ve ilkel topolojiyi kullanarak işlemesi için komut verir. Draw()’daki ilk parametre, çizmek için kullanılan köşe sayısıdır ve ikinci parametre, çizilecek ilk köşenin indeksidir. Oluşturma kodunun tamamı aşağıda listelenmiştir. Boşluk çubuğuna bastığımızda, oluşturma noktaları, çizgiler ve üçgenler arasında geçiş yapacaktır. Üçgenleri işlemenin anlık görüntüsüdür.
Gölgelendiricileri Kullanan Animasyon
Bu örnekte, ilkel animasyonlar için gölgelendiriciler kullanıyoruz. Örnek01.fx efekt dosyasında shaderları aşağıdaki gibi yazıyoruz.
Efekt dosyaları, üst düzey gölgelendirme dili (HLSL) kullanılarak yazılır. Bu bölümde, efekt dosyalarımızın üç farklı bölümü vardır: global değişkenler, gölgelendiriciler ve teknikler. Tıpkı bir C programında olduğu gibi, önce dosyanın en üstünde, uygulamadan gölgelendiricilere değer göndermek için kullanılan global değişkenleri bildiririz.
Normalde bu değişkenler uygulama tarafından başlatılır ve ardından gölgelendiricilerde kullanılır. Genel değişkenler, bir C++ programındaki sabitlere ve değişkenlere benzer. Bu örnekte, bir genel değişken kullanıyoruz: g_time. Değişken, ilkel animasyon için kare süresini kaydetmek için kullanılır. Uygulama, her karede bu değişkenin değerini ayarlarken, gölgelendirici değeri ilkelleri canlandırmak için kullanacaktır.
Değişkene erişmek için InitD3D10Device() yönteminde bulunan ID3D10Effect::GetVariableByName() yöntemini çağırarak uygulamadaki değişkene bir arabirim elde ediyoruz.
Yöntem, değişken adı için bir dize parametresi kabul eder. Uygulamada, yöntemin döndürdüğü arabirimi tutmak için ID3D10EffectScalarVariable türünde bir işaretçi değişkeni g_pTimeVariable kullanıyoruz. Efekt dosyasında g_time global değişkenine erişim elde etmek için kullanılan kod aşağıdadır.
Efekt dosyasındaki g_time değişkeninin veri türü kayan noktalı bir sayıdır, bu nedenle arabirimi elde etmek için AsScalar() yöntemini çağırıyoruz. Gelecekteki örneklerde, efekt dosyasında vektör veya matris gibi başka türde değişkenlere sahip olmanın mümkün olduğunu göreceğiz. Bu tür değişkenlere erişmek için AsVector() veya AsMatrix() gibi karşılık gelen bir yöntem kullanmamız gerekir.
Sistem örnekleri
Yönetimde sistem yaklaşımı nedir
Sistem nedir
Basit sistem örnekleri
Açık sistem Nedir
Açık ve kapalı sistem örnekleri
Eğitimde sistem Nedir
Açık sistem Teorisi nedir
Ayrıca, tıpkı C++ işlev kapsamı kuralları gibi, efekt dosyasındaki efekt işlevlerinin kapsamı dışında bildirilen değişkenler, efekt boyunca görünür; Bir efekt fonksiyonunun içinde beyan edilen değişkenler, yalnızca o fonksiyon içinde görünür.
Efektimizin ikinci kısmı, küçük çalıştırılabilir programlar olan gölgelendiricilerdir. Direct3D 10 işlem hattı, üç farklı türde gölgelendirici kullanır. Köşe gölgelendirici, her köşe girişinin bir köşe çıkışı verdiği köşe verileri üzerinde çalışır. Bir geometri gölgelendirici, ilkel veriler üzerinde çalışır; her ilkel girdi sıfır, bir veya birçok çıktı ilkel üretebilir.
Bir piksel gölgelendirici, piksel verileri üzerinde çalışır ve piksel ayıklanmadıkça her piksel girişi, bir piksel çıktısı üretir. Gölgelendiriciler, C stili işlev kurallarına göre yerel işlevler olarak yazılır.
Bu örnekte, yalnızca köşe ve piksel gölgelendiricileri kullanıyoruz. Köşe gölgelendiricide, animasyon için köşe x ve y koordinatlarını değiştiririz. Köşe koordinatlarına bağlı olarak köşe rengini de hesaplıyoruz. Ardından, piksel gölgelendirici işlemesi için köşe gölgelendirici çıktısı (köşe konumları ve renkler) enterpole edilir. Bu örnekte, piksel gölgelendirici çıktısı basitçe enterpolasyonlu piksel rengidir.
Vertex shader çıktısını pixel shader’a geçirmek için vertex shader çıkış yapısını tanımlarız. Yapı, konum ve renk için iki alana sahiptir. Bu alanların her ikisi de 4 elemanlı kayan nokta vektörleridir.
Example01.fx’te, bir işleme geçişleri koleksiyonu içeren RenderScene adlı bir teknik tanımlıyoruz. RenderScene tekniğinin kodu aşağıda listelenmiştir.
Yukarıdaki kodda, Direct3D’ye köşe ve piksel gölgelendiricilerini derlemesini söylüyoruz. Burada geometri gölgelendirici kullanmadığımız için, geometri gölgelendirici için işlem hattına basitçe bir NULL geçiriyoruz. Artık Example01.exe’yi çalıştırabilir ve animasyonlu konumlar ve renklerle ekranda işlenen farklı ilkelleri görebiliriz.
Bu örnekte piksel aydınlatmanın nasıl uygulanacağını tartışıyoruz. Piksel gölgelendiricideki her piksel için ışık bileşenlerini hesaplıyoruz. Köşe aydınlatması ile karşılaştırıldığında, piksel aydınlatması daha yumuşak ve daha gerçekçi bir gölgeleme efekti sağlar.
Aydınlatma efektini göstermek için üç ışık kaynağı ve bir küp kullanıyoruz. Küp, merkezi etrafında döner ve ışık kaynakları küpün etrafında döner. Işık kaynakları, tek renkli küpler olarak işlenir. Üç küçük küpü ışık kaynağı olarak çizmek için ortadaki küpü dönüştürüyor ve ölçeklendiriyoruz.
Bu örnekte uygulanan aydınlatma efektleri, yönlü ışık, aynalı yönlü ışık, nokta ışığı, aynalı nokta ışığı, spot ışığı, aynalı spot ışığı ve yarım küre aydınlatmasıdır. Önceki örneğe benzer şekilde, kullanıcılar klavyedeki boşluk tuşuna basarak farklı aydınlatma efektleri seçebilirler.
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. Bir derinlik arabelleği ve bir DepthStencilView oluşturmak için kullanılan kod bulunmaktadır.
Açık sistem Nedir Açık sistem Teorisi nedir Açık ve kapalı sistem örnekleri Basit sistem örnekleri Eğitimde sistem Nedir Sistem nedir Sistem örnekleri Yönetimde sistem yaklaşımı nedir