Aracılığıyla paylaş


Single-sided Işleme

Çoğu işleyici, performansı geliştirmek için arka yüz işlemeyi kullanır. Ancak kesik düzlemlerle kesik kafesler açıldığında, kullanıcılar genellikle üçgenlerin arka tarafına bakar. Bu üçgenler dağılırsa sonuç ikna edici görünmez.

Bu sorunu güvenilir bir şekilde önlemenin yolu üçgenleri çift taraflı işlemektir. Arka yüz oluşturmanın kullanılmaması performansı etkilediğinden, varsayılan olarak Azure Uzaktan İşleme yalnızca kesme düzlemi ile kesişen ağlar için çift taraflı işlemeye geçer.

İşleme single-sided ayarı bu davranışı özelleştirmenizi sağlar.

Dikkat

İşleme single-sided ayarı deneysel bir özelliktir. Gelecekte yeniden kaldırılabilir. Uygulamanızdaki kritik bir sorunu gerçekten çözmediği sürece lütfen varsayılan ayarı değiştirmeyin.

Ön koşullar

İşleme single-sided ayarı yalnızca seçeneği olarak ayarlanmış SingleSidedşekilde dönüştürülenopaqueMaterialDefaultSidedness tireler için bir etkiye sahiptir. Varsayılan olarak bu seçenek olarak DoubleSidedayarlanır.

Single-sided işleme ayarı

Üç farklı mod vardır:

Normal: Bu modda, kafesler dönüştürüldükçe her zaman işlenir. Bu, ayarlanmış olarak SingleSided dönüştürülen opaqueMaterialDefaultSidedness mesh'ler, kesme düzlemine kesişse bile her zaman arka yüz ayırma etkin olarak işlenir.

DynamicDoubleSiding: Bu modda kesme düzlemi bir ağı kesiştirdiğinde otomatik olarak çift taraflı işlemeye geçirilir. Bu mod varsayılan moddur.

AlwaysDoubleSided: Tüm tek taraflı geometriyi her zaman çift taraflı işlenecek şekilde zorlar. Bu mod çoğunlukla kullanıma sunulduğundan ve işleme arasındaki single-sideddouble-sided performans etkisini kolayca karşılaştırabilirsiniz.

single-sided İşleme ayarlarını değiştirmek aşağıdaki gibi yapılabilir:

void ChangeSingleSidedRendering(RenderingSession session)
{
    SingleSidedSettings settings = session.Connection.SingleSidedSettings;

    // Single-sided geometry is rendered as is
    settings.Mode = SingleSidedMode.Normal;

    // Single-sided geometry is always rendered double-sided
    settings.Mode = SingleSidedMode.AlwaysDoubleSided;
}
void ChangeSingleSidedRendering(ApiHandle<RenderingSession> session)
{
    ApiHandle<SingleSidedSettings> settings = session->Connection()->GetSingleSidedSettings();

    // Single-sided geometry is rendered as is
    settings->SetMode(SingleSidedMode::Normal);

    // Single-sided geometry is always rendered double-sided
    settings->SetMode(SingleSidedMode::AlwaysDoubleSided);
}

API belgeleri

Sonraki adımlar