View Categories

Üretim görselleştirmesi

5 dakika okuma

İş Akışı #


V-Ray’in üretim render modunun iki temel özelliği vardır:

  • Bu, yüksek kaliteli bir görüntü (son görüntü olarak da bilinir) oluşturmanın en verimli yoludur.

  • Anlık değişikliklere izin vermez. Başlatıldıktan sonra hiçbir şey değiştirilemez.

Sonuç olarak, kullanıcılar genellikle istedikleri sahne kurulumuna ulaşana kadar etkileşimli modu kullanmak veya üretim render motoru için düşük ayarlarla birkaç kez render almak zorunda kalırlar. Yinelemeleri hızlandırmanın bir başka yolu da, özellikle yapılan değişiklikler yerel olduğunda, her iki modda da bölge render’ı kullanmaktır. Sahne üzerindeki çalışma tamamlandığında, .vrscene formatında diske kaydedilebilir. Bu, onu dağıtmanıza veya bir sonraki seferde yerel verilerinizi V-Ray  eklentilerine çevirmeyi atlamanıza olanak tanır  . Bunu yapmak zorunda olmadığınızı unutmayın. .vrscene dosyalarını hiç dışa aktarmadan V-Ray’i tamamen bellekten kullanabilirsiniz.

Motor değiştirme #


AppSDK’nın kullanışlı bir özelliği, bellekte zaten bulunan sahne verilerini kaybetmeden render modları arasında geçiş yapmanıza olanak sağlamasıdır. Render işlemini durdurmanız gerekir, ancak oluşturduğunuz veya bir sahneden yüklediğiniz tüm eklentiler ve parametreler kalır ve diğer modda anında render işlemine başlayabilirsiniz. Örneğin, etkileşimli modda sahne aydınlatmasını değiştirmek isteyebilirsiniz ve ardından sahneyi bir dosyaya dışa aktarmak zorunda kalmadan bir üretim render işlemi çalıştırabilirsiniz. Bunun tersini de yapabilirsiniz – üretim render işleminden sonra bir sahneyi değiştirebilirsiniz. Üretim render işlemi devam ederken sahnede değişiklikler yaparsanız, bu render işlemi etkilenmez, ancak değişiklikleriniz kalıcı olur ve bir sonraki render işlemine başladığınızda kullanılır.

Şu anda V-Ray, etkileşimli modda olduğu gibi üretim render işlemini duraklatamıyor. Ancak, üretim render işlemini durdurup devam ettirebilirsiniz – bkz. Üretim render işlemine devam etme .

İşte diskten yüklenen önceden hazırlanmış bir sahneyle yapılan basit bir üretim render örneği:

vray.VRayRenderer() ile renderer olarak:

renderer.renderMode = 'production' # varsayılan değer 'interactive'

renderer.load('retro.vrscene')

oluşturucu.startSync()

# ...

VRayInit init(NULL, true);

VRayRenderer oluşturucu;

renderer.setRenderMode(VRayRenderer::RENDER_MODE_PRODUCTION); // varsayılan değer VRayRenderer::RENDER_MODE_INTERACTIVE'dir

renderer.load("retro.vrscene");

oluşturucu.senkronizasyonubaşlat();

// ...

(VRayRenderer renderer = new VRayRenderer()) kullanarak

{

renderer.RenderMode = RenderMode.PRODUCTION; // varsayılan değer RenderMode.INTERACTIVE'dir

renderer.Load("retro.vrscene");

oluşturucu.Senkronizasyonu Başlat();

// ...

}

var oluşturucu = vray.VRayRenderer();

renderer.renderMode = 'production'; // varsayılan değer 'interactive'tir

renderer.load('retro.vrscene', function(err) {

Eğer (hata) varsa, hata fırlat;

oluşturucu.senkronizasyonubaşlat();

// ...

});

Bu render işlemi sırasında ortaya çıkan olayları burada ele almıyoruz. Bu önemli konu, Olaylar bölümünde ayrıntılı olarak ele alınmıştır.

İşte üretim ortamından bir örnek görüntü (retro.vrscene dosyası AppSDK kurulum paketinde scenes/ klasöründe yer almaktadır):

Örnekleme modları #


Üretim render modu, SettingsImageSampler parametresinin türüyle kontrol edilen iki tür görüntü örneklemesi kullanabilir :

  • Birincisi , uyarlanabilir veya “kova” örnekleme modu olarak adlandırılan moddur; bu modda dikdörtgen alt görüntüler ayrı iş parçacıkları veya makineler tarafından tamamen işlenir.

  • Diğeri ise , tüm görüntünün sürekli olarak örneklenip güncellendiği aşamalı örnekleme modudur. Aşamalı üretim işleme, Kova olaylarını tetiklemez . Bunun yerine, görüntü güncellemeleri ProgressiveImageUpdated olayıyla birlikte gelir .

vray.VRayRenderer() ile renderer olarak:

# Varsayılan 'etkileşimli' mod, SettingsRTEngine tarafından kontrol edilen RTEngine'i kullanır.

renderer.renderMode = 'production'

renderer.load('sampling.vrscene')

# Ayarlar eklentisi gerektiğinde 'getInstanceOrCreate' yönteminin kullanılması önerilir çünkü sahnede bu türden en fazla bir örnek bulunmalıdır.

imageSampler = renderer.classes.SettingsImageSampler.getInstanceOrCreate()

# Kova yönteminden aşamalı yönteme geçmek için boolean değerini true olarak değiştirin.

ilerleyici = Yanlış

imageSampler.type = (3 eğer aşamalı ise, aksi halde 1)

# Oluşturma işlemine başla.

oluşturucu.startSync()

# ...

VRayInit init(NULL, true);

VRayRenderer oluşturucu;

// Varsayılan RENDER_MODE_INTERACTIVE, SettingsRTEngine tarafından kontrol edilen RTEngine'i kullanır.

renderer.setRenderMode(VRayRenderer::RenderMode::RENDER_MODE_URETION);

renderer.load("sampling.vrscene");

// Ayarlar eklentisi gerektiğinde 'getInstanceOrCreate' yönteminin kullanılması önerilir çünkü sahnede bu türden en fazla bir örnek bulunmalıdır.

SettingsImageSampler imageSampler = renderer.getInstanceOrCreate<SettingsImageSampler>();

// Kova yönteminden aşamalı yönteme geçmek için boolean değerini true olarak değiştirin.

bool progressive = false;

imageSampler.set_type(progressive ? 3 : 1);

// Oluşturma işlemine başla.

oluşturucu.senkronizasyonubaşlat();

// ...

(VRayRenderer renderer = new VRayRenderer()) kullanarak

{

// Varsayılan RenderMode.INTERACTIVE, SettingsRTEngine tarafından kontrol edilen RTEngine'i kullanır.

renderer.RenderMode = RenderMode.PRODUCTION;

renderer.Load("sampling.vrscene");

// Ayarlar eklentisi gerektiğinde 'GetInstanceOrCreate' yönteminin kullanılması önerilir çünkü sahnede bu türden en fazla bir örnek bulunmalıdır.

SettingsImageSampler imageSampler = renderer.GetInstanceOrCreate<SettingsImageSampler>();

// Kova yönteminden aşamalı yönteme geçmek için boolean değerini true olarak değiştirin.

bool progressive = false;

imageSampler.SetValue("type", (progressive ? 3 : 1));

// Oluşturma işlemine başla.

oluşturucu.Senkronizasyonu Başlat();

// ...

}

var oluşturucu = vray.VRayRenderer();

// Varsayılan 'etkileşimli' mod, SettingsRTEngine tarafından kontrol edilen RTEngine'i kullanır.

renderer.renderMode = 'production';

renderer.load('sampling.vrscene', function (err) {

Eğer (hata) varsa, hata fırlat;

// Ayarlar eklentisi gerektiğinde 'getInstanceOrCreate' yönteminin kullanılması önerilir çünkü sahnede bu türden en fazla bir örnek bulunmalıdır.

var imageSampler = renderer.classes.SettingsImageSampler.getInstanceOrCreate();

// Kova yönteminden aşamalı yönteme geçmek için boolean değerini true olarak değiştirin.

var progressive = false;

imageSampler.type = progressive ? 3 : 1;

// Oluşturma işlemine başla.

oluşturucu.senkronizasyonubaşlat();

// ...

});

GPU üzerinde üretim render işlemi #


V-Ray, son kare oluşturma işlemi için GPU motorunun kullanımını destekler. Bunun nedeni, GPU donanımının çok hızlı olmasıdır.

  • İki mod mevcuttur: “Production CUDA” ve “Production RTX”. Her ikisi de yalnızca aşamalı render motoru olarak kullanılabilir.

  • Animasyonlar desteklenmektedir ve şu anda genel aydınlatma için Light Cache ve Brute Force yöntemleri kullanılabilmektedir.

  • Etkileşimli GPU modu gibi, tamamen farklı bir donanım mimarisi üzerinde ayrı bir uygulama olduğu için CPU işleyicisine kıyasla biraz farklı sonuçlar verebilir.

  • Bazı özellikler, örneğin belirli dokular, henüz GPU motoruna entegre edilmemiş olabilir.

  • Örnekleme ayarları , SettingsRTEngine’deki  Etkileşimli GPU oluşturma ayarlarıyla aynıdır SettingsImageSampler  geçerli değildir).

  • RTX hakkında daha fazla ayrıntı OptiX ve NVLink SSS bölümünde açıklanmıştır.

vray.VRayRenderer() ile renderer olarak:

renderer.renderMode = 'productionCuda' # veya 'productionOptix'

renderer.load('retro.vrscene')

oluşturucu.startSync()

# ...

VRayInit init(NULL, true);

VRayRenderer oluşturucu;

renderer.setRenderMode(VRayRenderer::RENDER_MODE_PRODUCTION_CUDA); // veya VRayRenderer::RENDER_MODE_PRODUCTION_OPTIX

renderer.load("retro.vrscene");

oluşturucu.senkronizasyonubaşlat();

// ...

(VRayRenderer renderer = new VRayRenderer()) kullanarak

{

renderer.RenderMode = RenderMode.PRODUCTION_CUDA; // veya RenderMode.PRODUCTION_OPTIX

renderer.Load("retro.vrscene");

oluşturucu.Senkronizasyonu Başlat();

// ...

}

var oluşturucu = vray.VRayRenderer();

renderer.renderMode = 'productionCuda'; // veya 'productionOptix'

renderer.load('retro.vrscene', function(err) {

Eğer (hata) varsa, hata fırlat;

oluşturucu.senkronizasyonubaşlat();

// ...

});

Üretimin yeniden başlatılmasının sağlanması #


Üretim render işlemi, her şey bellekte tutularak duraklatılamazken, bir sonraki çalıştırmada kaldığı yerden devam edebilir. Bu özelliğe “devam ettirilebilir render” diyoruz. Bunu etkinleştirmek için, VRayRenderer üzerinde setResumableRendering() yöntemini çağırmanız yeterlidir. Bu yöntem, render edilmiş bölmeleri bir .vrimg dosyasına veya aşamalı örnekleri bir .vrprog dosyasına kaydeder. Ayrıca Işık Önbelleğini de kaydeder . Devam ettirilebilir render etkinleştirilmiş olarak bir render işlemi başlattığınızda, bu dosyadan önceden var olan sonuçları yükler ve oradan devam eder.

ResumableRenderingOptions parametrelerine ilişkin notlar :

  • outputFileName – SettingsOutput.img_file ayarını yapmadıysanız , V-Ray’in kaydedilecek bir konumu olmaz, bu nedenle bu parametre ayarlanmalıdır. Ayrıca img_file konumunu geçersiz kılmak için de kullanılabilir. Dosya uzantısı, bucket render için otomatik olarak .vrimg ve progressive render için .vrprog ile değiştirilir. Bu dosya, sahne dizinine ayarladığımız geçerli çalışma dizininde olacaktır. Mevcut bir progressive dosyası bucket render için kullanılamaz ve tersi de geçerlidir.

  • compressProgressiveFiles – Aşamalı işleme devam dosyaları, çok fazla bilgi depolamak zorunda oldukları için çok büyük boyutlara (gigabaytlar) ulaşabilir. Sıkıştırma varsayılan olarak etkinleştirilmiştir.

  • deleteResumableFileOnSuccess – Ayarlanırsa, kare başarıyla tamamlandığında devam ettirilebilir dosya otomatik olarak silinir. Bu, ara .vrimg veya .vrprog dosyaları için geçerlidir, .vrimg dosyası ana çıktı olarak ayarlandığında geçerli değildir.

  • progressiveAutoSaveSeconds – Bu, aşamalı örnekleyici kullanıldığında devam dosyasının kaydedildiği aralıktır. Burada izin verdiğimiz 15 saniyelik render süresinin ortasında bir kontrol noktası dosyası kaydedilmesine neden olur. Bununla ilgili bir konsol mesajı görüntülenecektir. Kova renderlama ile dosya, tamamlanan her kova ile otomatik olarak kaydedilir. 0 olarak ayarlanırsa, dosya yalnızca renderlamanın sonunda kaydedilir. Daha düşük bir gürültü eşiği veya daha yüksek bir zaman/örnek sınırı ile yine de devam ettirilebilir.

İlgili ayarlar #


Bu render moduyla ilgili parametrelere sahip çeşitli sahne eklentileri mevcuttur (yakında yayınlanacak Eklentiler bölümüne bakın).

Görüntü örneklemesi, SettingsImageSampler ayarı ile kontrol edilir . Bu ayar, örneklemenin gruplar halinde mi yoksa kademeli olarak mı yapılacağını ve ne kadar yapılacağını kontrol eder. Bu, işleme süresi ve gürültü arasındaki dengeyi kontrol etmek için en önemli yerlerden biridir. Ayrıntılar için Global Settings dersine bakın.

Küresel aydınlatma motorları (Işık Önbelleği ve Işınım Haritası) üretim modunda ön tarama yapar. Etkileşimli modda kullanılamazlar. GI motorları SettingsLightCache  ve  SettingsIrradianceMap ile yapılandırılır – daha fazla ayrıntı için Küresel Aydınlatma bölümüne  bakın .

Son olarak,  SettingsRegionsGenerator,  bölmelerin boyutunu ve oluşturulma sırasını kontrol eder. Bu eklentinin parametreleri şunlardır:

  • xc  – Piksel cinsinden kova genişliğinin maksimum değeri

  • yc  – Piksel cinsinden kova sayısının maksimum yüksekliği

  • xymeans – Piksel cinsinden boyut veya bölge sayısı – 0: Piksel cinsinden boyut; 1: Bölge sayısı

  • seqtype  – Sıralama algoritması – 0: Üstten Alttan; 1: Soldan Sağa; 2: Damalı; 3: Spiral; 4: Üçgenleme; 5: Hilbert eğrisi; 6: Rastgele

  • tersine çevir – Doğruysa, kova oluşturulma sırasını tersine çevir.

  • dynbuckets  – İşlemci kullanımını iyileştirmek için son kovaları daha küçük parçalara bölüp bölmeme – 0:Devre dışı; 1:Etkin; 2:Etkin (eski algoritma)

VRayRenderer’ın numThreads özelliği aracılığıyla kullanılacak iş parçacığı sayısını kontrol edebilirsiniz . Varsayılan olarak, mevcut tüm iş parçacıkları kullanılır.

Tarafından desteklenmektedir BetterDocs

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir