Single-sided çizmeye

Çoğu işleyicilere, performansı artırmak için arka yüz kaldırma kullanır. Ancak, kafesler kesme düzlemleriaçık bir şekilde kesiliyorsa, kullanıcılar genellikle üçgenlerin arka tarafına bakar. Bu üçgenler ortaya koyulur olursa sonuç, ikna edici değildir.

Bu sorunu güvenilir bir şekilde önlemenin yolu, üçgenler çift taraflı işlenmelidir. Arka yüz yüzey kaldırma işlemi, performans etkilerine karşı, varsayılan olarak Azure uzaktan Işleme yalnızca Kesme düzlemiyle kesişen kafesler için çift taraflı işlemeye geçiş yapar.

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

Dikkat

single-sidedİşleme ayarı deneysel bir özelliktir. Gelecekte yeniden kaldırılabileceği. Uygulamanızda önemli bir sorunu gerçekten çözmediğiniz müddetçe lütfen varsayılan ayarı değiştirmeyin.

Önkoşullar

single-sidedİşleme ayarının yalnızca opaqueMaterialDefaultSidedness seçeneği olarak ayarlanmış olan kafesler için bir etkisi vardır SingleSided . Varsayılan olarak, bu seçenek olarak ayarlanır DoubleSided .

Single-sided işleme ayarı

Üç farklı mod vardır:

Normal: Bu modda, kafesler dönüştürülürken her zaman oluşturulur. Bu, ayarlanmış olan kafeslerin opaqueMaterialDefaultSidedness SingleSided , kesilen bir düzlemi kesişdiklerinde bile, her zaman arka yüz yüzey kaldırma özelliği etkinleştirilmiş olarak işlendiğine yol açacaktır.

Dynamicdoublesıding: Bu modda, kesilen bir düzlem bir kafesden kesişdiğinde, otomatik olarak çift taraflı işlemeye geçiş yapılır. Bu mod varsayılan moddur.

Alwaysdoubleyüzlü: Tüm tek taraflı geometriyi her zaman çift taraflı olarak işlenecek şekilde zorlar. Bu mod, ve işleme arasındaki performans etkisini kolayca karşılaştırabilmeniz için çoğunlukla kullanıma single-sided sunulur double-sided .

single-sidedOluşturma ayarlarının değiştirilmesi aşağıdaki şekilde 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