Yüksek kaliteli ve hızlı portal efekti nasıl oluşturulur?


9

DÜZENLEME: Bu yüzden hiçbir performans isabet olmadan portal görsel efekt aldım, ve fizik sert portallar sorunsuz hareket eden nesneleri ve karakter denetleyicileri ile sorunsuz hareket nesneleri kurdu. Şimdi anlamaya çalıştığım tek şey, uygun birinci kişi geçiş efektini elde etmek için iki kamera görünümünü karıştırmak. Bu ikisini nasıl harmanlayacağım konusunda bir fikrin var mı? Sadece derinlik gölgelendirici veya normalleştirilmiş görüntü alanı rektifi kullanan bir şey düşünüyorum. Benim asıl sorunum bunu gerçek zamanlı ve açı ile hesaplamak.

Bu yüzden Unity3D'de bir portal efekti oluşturmak için çalışıyorum. Valve'in Portal'ını bunu programlamak için büyük bir etki olarak gördüm. Şu anda sadece grafik efektini elde etmek için bir kameranın rendertexture'ı kullanıyorum ve gerisini yapmak için bazı kodlar kullanıyorum. Sorun 2048x2048'de Portal'ınki kadar yüksek kalitede görünüyor, ancak ağır FPS kaybına neden oluyor. Bunu çözmek için doku kalitesini veya dokuyu kaç kez güncellediğimi düşürmeliyim.

Valve, yüksek kare hızı kaybına neden olmadan yüksek kaliteli bir portal efekti gerçekleştirmiştir. Aynı şeyi nasıl yapabilirim? Çerçeve kaybına neden olmadan yüksek çözünürlüklü bir dokuya dönüştürmek için iyi fikirleri olan var mı?

Unity'nin yerleşik sistemini kullanarak dokuları oluşturmak için kendi kodumu yapmayı düşünüyorum, bu yapılabilir ama kesinlikle bir güçlük olurdu. Bu nedenle, herhangi bir düşünce, fikir veya öneri çok takdir edilmektedir.


3
Referansı bulamıyorum, ama birisinin Portal'ın doku oluşturmak için render kullanmadığını söylediğini hatırlıyorum.
msell

1
Portal esque oyunu olan Pseudo Form'a göz atın (kaynak ana indirme aşamasındadır). Web'de başka "portal uygulamaları" da var, ancak bence bu en bilinen şey. Ayrıca, üzerinde geliştirici yorumlarıyla Portal oynayın. Bazılarında, portalları uygulamanın zorluklarından bahsediyorlar.
Vasco Correia

7
1080p'den daha düşük hızda oluşturulan bir portalın daha keskin görünmesi için neden 2028x2048 dokuya ihtiyacınız olduğunu anlayamıyorum. Genel olarak oyununuz için kullandığınız ekran çözünürlüğünün üzerine çıkmanıza gerek yoktur. Portalın ekran boyutunu bulmanız ve uygun boyutta bir rendertexture seçmek için kullanmanız gerektiğini söyleyecek kadar ileri giderdim (böylece uzaktayken çok verimli hale getirir ve portal daha fazla ekran aldıkça "daha ağır" -space.
Stig-Rune Skansgård

1
Görsel efekt için hangi yaklaşımı kullandınız? Yalnızca portalda görünenleri nasıl oluşturacağınızı anladınız mı?
13'te

1
Orijinal soruyu olduğu gibi tutmalı ve yeni sorun hakkında yeni bir soru sormalısınız.
msell

Yanıtlar:


5

Saatler süren araştırma ve programlamadan sonra bunun görsel efektinin nasıl düzgün bir şekilde elde edileceğini anladım. Yalnızca görseller ve ihtiyacınız olan her şey için çalışan bir portal sistemi satın almak istiyorsanız, Portalizer Unity Package'a göz atın.

C # programladım ve bu paket JS'de, ancak arkasındaki mantık inanılmaz derecede kullanışlı ve iyi düşünülmüş. Genelde mantıklı düşüncesini takip ettim, oyunum için bazı ince ayarlar ve bir birinci kişi denetleyicisi.

Temelde yaptığınız şey Bu su gölgelendirici / komut dosyasının değiştirilmiş bir sürümünü kullanmaktır . Sahnede iki ayna var ve diğer aynaya her yansımada gördüklerini bir kameranın oluşturmasını sağlayın. İki portal arasındaki ilişkileri hesaba katmak için değiştirilmiş bir dönüşüm matrisi oluşturmanız gerekir. İsabetli performansın düşmesine yardımcı olmak için Yakın uçak kırpması hakkında bu makaleyi okuyun . Bu, yalnızca portal üzerinden görülmesi gerekenleri oluşturmanıza yardımcı olacaktır.

Bir FPS ışınlaması için kameraları nasıl düzgün bir şekilde harmanlayacağımı anladıktan sonra resimlerle ve kaynaklarla daha ayrıntılı bir öğretici oluşturabilirim. Şu anda tam bir öğretici yazmak için çok yorgun ve meşgulüm ve bu yeterli olmalı çünkü size gerekli kodun çoğunu verir.


Repoya bir bağlantı gönderebilir misiniz?
Roma Fedor
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.