Bu sayfa, Oculus Rift veya HTC Vive gibi VR başlıklarıyla kullanılmak üzere V-Ray GPU ile en iyi şekilde nasıl render alınacağına dair bilgiler sunmaktadır.
Genel Bakış #
V-Ray GPU, Oculus Rift veya HTC Vive gibi VR gözlükleri aracılığıyla IPR render’ını görüntüleyecek şekilde ayarlanabilir. Bu sayede, 6×1 stereo küp panorama render edilirken, kullanıcılar render’ı VFB’de düz bir görüntü olarak görmek yerine, render işlemi sırasında uygun sanal alanda görüntülemek için bir VR gözlüğü kullanabilirler. Bir MAXScript yardımıyla, V-Ray GPU yeni kamera konumundan render’ı güncellerken ve yenilerken, sanal alanda hareket etmek için bir oyun kumandasıyla kameranın konumunu güncellemek mümkündür.
Takip etmek istiyorsunuz ama ehliyetiniz yok mu?

V-Ray GPU Çıkışını Kulaklığa Yönlendirme Kurulumu #
1. Kulaklık ekranının doğru şekilde takıldığından emin olun.
Oculus Rift kullanıyorsanız, Oculus Rift PC çalışma ortamını yükleyin:
https://www3.oculus.com/en-us/setup/
Oculus hesabınıza giriş yapmak için doğrudan internet bağlantısı gereklidir. Proxy üzerinden giriş yapılamıyor gibi görünüyor. C: sürücünüzde en az 5 GB disk alanına ihtiyacınız var.
HTC Vive kullanıyorsanız bu adıma gerek yoktur.
Yalnızca Oculus Rift için: Kulaklığı varsayılan grafik adaptörüne bağlayın (başka grafik adaptörlerine bağlanırsa çalışmaz).
Oculus uygulamasında, bilinmeyen kaynaklardan uygulama yüklemeyi etkinleştirin: Oculus Ayarları > Genel > Bilinmeyen Kaynaklar seçeneğini açın.
HTC Vive desteği için Steam ve Steam VR’ı yükleyin:
https://support.steampowered.com/kb_article.php?ref=2001-UXCM-4439#install-steam
Bu, HTC Vive, Oculus Rift ve diğer VR cihazları için OpenVR arayüzünü kullanabilmek için gereklidir. Bu adım Oculus Rift için isteğe bağlıdır.
2. Kulaklığın çalıştığını ve ana ekran görüntüsünü doğru şekilde gösterdiğini kontrol edin.
V-Ray Üretim Render Ayarları #
-
Görüntü filtresini kapatın.
-
Cube 6×1 Kamera Türünü Seçin
-
Görüntü çözünürlüğü genişliği 6’ya bölünebilir olmalıdır.
V-Ray GPU IPR Ayarları #
-
Render Ayarları > Ayarlar > Stereoskopik render bölümüne gidin ve Stereo modu > Oculus Rift (mono), Oculus Rift (stereo), OpenVR (mono) veya OpenVR (stereo) seçeneklerinden birini seçin.
-
Uygun görüntü çıktı boyutunu seçin, örneğin 3000×500. Daha düşük bir çözünürlükle de başlayabilirsiniz.
-
Görüntüleme Aygıtı Seçimi > VR başlığına bağlı ekran kartını hariç tutun. GPU görüntüleme ve VR ekranı için aynı adaptörü kullanmak kare düşüşlerine ve kötü bir VR deneyimine neden olacaktır. Yerel ana bilgisayarın hariç tutulduğu DR oturumu sorunsuz çalışmalıdır.
3. V-Ray GPU IPR render işlemini başlatın . Oculus VR kütüphanesinin yüklenmesi biraz zaman aldığı için ilk render işlemi yavaş başlayacaktır.
MAXScript Referansı #
Bu bölümdeki bilgiler, MAXScript’i kullanarak bir oyun kumandasıyla VR ortamında nasıl gezineceğinizi açıklamaya yardımcı olacaktır. Aşağıda, düğmeleri ve analog çubukları genel bir yapılandırmaya ayarlayan ve çalışmaya başlamanızı sağlayan örnek bir MAXScript indirme bağlantısı bulunmaktadır. Daha fazla ayrıntı için lütfen komut dosyası dosyasının üst bölümündeki yorumlara bakın.
VR kontrol cihazlarına erişim durumu #
ActiveShade modunda VR kontrol cihazlarının durumuna erişim mümkündür. Şu anda kontrol cihazı durumuna yalnızca Oculus Rift önizleme oturumları sırasında ( Stereo modu = Oculus Rift ) erişilebilmektedir.
Mevcut render motoruna bakarak MAXScript’ten VR kontrol cihazı arayüzlerini destekleyip desteklemediğini kontrol edebilirsiniz:
</p>
<div>renderers.current</div>
<div>V_Ray_GPU_Next:V_Ray_GPU_Next</div>
<div></div>
<div>ivraygpu=getinterface renderers.current "vrayrtmax_interface"</div>
<div><MixinInterface:vrayrtmax_interface></div>
<p data-v-97f42bc7="" data-v-c6e36616="">
VR kontrol cihazı arayüzleri #
ivrayrt ve rt değişkenlerinin yukarıda belirtildiği gibi başlatıldığını varsayarsak , VR kontrol cihazlarıyla ilgili arayüz özelliklerini listeleyebilirsiniz:
showinterface ivraygpu<br />
<MixinInterface:vrayrtmax_interface><br />
Interface: vrayrtmax_interface<br />
Properties:<br />
.vrControllerLTouch : Interface : Read<br />
.vrControllerRTouch : Interface : Read<br />
.vrControllerRemote : Interface : Read<br />
.vrControllerXBox : Interface : Read<br />
Methods:<br />
Actions:<br />
OK
Arayüzler ayrıca oluşturucu özellikleri olarak da mevcuttur:
showproperties renderers.current<br />
...<br />
.vrControllerLTouch : Interface<br />
.vrControllerRTouch : Interface<br />
.vrControllerRemote : Interface<br />
.vrControllerXBox : Interface<br />
...<br />
false
Tüm VR kontrol cihazı arayüzleri aynıdır; kontrol cihazı türünden bağımsız olarak aynı yöntemleri ve özellikleri içerirler. Arayüz bilgileri şu şekilde görüntülenebilir:
showinterface renderers.current.vrControllerLTouch<br />
Interface: VRController_LTouch<br />
Properties:<br />
.connected : boolean : Read<br />
.timeInSeconds : double : Read<br />
.indexTriggers : float by value array : Read<br />
.gripButtons : float by value array : Read<br />
.thumbSticks : point2 by value array : Read<br />
.buttonA : boolean : Read<br />
.buttonB : boolean : Read<br />
.buttonRThumb : boolean : Read<br />
.buttonRShoulder : boolean : Read<br />
.buttonX : boolean : Read<br />
.buttonY : boolean : Read<br />
.buttonLThumb : boolean : Read<br />
.buttonLShoulder : boolean : Read<br />
.buttonUp : boolean : Read<br />
.buttonDown : boolean : Read<br />
.buttonLeft : boolean : Read<br />
.buttonRight : boolean : Read<br />
.buttonEnter : boolean : Read<br />
.buttonBack : boolean : Read<br />
.buttonVolUp : boolean : Read<br />
.buttonVolDown : boolean : Read<br />
.buttonHome : boolean : Read<br />
.touchA : boolean : Read<br />
.touchB : boolean : Read<br />
.touchRThumb : boolean : Read<br />
.touchRThumbRest : boolean : Read<br />
.touchRIndexTrigger : boolean : Read<br />
.touchX : boolean : Read<br />
.touchY : boolean : Read<br />
.touchLThumb : boolean : Read<br />
.touchLThumbRest : boolean : Read<br />
.touchLIndexTrigger : boolean : Read<br />
.touchRIndexPointing : boolean : Read<br />
.touchRThumbUp : boolean : Read<br />
.touchLIndexPointing : boolean : Read<br />
.touchLThumbUp : boolean : Read<br />
Methods:<br />
<void>setNotifyCallback <string>callback <float>threshold<br />
Actions:<br />
OK
VR kumanda arayüzü detayları #
|
Mülk |
Tanım |
|---|
|
Mülk |
Tanım |
|---|---|
|
bağlı |
İlgili kontrol cihazı bağlıysa true, aksi halde false. |
|
zamanSaniye cinsinden |
Denetleyici durumunun son güncellemesinin sistem zamanı. |
|
indexTriggers[1] |
Sol ve sağ parmak tetikleme pozisyonları, 0,0 ile 1,0 aralığındadır. |
|
kavramaDüğmeleri[1] |
Sol ve sağ tutma düğmesi konumları, 0,0 ile 1,0 aralığındadır. |
|
thumbSticks[1] |
Sol ve sağ başparmak çubuğu konum koordinatları -1,0 ile 1,0 aralığında, point2 değerleri olarak verilmiştir. |
|
düğmeler, dokunmalar |
Kumanda üzerindeki çeşitli düğmelerin ve sensörlerin durumunu temsil eden Boolean özellikler. |
|
setNotifyCallback <callback> <eşik> |
Kontrol cihazının durumu değiştiğinde çalıştırılacak bildirim MAXScript’ini ayarlar. |
setNotifyCallback Örnek Kullanımı #
Xbox kontrol cihazının durumu değiştiğinde sol indeks tetikleme konumunu bildiren bir bildirim geri çağırma işlevi ayarlar:
</p>
<div>fn myNotifyCallback = (</div>
<div> format "XBox Left Trigger value: %\</div>
<div>" renderers.current.vrControllerXBox.indexTriggers[1]</div>
<div> )</div>
<div></div>
<div> renderers.current.vrControllerXBox.setNotifyCallback "myNotifyCallback()" 0.1</div>
<p data-v-97f42bc7="" data-v-c6e36616="">
Xbox kumandasından gelen bildirimleri almayı durdurun:
renderers.current.vrControllerXBox.setNotifyCallback "" 0.1
İki farklı denetleyiciden gelen bildirimleri ortak bir geri çağırma işlevi kullanarak işleme alma:
</p>
<div>iXBox= renderers.current.vrControllerXBox</div>
<div>iRemote= renderers.current.vrControllerRemote</div>
<div></div>
<div>fn myNotifyCallbackWithParam controller_interface = (</div>
<div> format "controller % button UP state %\</div>
<div>" controller_interface controller_interface.buttonUP</div>
<div> )</div>
<div></div>
<div>iXBox.setNotifyCallback "myNotifyCallbackWithParam iXBox" 0.1</div>
<div>iRemote.setNotifyCallback "myNotifyCallbackWithParam iRemote" 0.1</div>
<p data-v-97f42bc7="" data-v-c6e36616="">
Senaryo Odak Noktası #
VRay GPU’da odaklama yöntemi MAXScript kullanılarak ayarlanabilir:
renderers.current.stereo_focus=0
stereo_focus aşağıdaki değerleri alabilir:
0 – paralel
1 – döndürme
2 – kayma dönüşümü
Notlar #
-
Kafa yönü takibi yalnızca Cube 6×1 kamera kullanılarak panorama oluşturulurken desteklenir .
-
Dönme ve kayma, kamera hedef mesafesini “sıfır paralaks” düzlem mesafesi olarak kullanır.
-
Rahat bir görüntü elde etmek için kamera hedef mesafesini yüksek bir değere ayarlamanız gerekir. Alternatif olarak, MAXScript kullanarak stereo_focus yöntemini 0 (paralel) olarak değiştirebilirsiniz .
-
Panorama render’larında eğme (shear) özelliği desteklenmemektedir.

