# V-Ray App SDK ile render otomasyonu: sahne yükleme ve çıktı alma

Kaynak: https://3dsinifi.com/haber/v-ray-app-sdk-ile-render-otomasyonu-sahne-yukleme-ve-cikti · Kategori: İpuçları · Yayın: 18 Ekim 2026

> V-Ray App SDK, uygulamalara V-Ray render sürecini başlatma ve yönetme olanağı sunuyor. Bu rehber; ortam değişkenlerini ayarlamayı, sahne yüklemeyi, render modunu seçmeyi ve görüntüyü kaydetmeyi açıklıyor.

## Kısaca
- SDK, V-Ray sahnelerini oluşturmak veya .vrscene dosyasından yüklemek için kullanılabiliyor.
- Render, start() çağrısıyla ayrı bir iş parçacığında arka planda başlatılıyor.
- Interactive modu önizleme ve ayar denemelerine; Production modu son görüntüyü almaya yönelik.
- Belgelerde SDK’nın uygulandığı belirli bir yazılım sürümü belirtilmiyor.

V-Ray Application SDK (App SDK), üçüncü taraf uygulamalara V-Ray motorunu başlatıp kontrol etme olanağı veriyor. Chaos’ın App SDK belgeleri; bir sahnenin bellekte V-Ray eklentilerine çevrilmesini veya .vrscene dosyasından yüklenmesini, render’ın başlatılmasını ve sonucun görüntü olarak alınmasını anlatıyor. Bu rehber, mimarlık ve görselleştirme araçlarına render entegrasyonu geliştiren ekipler için SDK’nın temel akışını ele alıyor. Belgelerde belirli bir V-Ray ya da App SDK sürümü belirtilmediğinden adımlar, dokümante edilen App SDK arayüzü için geçerlidir.

## 1. SDK’yı çalışma ortamına hazırlayın

App SDK’nın temel bileşeni VRayRenderer sınıfı. Bu sınıf sahne yükleme, render başlatma ve görüntüye erişme gibi işlemleri bir araya getiriyor. Başlamadan önce kütüphane dosyalarının bulunacağı konumun uygulama tarafından görülebilmesi gerekiyor.

1. SDK’nın bulunduğu konumu göstermek için `VRAY_SDK` ortam değişkenini ayarlayın. Python bağlamasını kullanacaksanız SDK içindeki `python` klasörünün Python modül arama yollarında olması gerekiyor; belgeler, bu amaçla `PYTHONPATH` kullanımını örnek veriyor.
2. Belgelerde Windows için `setenv.bat`, Linux ve macOS için `source setenv.sh` komut dosyaları gösteriliyor. Bu komut dosyaları iki ortam değişkenini de ayarlıyor.
3. `VRAY_SDK` tanımlandığında bağlama, `VRAY_SDK/bin` içindeki VRaySDKLibrary ikilisini ve bağımlılıklarını arıyor. Ürünün klasör yapısında `/bin` yoksa `VRAY_APPSDK_BIN` değişkeni kullanılabiliyor; bu durumda ikililer belirtilen klasörde aranıyor.
4. Ortam değişkenlerinin kullanılamadığı bir kurulumda kütüphane arama yolu çalışma anında ayarlanabiliyor. Belgeler Python için `vray.setSDKLibraryPath(bin_folder)`, C++ için `VRayInit` yapıcısını örnekliyor.

Bu hazırlık özellikle başka bir yazılımın içine gömülen veya bağımsız çalışan bir entegrasyonda önem taşıyor: SDK bağlaması, render başlamadan önce V-Ray kütüphanelerini ve gerekli bağımlılıkları bulabilmeli. Kullanılan dilin kendi bağlama belgeleri, ilgili başlatma yönteminin ayrıntıları için ayrıca incelenmeli.

## 2. Sahneyi yükleyip render alın

Temel iş akışı; VRayRenderer oluşturmak, bir sahne hazırlamak veya dosyadan yüklemek, render’ı başlatmak, görüntüyü almak ve kaynakları kapatmaktan oluşuyor. Sahne, V-Ray eklentilerinin parametreleri ayarlanarak bellekte kurulabilir ya da `.vrscene` dosyasından okunabilir. Örnekte Python ile dosya yükleme ve PNG çıktısı alma gösteriliyor:

```python
import vray
with vray.VRayRenderer() as renderer:
    renderer.load('./intro.vrscene')
    renderer.start()
    renderer.waitForRenderEnd(6000)
    image = renderer.getImage()
    image.save('intro.png')
```

`start()` eşzamansız çalışıyor: V-Ray motoru ayrı bir iş parçacığında render’a devam ederken ana uygulamanın akışı bütünüyle render’a bağlanmıyor. `getImage()` yalnızca işlem tamamlandığında değil, render sürerken de o andaki görüntü verisini alabiliyor. Böylece uygulama, ara görüntüyü gösterebilir veya desteklenen sıkıştırma biçimlerinden biriyle dosyaya kaydedebilir. Render tamamlanmasını beklemek için belgelerde `waitForRenderEnd()` kullanılıyor; örneklerdeki parametrenin birimi kaynakta açıklanmıyor, bu nedenle burada bir zaman birimi varsayılmamalı.

Uygulama işini bitirdiğinde renderer kapatılmalı ve ayrılan bellek kaynakları serbest bırakılmalı. Python’daki bağlam yöneticisi örneği renderer yaşam döngüsünü yönetiyor; diğer dil bağlamalarında kapatma adımının ilgili API’deki karşılığı kullanılmalı.

## 3. Önizleme ve son render için modu seçin

App SDK, iki temel render modu sunuyor. Interactive, görüntüyü hızlıca önizlemek ve içerik ya da sahne ayarları üzerinde deneme yaparken ilerlemeyi görmek için tasarlanmış. Production ise sahne dikkatlice yapılandırıldıktan sonra hedeflenen son görüntüyü almak için kullanılıyor; bütün görüntünün hazır olması daha uzun sürebiliyor.

| Ayar | Önerilen değer | Etkisi |
|---|---|---|
| Render modu | Önizleme ve deneme için Interactive | Görüntü kalitesi aşamalı olarak iyileşirken hızlı geri bildirim sağlar. |
| Render modu | Son görüntü için Production | Yapılandırılmış sahneden nihai görüntü elde etmeye yöneliktir. |
| Render türü | CPU veya GPU | CPU seçeneği işlemci kaynaklarını, GPU seçeneği grafik kartı hesaplama gücünü kullanır. |

Belgelerde VRayRenderer sınıfının varsayılanı Interactive (CPU) olarak açıklanıyor. GPU tarafında CUDA ve OptiX, NVIDIA; Metal ve MetalRT ise Apple için listelenmiş. Bu seçenekler, her bilgisayarda her render türünün kullanılabileceği anlamına gelmiyor: iş istasyonunun ve SDK kurulumunun seçilen yolu destekleyip desteklemediği kontrol edilmeli.

Mod, VRayRenderer nesnesinin `renderMode` özelliği üzerinden belirlenebiliyor. Dokümantasyona göre render’lar arasında mod değiştirmek için sahneyi yeniden oluşturmak veya yüklemek gerekmiyor. Bu, tasarım sırasında Interactive ile çalışıp son aşamada Production’a geçişi aynı entegrasyon akışında mümkün kılıyor.

## 4. Durum ve hata takibini entegrasyona katın

Render arka planda çalışırken SDK olaylar yayımlıyor. Durum değişikliği olayı; render’ın başlaması, tamamlanması veya hata nedeniyle durması gibi geçişleri uygulamaya bildirmek için kullanılabiliyor. Son görüntünün hazır olduğu durum `IDLE_DONE`; işlem sürerken ara görüntüler de alınabiliyor.

Log mesajı olayında metin ile seviye bilgisi sağlanıyor. Belgelerde seviyeler info, warning, error ve debug olarak sıralanıyor. Uygulama bu mesajları kendi tanılama akışına aktararak sahne yükleme ve render aşamalarındaki sorunları görünür kılabilir.

Olay geri çağrıları render iş parçacığından ayrı bir iş parçacığında yürütülüyor. Bu tasarım, yavaş bir geri çağrının render süresini etkilemesini önlemeyi amaçlıyor; ancak yavaş kullanıcı geri çağrıları diğer geri çağrıların çalışmasını geciktirebilir. Ayrıca eşzamansız `start()` sonrasında renderer `PREPARING` durumundan çıkana kadar sahne veya renderer üzerinde değişiklik yapılmamalı; belgeler bu sıradaki değişikliklerin reddedileceğini belirtiyor.

## Mimarlık ve archviz iş akışında ne değişir?

App SDK, bir modelleme arayüzündeki belirli bir menü ayarından ziyade V-Ray’i başka bir uygulamanın iş akışına bağlamak için anlamlı. Örneğin bir ekip kendi sahne hazırlama aracında `.vrscene` yükleme, render başlatma, ilerleme görüntüsünü alma ve sonucu kaydetme adımlarını bir araya getirebilir. Burada fayda, render motorunun uygulama içinden kontrol edilebilmesi ve önizleme ile son render’ın aynı renderer üzerinden yürütülebilmesidir.

Ofislerin önce kullandıkları dil bağlamasını, V-Ray kütüphanelerinin konumunu ve hedef makinedeki CPU/GPU seçeneğini doğrulaması gerekir. Kaynaklar lisans koşulları, fiyat, belirli bir host yazılımıyla uyumluluk veya donanım gereksinimi açıklamıyor; bunlar hakkında varsayım yapılmamalı. Sahne durumunu ve logları izlemek, kullanıcıya yalnızca render düğmesi sunmaktan daha sağlam bir entegrasyon kurmaya yardımcı olur.

## Sık yapılan hatalar

- `VRAY_SDK` veya Python kullanılıyorsa modül yolu ayarlanmadan SDK bağlamasını başlatmak. Kütüphane ya da Python modülü bulunamazsa önce ortam değişkenlerini ve klasör yollarını kontrol edin.
- `start()` çağrısını eşzamanlı bir işlem gibi ele alıp render’ın hemen tamamlandığını varsaymak. Çağrı arka planda çalışır; uygulamanın tamamlanma durumunu izlemesi gerekir.
- `PREPARING` aşamasında sahne veya renderer üzerinde değişiklik yapmak. Durum değişikliği olayını kullanarak düzenlemeleri güvenli aşamaya erteleyin.
- Callback içinde uzun süren işlemler yürütmek. Belgeler bunun başka callback’leri geciktirebileceğini belirtiyor; ağır işleri olay işleyicisinden ayrı ele alın.

## Pro ipucu
Render tamamlanmasını yalnızca sabit bir bekleme varsayımıyla yönetmeyin; durum değişikliği olayını izleyip son görüntüyü `IDLE_DONE` durumunda alın.

## 3dsınıfı yorumu
Türkiye’deki mimarlık ve görselleştirme ofisleri için App SDK’nın asıl değeri, tekrarlanan render adımlarını kendi araçlarına bağlayabilme potansiyeli. Özellikle önizleme ve son görüntü alma akışını ayırmak, ekip içi süreçleri daha kontrollü kurgulamaya yardımcı olabilir.

Bununla birlikte, SDK doğrudan bir render hızlandırma garantisi sunmuyor. Entegrasyon geliştirmeden önce lisans ve maliyet koşulları, kullanılan yazılımla uyumluluk ve hedef makinedeki CPU/GPU seçenekleri ayrıca doğrulanmalı. Ortam değişkeni hataları, eşzamansız işlem mantığının gözden kaçması ve callback’lerde uzun işler yürütülmesi de dikkat edilmesi gereken noktalar.

## Kaynaklar
- [docs.chaos.com](https://docs.chaos.com/vray_app_sdk/) (özet)

_Yapay zekâ ile yazıldı, kaynaklarla doğrulandı. © 3dsınıfı_
