Aracılığıyla paylaş


Direct3D 12 Konservatif Tarama

Muhafazakar Rasterleştirme, özellikle çarpışma algılama algoritmalarına yardımcı olan piksel işlemeye bazı kesinlik ekler.

Genel bakış

Konservatif Rasterleştirme, işlenen bir temel öğe tarafından en az kısmen kapsanan tüm piksellerin rasterleştirildiği anlamına gelir ve bu da piksel gölgelendiricisinin çağrıldığı anlamına gelir. Normal davranış örneklemedir ve Muhafazakar Rasterleştirme etkinleştirildiğinde kullanılmaz.

Muhafazakar Rasterleştirme, çarpışma algılama, tıkanıklık ve kutucuklu işleme gibi çeşitli durumlarda kullanışlıdır.

Örneğin, aşağıdaki şekilde, rasterleştiricide (yani 16,8 sabit nokta köşe koordinatları kullanılarak) göründüğü gibi, Muhafazakar Rasterleştirme kullanılarak işlenen yeşil bir üçgen gösterilmektedir. Kahverengi alan bir "belirsizlik bölgesi" olarak bilinir- üçgenin genişletilmiş sınırlarını temsil eden kavramsal bir bölgedir ve rasterleştiricideki ilkel değerin özgün kayan nokta köşe koordinatlarına göre muhafazakar olmasını sağlamak için gereklidir. Her köşedeki kırmızı kareler belirsizlik bölgesinin nasıl hesaplanmış olduğunu gösterir: süpürülmüş bir kare olarak.

Büyük gri kareler, işlenecek pikselleri gösterir. Pembe kareler, üçgenin kenarı piksellerin kenarını geçtiğinde devreye giren "Top-Left Kuralı" kullanılarak işlenen pikselleri gösterir. Sistemin normalde ancak her zaman cull olmayacak hatalı pozitifler (olmaması gereken piksel kümesi) olabilir.

Sol üst kural

İşlem hattıyla etkileşimler

Rasterleştirme Kuralları etkileşimi

Konservatif Rasterleştirme modunda, Tarama Kuralları, Yukarıda açıklanan Top-Left Kuralı ve Piksel Kapsamı özel durumları ile Muhafazakar Rasterleştirme modunun etkinleştirilmemesiyle aynı şekilde uygulanır. 16.8 Fixed-Point Rasterizer duyarlığı kullanılmalıdır.

Donanım tam kayan nokta köşe koordinatları kullanıyorsa kapsanmayacak pikseller yalnızca sabit nokta etki alanında yarım pikselden büyük olmayan bir belirsizlik bölgesinde yer alıyorsa dahil edilebilir. Gelecekteki donanımların Katman 2'de belirtilen daha sıkı belirsizlik bölgesine ulaşması beklenir. Bu gereksinimin, dilim üçgenlerinin gerekenden daha fazla genişlemesini önlediğini unutmayın.

Benzer bir geçerli belirsizlik bölgesi InnerCoverage için de geçerlidir, ancak bu durum için hiçbir uygulama daha büyük bir belirsizlik bölgesi gerektirmediğinden daha sıkıdır. Daha fazla ayrıntı için bkz. InnerCoverage etkileşimi.

İç ve dış belirsizlik bölgeleri, sabit nokta etki alanında alt piksel kılavuzunun yarısı veya pikselin 1/512'sinin boyutundan büyük veya buna eşit olmalıdır. Bu minimum geçerli belirsizlik bölgesidir. 1/512, kayan nokta köşe koordinatlarını 16,8 sabit nokta koordinatına dönüştürürken uygulanan 16,8 sabit nokta Rasterizer koordinat gösteriminden ve en yakına yuvarlak kuraldan gelir. Rasterizer duyarlığı değişirse 1/512 değişebilir. Bir uygulama bu minimum belirsizlik bölgesini uygularsa, belirsizlik bölgesinin bir kenarı veya köşesi bir pikselin kenarı veya köşesi boyunca düştüğünde Top-Left Kuralı'nı izlemesi gerekir. Belirsizlik bölgesinin kırpılmış kenarları en yakın köşe olarak ele alınmalıdır, yani iki kenar olarak sayılır: ilişkili köşede birleştiren iki kenar. Top-Left Kural, minimum belirsizlik bölgesi kullanıldığında gereklidir çünkü kullanılmıyorsa, Muhafazakar Tarama modu devre dışı bırakıldığında ele alınabilecek pikselleri taramak için Bir Muhafazakar Rasterleştirme uygulaması başarısız olur.

Aşağıdaki diyagramda, sabit nokta etki alanındaki ilkel öğe kenarlarının çevresinde bir kare süpürilerek oluşturulan geçerli bir dış belirsizlik bölgesi gösterilmektedir (köşeler 16,8 sabit nokta gösterimi tarafından ölçüldü). Bu karenin boyutları geçerli dış belirsizlik bölgesi boyutuna bağlıdır: bir pikselin 1/2'si için kare 1 piksel genişlik ve yükseklikte, 512 pikselin 1/1'i için kare, genişlik ve yükseklik olarak bir pikselin 1/256'sı olur. Yeşil üçgen belirli bir ilkel öğeyi, kırmızı noktalı çizgi Overestimated Conservative Rasterization üzerindeki sınırı, düz siyah kareler ilkel kenarlar boyunca süpürülen kareyi temsil eder ve mavi dama alan dış belirsizlik bölgesidir:

dış belirsizlik bölgesi.

Çok örnekli etkileşim

RenderTarget/DepthStencil yüzeylerindeki örnek sayısından (veya ForcedSampleCount kullanılıp kullanılmadığından) bağımsız olarak, tüm örnekler Muhafazakar Rasterleştirme tarafından rasterleştirilmiş pikseller için kapsanır. Tek tek örnek konumları ilkel konumda olup olmadıklarına göre test edilmemektedir.

SampleMask etkileşimi

SampleMask Rasterizer Durumu, InputCoverageiçin Muhafazakar Rasterleştirme'nin etkinleştirilmemesiyle aynı şekilde uygulanır, ancak InnerCoverage etkilemez (örneğin, InnerCoverageile bildirilen bir girişe AND değildir). Bunun nedeni, InnerCoverage MSAA örneklerinin maskelenip maskelenmemesiyle ilgili olmamasıdır: 0 InnerCoverage yalnızca pikselin tamamen kapsanacağı garanti edilmediği, hiçbir örneğin güncelleştirilmeyeceği anlamına gelir.

Derinlik/Kalıp Testi etkileşimi

Derinlik/Kalıp Testi, konservatif Rasterleştirme etkinleştirilmediğinde tüm örneklerin kapsandığı şekilde konservatif olarak rasterleştirilmiş bir piksel için devam eder.

Kapsanan tüm örneklere devam etmek, Geçerli olan ve Muhafazakar Rasterleştirme etkinleştirilmediğinde belirtildiği gibi görünüm penceresine sıkıştırılması gereken Derinlik Tahmini'ne neden olabilir. Bu, örnek sayısı 1'den büyük olan bir RenderTarget piksel sıklığı ilişkilendirme modlarının kullanılmasına benzer, ancak Muhafazakar Rasterleştirme söz konusu olduğunda, tahmin edilebilen sabit işlev derinliği testine giden derinlik değeridir.

Derinlik Tahmini ile Erken Derinlik toplama davranışı tanımlanmamıştır. Bunun nedeni, bazı Erken Derinlik itlaf donanımlarının tahmine bağlı derinlik değerlerini düzgün şekilde desteklememelerindendir. Ancak, Derinlik Tahmini varlığında Erken Derinlik toplama davranışı, tahmin edilebilir derinlik değerlerini destekleyebilecek donanımlarda bile sorunludur. Bu sorun, Piksel Gölgelendiricisi giriş derinliğini rasterleştirilmekte olan ilkel öğeye ait en düşük ve en yüksek derinlik değerlerine sıkıştırarak ve bu değeri oDepth (piksel gölgelendiricisi çıkış derinliği yazmacı) yazarak geçici olarak çözümlenebilir. oDepth yazma nedeniyle bu durumda Erken Derinlik hatasını devre dışı bırakmak için uygulamalar gereklidir.

Yardımcı Piksel etkileşimi

Yardımcı Piksel kuralları, Muhafazakar Rasterleştirme'nin etkinleştirilmemesiyle aynı şekilde uygulanır. Bunun bir parçası olarak, Yardımcı Pikseller dahil tüm piksellerin InputCoverage etkileşim bölümünde belirtildiği gibi InputCoverage doğru şekilde raporlaması gerekir. Bu nedenle tamamen kapsanmayan pikseller 0 kapsamı raporlar.

Çıkış Kapsamı etkileşimi

Çıktı Kapsamı (oMask), Muhafazakar Rasterleştirme tüm örneklerle birlikte etkinleştirilmediğinde olduğu gibi konservatif olarak rasterleştirilmiş bir piksel için davranır.

InputCoverage etkileşimi

Konservatif Rasterleştirme modunda bu giriş yazmacı, muhafazakar olarak rasterleştirilmiş belirli bir piksel için Konservatif Rasterleştirme etkinleştirilmediğinde tüm örnekler kapsanıyor gibi doldurulur. Diğer bir deyişle, mevcut tüm etkileşimler uygulanır (örn. SampleMask uygulanır) ve LSB'den InputCoverage ilk n bit, konservatif rasterleştirilmiş bir piksel için 1 olarak ayarlanır, Çıktı Birleştirme'nde RenderTarget ve/veya DepthStencil arabelleğe bağlı piksel başına n örnek veya ForcedSampleCount n örnek verildi. Bitlerin geri kalanı 0'dır.

Bu giriş, Muhafazakar Rasterleştirme kullanımından bağımsız olarak bir gölgelendiricide kullanılabilir, ancak Muhafazakar Rasterleştirme davranışını yalnızca kapsanan tüm örnekleri gösterecek şekilde değiştirir (veya Yardımcı Pikseller için yok).

InnerCoverage etkileşimi

Bu özellik katman 3 için gereklidir ve yalnızca katman 3'te kullanılabilir. Çalışma zamanı, bir uygulama Katman 3'ten küçük bir Katmanı desteklediğinde bu modu kullanan gölgelendiriciler için gölgelendirici oluşturulamaz.

Piksel Gölgelendiricisi 32 bit skaler bir tamsayıya sahiptir. Sistem Kullanılabilir Değer Oluştur: InnerCoverage. Bu, LSB'den 0 bitinin belirli bir muhafazakar rasterleştirilmiş piksel için 1 olarak ayarlandığı bir bit alanıdır, ancak bu pikselin tamamen geçerli temel öğe içinde olması garanti edilir. Bit 0 ayarlanmadığında diğer tüm giriş yazmaç bitleri 0 olarak ayarlanmalıdır, ancak bit 0 1 olarak ayarlandığında tanımlanmamış olmalıdır (temelde, bu bit alanı false'un tam olarak 0 olması gereken bir Boole değerini temsil eder, ancak true sıfır olmayan herhangi bir tek değer (bit 0 kümesi) olabilir). Bu giriş, hafife alınmış Muhafazakar Rasterleştirme bilgileri için kullanılır. Piksel Gölgelendiricisi'ne geçerli pikselin geometrinin tamamen içinde olup olmadığını bildirir.

Bu, geçerli Çizim'in çalıştırıldığı çözünürlükten büyük veya buna eşit çözünürlüklerde hata tutturma hatasını hesaba katmalıdır. Hatalı pozitifler olmamalıdır (piksel, geçerli Çizim'in çalıştırıldığı çözünürlükten büyük veya buna eşit çözünürlüklerde herhangi bir tutturma hatası için tam olarak kapsanmadığında InnerCoverage bitleri ayarlama), ancak hatalı negatiflere izin verilir. Özetle, uygulama pikselleri Rasterizer'da tam kayan nokta köşe koordinatlarıyla birlikte olmayacak şekilde tamamen kapsanan şekilde yanlış tanımlamamalıdır.

Donanım tam kayan nokta köşe koordinatları kullanıyorsa tam olarak kapsanan pikseller, yalnızca sabit nokta etki alanındaki alt piksel kılavuzunun boyutundan veya pikselin 1/256'sından büyük olmaması gereken iç belirsizlik bölgesini kesiştiğinde atlanabilir. Başka bir şekilde, tamamen iç belirsizlik bölgesinin iç sınırı içindeki piksellerin tamamen kapsanmış olarak işaretlenmesi gerekir. Belirsizlik bölgesinin iç sınırı, aşağıdaki diyagramda kalın siyah noktalı çizgiyle gösterilmiştir. 1/256, Rasterleştirici duyarlığı değiştiğinde değişebilen 16,8 sabit noktaLı Rasterleştirici koordinat gösteriminden gelir. Bu belirsizlik bölgesi, kayan nokta köşe koordinatlarının Rasterizer'daki sabit nokta köşe koordinatlarına dönüştürülmesi nedeniyle oluşan tutturma hatasını hesaba eklemek için yeterlidir.

Rasterleştirme Kuralları etkileşiminde tanımlanan 1/512 minimum belirsizlik bölgesi gereksinimleri de burada geçerlidir.

Aşağıdaki diyagramda sabit nokta etki alanındaki ilkel öğe kenarlarının çevresinde bir kare süpürilerek oluşturulan geçerli bir iç belirsizlik bölgesi gösterilmektedir (köşeler 16,8 sabit nokta gösterimi tarafından ölçüldü). Bu karenin boyutları geçerli iç belirsizlik bölgesi boyutuna bağlıdır: bir pikselin 1/256'sı için kare, genişlik ve yükseklik olarak bir pikselin 1/128'idir. Yeşil üçgen belirli bir ilkel öğeyi, kalın siyah noktalı çizgi iç belirsizlik bölgesinin sınırını, düz siyah kareler ilkel kenarlar boyunca süpürülen kareyi temsil eder ve turuncu dama alanı iç belirsizlik bölgesidir:

iç belirsizlik reqion.

InnerCoverage kullanımı, bir pikselin konservatif olarak rasterleştirilmiş olup olmadığını etkilemez; yani bu InputCoverage modlarından birinin kullanılması, Muhafazakar Tarama modu etkinleştirildiğinde hangi piksellerin rasterleştirildiğini etkilemez. Bu nedenle, InnerCoverage kullanıldığında ve Piksel Gölgelendiricisi geometri tarafından tamamen kapsanmayan bir pikseli işlerken değeri 0 olur, ancak Piksel Gölgelendiricisi çağrısında örnekler güncelleştirilir. Bu, InputCoverage 0'dan farklıdır; başka bir deyişle hiçbir örnek güncelleştirilmeyecektir.

Bu giriş InputCoverage ile birbirini dışlar: her ikisi de kullanılamaz.

InnerCoverageerişmek için, Piksel Gölgelendiricisi giriş kayıtlarından birinin tek bir bileşeni olarak bildirilmelidir. Bildirimdeki ilişkilendirme modu sabit olmalıdır (ilişkilendirme uygulanmaz).

InnerCoverage bit alanı derinlik/kalıp testlerini etkilemez ve SampleMask Rasterizer durumuyla anded değildir.

Bu giriş yalnızca Muhafazakar Tarama modunda geçerlidir. Muhafazakar Rasterleştirme etkinleştirilmediğinde, InnerCoverage tanımsız bir değer üretir.

Yardımcı Piksel gereksiniminden kaynaklanan ancak ilkel piksel tarafından kapsanmayan Piksel Gölgelendirici çağrılarında InnerCoverage yazmacı 0 olarak ayarlanmalıdır.

Öznitelik İlişkilendirme etkileşimi

Öznitelik ilişkilendirme modları değiştirilmez ve görünüm penceresi ölçeklendirilmiş ve sabit nokta dönüştürülen köşelerin kullanıldığı Muhafazakar Rasterleştirme etkinleştirilmediğinde olduğu gibi devam eder. Ölçülü olarak rasterleştirilmiş bir pikseldeki tüm örneklerin kapsandığı kabul edildiğinden, örnek sayısı 1'den büyük olan bir RenderTarget piksel sıklığı ilişkilendirme modlarının kullanılmasına benzer şekilde, değerlerin tahmin edilmesi geçerlidir. Centroid ilişkilendirme modları, karşılık gelen centroid olmayan ilişkilendirme moduyla aynı sonuçlar üretir; örnek kapsamının yalnızca tam veya 0 olduğu bu senaryoda centroid düşüncesi anlamsızdır.

Konservatif Rasterleştirme, dejenere üçgenlerin Piksel Gölgelendiricisi çağrıları oluşturmasına olanak tanır, bu nedenle dejenere üçgenlerin tüm ilişkilendirme değerleri için Köşe 0'a atanan değerleri kullanması gerekir.

Kırpma etkileşimi

Muhafazakar Rasterleştirme modu etkinleştirildiğinde ve derinlik klibi devre dışı bırakıldığında (DepthClipEnable Rasterizer Durumu YANLIŞ olarak ayarlandığında), uygulamaya bağlı olarak 0 <= z <= w aralığının dışında kalan bir temel öğe segmentleri için öznitelik ilişkilendirmesinde farklılıklar olabilir: sabit değerlerden biri, ilkelin ilgili düzlemle kesiştiği bir noktadan (yakın veya uzak) kullanılır), veya öznitelik ilişkilendirmesi, Muhafazakar Rasterleştirme modu devre dışı bırakıldığında olduğu gibi davranır. Ancak, Muhafazakar Rasterleştirme modundan bağımsız olarak derinlik değeri davranışı aynıdır; yani derinlik aralığının dışında kalan temel öğelere yine de görünüm penceresi derinlik aralığının en yakın sınırının değeri verilmelidir. 0 <= z <= w aralığı içindeki öznitelik ilişkilendirme davranışı değişmeden kalmalıdır.

Mesafeyi Kırp etkileşimi

Küçük Resim Uzaklığı, Muhafazakar Rasterleştirme modu etkinleştirildiğinde geçerlidir ve Muhafazakar Rasterleştirme tüm örneklerle etkinleştirilmediğinde olduğu gibi konservatif olarak rasterleştirilmiş bir piksel için davranır.

Muhafazakar Rasterleştirmenin W köşe koordinatının tahmin edilmesine neden olabileceğini ve bunun W <= 0'a neden olabileceğini unutmayın. Bu, piksel başına Küçük Resim Uzaklığı uygulamalarının Perspektifin geçersiz bir W değerine bölünmesine neden olan Küçük Resim Uzaklığı üzerinde çalışmasına neden olabilir. Kırpma Uzaklığı uygulamaları, köşe koordinatı W <= 0 olduğunda pikseller için tarama çağırmaya karşı koruma sağlamalıdır (örneğin, Muhafazakar Rasterleştirme modundayken tahmin nedeniyle).

Hedef Bağımsız Tarama etkileşimi

Muhafazakar Rasterleştirme modu, Hedef Bağımsız Tarama (TIR) ile uyumludur. TIR kuralları ve kısıtlamaları uygulanır ve tüm örnekler kapsanıyormuş gibi muhafazakar rasterleştirilmiş bir piksel için hareket eder.

IA İlkel Topoloji etkileşimi

Muhafazakar Rasterleştirme, çizgi veya nokta ilkelleri için tanımlanmamıştır. Bu nedenle, noktaları veya çizgileri belirten Temel Topolojiler, Muhafazakar Rasterleştirme etkinleştirildiğinde rasterleştirici birimine beslenirlerse tanımsız davranışlar üretir.

Hata ayıklama katmanı doğrulaması, uygulamaların bu Temel Topolojileri kullanmadığını doğrular.

Sorgu etkileşimi

Konservatif olarak rasterleştirilmiş bir piksel için sorgular, tüm örnekler ele alındığında Muhafazakar Rasterleştirme etkinleştirilmediğinde olduğu gibi davranır. Örneğin, konservatif olarak rasterleştirilmiş bir piksel için, D3D12_QUERY_TYPE_OCCLUSION ve D3D12_QUERY_TYPE_PIPELINE_STATISTICS (D3D12_QUERY_TYPE) tüm örnekler ele alınırken Muhafazakar Tarama etkinleştirilmediğinde olduğu gibi davranmalıdır.

Muhafazakar Rasterleştirme modundaki her konservatif rasterleştirilmiş piksel için Piksel Gölgelendirici çağrıları artırılmalıdır.

Cull State etkileşimi

Tüm Cull Durumları, Muhafazakar Tarama modunda geçerlidir ve Muhafazakar Rasterleştirme etkinleştirilmediğinde olduğu gibi aynı kuralları izler.

Muhafazakar Rasterleştirmeyi çözünürlükler arasında kendi kendine veya Konservatif Rasterleştirme etkinleştirilmeden karşılaştırırken, bazı ilkellerin eşleşmeyen bir karşı karşıya kalma olasılığı vardır (yani, biri arkaya, diğeri ön tarafa dönük). Uygulamalar D3D12_CULL_MODE_NONE kullanarak (D3D12_CULL_MODE) ve Sistem Tarafından Oluşturulan Değer IsFrontFace kullanarak bu belirsizliği önleyebilir.

IsFrontFace etkileşimi

Sistem Tarafından Oluşturulan IsFrontFace Değeri, Konservatif Tarama modunda kullanmak için geçerlidir ve Muhafazakar Tarama etkinleştirilmediğinde tanımlanan davranışı izler.

Dolgu Modları etkileşimi

Muhafazakar Tarama için tek geçerli D3D12_FILL_MODE D3D12_FILL_SOLID, diğer tüm doldurma modu Rasterizer Durumu için geçersiz bir parametredir.

Bunun nedeni, D3D12 işlevsel belirtiminin tel çerçeve dolgu modunun üçgen kenarları çizgilere dönüştürmesi gerektiğini belirtmesi ve çizgi tarama kurallarını izlemesi ve konservatif çizgi tarama davranışının tanımlanmamış olmasıdır.

Uygulama ayrıntıları

Direct3D 12'de desteklenen rasterleştirme türü bazen "Aşırı Tahmini Muhafazakar Rasterleştirme" olarak adlandırılır. "Hafife Alınmış Muhafazakar Rasterleştirme" kavramı da vardır. Bu da yalnızca işlenen bir temel öğe tarafından tamamen kapsanan piksellerin rasterleştirildiği anlamına gelir. Hafife alınmış Muhafazakar Rasterleştirme bilgileri, giriş kapsamı verilerinin kullanımı aracılığıyla piksel gölgelendiricisi aracılığıyla kullanılabilir ve yalnızca fazla tahmini Muhafazakar Rasterleştirme bir tarama modu olarak kullanılabilir.

Bir ilkel öğeden herhangi biri bir pikselle çakışıyorsa, bu piksel kapsanmış olarak kabul edilir ve ardından rasterleştirilir. Bir ilkel öğe kenar veya köşesi bir pikselin kenarı veya köşesi boyunca düştüğünde, "sol üst kural" uygulaması uygulamaya özgüdür. Ancak, dejenere üçgenleri destekleyen uygulamalar için kenar veya köşe boyunca dejenere olan üçgen en az bir pikseli kapsamalıdır.

Muhafazakar Rasterleştirme uygulamaları farklı donanımlara göre değişiklik gösterebilir ve hatalı pozitifler üretebilir; bu da piksellerin kapsandığını hatalı şekilde belirleyebileceği anlamına gelir. Bunun nedeni, rasterleştirmede kullanılan sabit nokta köşe koordinatlarındaki ilkel büyüme veya tutturma hataları gibi uygulamaya özgü ayrıntılar olabilir. Hatalı pozitif sonuçların (sabit nokta köşe koordinatlarına göre) geçerli olmasının nedeni, bir uygulamanın tutturma sonrası köşelere karşı kapsam değerlendirmesi gerçekleştirmesine izin vermek için bir miktar hatalı pozitif değerin (örneğin, kayan noktadan rasterleştiricide kullanılan 16,8 sabit noktaya dönüştürülen köşe koordinatları) gerekli olmasıdır, ancak özgün kayan nokta köşe koordinatları tarafından üretilen kapsama uygun olmalıdır.

Konservatif Rasterleştirme uygulamaları, dejenere olmayan son tutturma ilkelleri için kayan nokta köşe koordinatlarına göre hatalı negatifler üretmez: bir ilkel öğeden herhangi biri bir pikselin herhangi bir bölümüyle çakışıyorsa, bu piksel rasterleştirilir.

Dejenere olan üçgenler (dizin arabelleğindeki yinelenen dizinler veya 3B'de birlikte çizgili) ya da sabit noktalı dönüştürmeden sonra dejenere olan üçgenler (rasterizer'daki doğrusal köşeler) çözülebilir veya olmayabilir; her ikisi de geçerli davranışlardır. Dejenere üçgenlerin geriye dönük olarak kabul edilmesi gerekir, bu nedenle bir uygulama için belirli bir davranış gerekiyorsa, ön tarafa yönelik arka yüz hesaplama veya test kullanabilir. Bozuk üçgenler, tüm ilişkilendirilmiş değerler için Köşe 0'a atanan değerleri kullanır.

Donanımın bu özelliği desteklememe olasılığına ek olarak üç donanım desteği katmanı vardır.

  • Katman 1, en fazla 1/2 piksel belirsizlik bölgesi uygular ve tutturma sonrası dejenereleri desteklemez. Bu kutucuklu işleme, doku atlası, ışık haritası oluşturma ve alt piksel gölge haritaları için iyidir.
  • Katman 2, maksimum belirsizlik bölgesini 1/256'ya düşürür ve tutturma sonrası dejenere olmamasını gerektirir. Bu katman, CPU tabanlı algoritma hızlandırma (voxelization gibi) için yararlıdır.
  • Katman 3, en fazla 1/256 belirsizlik bölgesi tutar ve iç giriş kapsamı için destek ekler. İç giriş kapsamı, SV_InnerCoverage yeni değeri Yüksek Düzey Gölgelendirme Dili'ne (HLSL) ekler. Bu, bir piksel gölgelendiricisine girişte belirtilebilen 32 bit skaler bir tamsayıdır ve hafife alınan Muhafazakar Rasterleştirme bilgilerini temsil eder (yani, bir pikselin garantili olup olmadığı -to-be- tamamen kapsanır). Bu katman, tıkanıklık için yararlıdır.

API özeti

Aşağıdaki yöntemler, yapılar, sabit listeleri ve yardımcı sınıflar Muhafazakar Rasterleştirme'ye başvurur:

DirectX gelişmiş öğrenme video öğreticileri: Muhafazakar Rasterleştirme

Rasterizer Sıralı Görünümleri

İşleme