Köşe Arabellekleri (Direct3D 9)
IDirect3DVertexBuffer9 arabirimi tarafından temsil edilen köşe arabellekleri, köşe verileri içeren bellek arabellekleridir. Köşe arabellekleri, IDirect3DDevice9 arabiriminde işleme yöntemleri kullanılarak işlenebilen herhangi bir köşe türü (dönüştürülmüş veya çevrilmemiş, aydınlatılmış veya yarılmamış) içerebilir. Dönüştürme, aydınlatma veya kırpma bayrakları oluşturma gibi işlemleri gerçekleştirmek için köşe arabelleğindeki köşeleri işleyebilirsiniz. Dönüştürme her zaman gerçekleştirilir.
Köşe arabelleklerinin esnekliği, dönüştürülmüş geometriyi yeniden kullanmaları için ideal hazırlama noktalarını sağlar. Tek bir köşe arabelleği oluşturabilir, dönüştürebilir, açıklayabilir ve içindeki köşeleri kırpabilir ve araya katılmış işleme durumu değişikliklerinde bile modeli yeniden dönüştürmeden sahne içinde gerektiği kadar işleyebilirsiniz. Bu, birden çok doku kullanan modelleri işlerken yararlıdır: geometri yalnızca bir kez dönüştürülür ve ardından gerekli doku değişiklikleriyle bir araya getirilip gerektiğinde bazı bölümleri işlenebilir. Köşeler işlendikten sonra yapılan işleme durumu değişiklikleri, köşelerin bir sonraki işlenmesinde etkili olur.
Açıklama
Köşe arabelleği, özellikleri açısından açıklanmıştır: yalnızca sistem belleğinde bulunabiliyorsa, yalnızca yazma işlemleri için kullanılıyorsa ve içerebileceği köşelerin türü ve sayısı. Tüm bu özellikler D3DVERTEXBUFFER_DESC bir yapıda tutulur.
Format üyesi, bunun bir köşe arabelleği olduğunu belirtmek için D3DFMT_VERTEXDATA olarak ayarlanır. Tür, köşe arabelleğinin kaynak türünü tanımlar. Kullanım yapısı üyesi genel yetenek bayrakları içerir. D3DUSAGE_SOFTWAREPROCESSING bayrağı, köşe arabelleğinin yazılım köşesi işleme ile kullanılacağını gösterir. kullanımda D3DUSAGE_WRITEONLY bayrağının varlığı, köşe arabelleği belleğinin yalnızca yazma işlemleri için kullanıldığını gösterir. Bu, hızlı işleme ve işlemeyi etkinleştirmek için sürücüye köşe verilerini en iyi bellek konumuna yerleştirmesini sağlar. D3DUSAGE_WRITEONLY bayrağı kullanılmazsa, sürücünün verileri okuma işlemleri için verimsiz bir konuma yerleştirme olasılığı daha düşüktür. Bu işlem ve işleme hızını biraz feda eder. Bu bayrak belirtilmezse, uygulamaların köşe arabelleği içindeki veriler üzerinde okuma ve yazma işlemleri gerçekleştirdiği varsayılır.
Havuz, köşe arabelleği için ayrılan bellek sınıfını belirtir. D3DPOOL_SYSTEMMEM bayrağı, sistemin sistem belleğinde köşe arabelleği oluşturduğunu gösterir.
Boyut üyesi köşe arabellek verilerinin boyutunu bayt cinsinden depolar. FVF üyesi, arabelleğin içerdiği köşelerin türünü tanımlayan D3DFVF bir bileşimini içerir.
Bellek Havuzu ve Kullanım
Havuz (bellek sınıfı) ve kullanım parametrelerini alan IDirect3DDevice9::CreateVertexBuffer yöntemiyle köşe arabellekleri oluşturabilirsiniz. IDirect3DDevice9::CreateVertexBuffer, sabit işlev köşesi işlemesinde veya işlem köşelerinin çıkışı olarak kullanılmak üzere belirtilen bir FVF koduyla da oluşturulabilir. Ayrıntılar için bkz. FVF Köşe Arabellekleri (Direct3D 9).
D3DUSAGE_SOFTWAREPROCESSING bayrağı, bu cihaz için karma mod veya yazılım köşesi işleme (D3DCREATE_MIXED_VERTEXPROCESSING / D3DCREATE_SOFTWARE_VERTEXPROCESSING) etkinleştirildiğinde ayarlanabilir. D3DUSAGE_SOFTWAREPROCESSING, karma modda yazılım köşesi işleme ile kullanılacak arabellekler için ayarlanmalıdır, ancak karma modda donanım köşesi işleme kullanılırken mümkün olan en iyi performans için ayarlanmamalıdır. (D3DCREATE_HARDWARE_VERTEXPROCESSING). Ancak D3DUSAGE_SOFTWAREPROCESSING ayarı, hem donanım hem de yazılım köşesi işleme ile tek bir arabellek kullanılması için tek seçenektir. D3DUSAGE_SOFTWAREPROCESSING hem karma hem de yazılım cihazları için izin verilir.
Köşe işleme donanımda yapıldığında bile D3DPOOL_SYSTEMMEM belirterek köşe ve dizin arabelleklerini sistem belleğine zorlamak mümkündür. Bu, bir sürücü bu arabellekleri AGP belleğine koyarken fazla miktarda sayfa kilitli bellekten kaçınmanın bir yoludur.
Bu bölümde, Direct3D uygulamasında köşe arabelleklerini anlamak ve kullanmak için gereken kavramlar tanıtılır. Bilgiler aşağıdaki bölümlere ayrılmıştır.
- Köşe Arabelleği Oluşturma (Direct3D 9)
- Köşe AraBelleğinin İçeriğine Erişme (Direct3D 9)
- Köşe Arabelleğinden İşleme (Direct3D 9)
- FVF Köşe Arabellekleri (Direct3D 9)
- Sabit İşlev Köşesi İşleme (Direct3D 9)
- Programlanabilir Köşe İşleme (Direct3D 9)
- Cihaz Türleri ve Köşe İşleme Gereksinimleri (Direct3D 9)
İlgili konular