Oyunlarda “sualtı manzarasını” önleme


19

Oyuncunun su altına gidebileceği birçok oyunda, ekranın üst yarısının havada olduğu ve ekranın alt yarısının suda olduğu zaman, neredeyse su yokmuş gibi görünüyor ve oyuncu ... su sesleri ile yavaş uçuyor?

resim açıklamasını buraya girin

Bunu çözmenin mantıklı bir yolu var mı? Bir algoritma mı? Birçok oyun hala buna sahip olduğundan henüz bir çözüm ortaya çıkmış gibi görünmüyor. Aynı hatayı yapmak istemiyorum.


4
Modern oyunlar, su üstünde ve altında farklı gölgelendiricilere sahiptir. Bugünlerde kesinlikle böyle görünmüyor. Crysis'in oldukça gelişmiş su altı renderine sahip olduğuna inanıyorum: youtube.com/watch?v=yXxEZJdFjeM
MartinTeeVarga

9
@ sm4: Sanırım bu oyunda da bu özellik var. Ama sorun şu ki, kamera suyun altında değil, yukarıda ve yakın kırpma nedeniyle aşağıda görebiliyorsunuz.
Kikaimaru

@Kikaimaru Anlıyorum, soruyu tam olarak anlamadım. Ancak Crysis'in bu sorunu yok gibi görünüyor.
MartinTeeVarga

2
Aww, ama nehrin dibinde inciler olup olmadığını başka nasıl görebilirim? (Elder Scrolls Oblivion): D
Tekil1ty

1
Belki kamera yerine "kafa" karakterinin su altında olup olmadığını kontrol edebilir ve karakter su altında olmadığı sürece kameranın su altında kalmasına izin veremezsiniz
Luke B.

Yanıtlar:


16

Bu duruma izin vermemeye ne dersiniz?

Oyununuzu nasıl yaptığınızı bilmiyorum, ancak görünümün kısmen su altında olacağını tespit ederseniz, kamerayı suyun üstünde olmaya zorlayabilirsiniz ve yalnızca tüm görünüm suyun altında olduğunda, sualtı görünümü.

Bunu nasıl yaptığınıza bağlı olarak, bu, dalmaya başladığınız andan ve sahneyi gerçekte yüzeyin altından görüntülediğinizde ek bir gecikme olduğu anlamına gelebilir. Bu aslında bir UX perspektifinden iyi bir şey olabilir, bu yüzden denemekten çekinmeyin.

Ayrı ancak ilgili bir notta, çoğu sualtı sahnesinin neden kristal berraklığında olduğunu merak ediyorum ... Başınızı su altına soktuysanız, gözlerinizin sualtı manzarası için tasarlanmadığını fark edeceksiniz ve bu nedenle her şey bulanık görünüyor. Sualtında net bir şekilde görmek için gözlük takmanız gerekir.

Ve ayrıca, su altında suyun üstünde çok farklı şeyler (ve duymak). Su ışığı havadan çok daha hızlı emer, böylece ışık ne kadar uzağa giderse, gözünüze o kadar az ışık gelir. Bu, ne kadar derine giderseniz, o kadar mavi şeyler görünür (kırmızı ışık daha az enerjiye sahiptir ve bu nedenle mavi ışıktan daha kolay emilir). Aslında, sadece 12 metre su altında, kan kırmızı değil siyah görünür.

Henüz sualtı ortamlarını doğru bir şekilde yapmaya çalışan uzman olmayan bir oyun görmedim ...


5
Birçok oyun ışığı ve sesi su altında değiştirir. Yukarıdaki açıklamalarda yer alan Crysis videosuna bakın. Eminim mükemmel gerçekçi değildir, ancak (a) çoğu insan derin sualtı ortamları ile doğrudan deneyime sahip değildir ve (b) sualtına gittiğiniz oyunlarda, muhtemelen oyunu oynayabilmeniz gerekir. .
Nathan Reed

Çoğu oyunun bunu basitçe yapmadığına inanıyorum çünkü orada hiçbir şey görmezse kimse sualtına gitmek istemez. Ya da belki tüm oyun ana karakterleri Moken insanlar tarafından eğitildi! news.nationalgeographic.com/news/2004/05/…
MartinTeeVarga

1
Oyun geliştirmede, bu tür "doktor, bunu yaptığımda acıyor" çözümü genellikle en uygun çözümdür.
Trevor Powell

1
@TrevorPowell: Yorumunuzu bir düzine kez okudum ve hala anlamınızı anlayamıyorum. Belki detaylandırmak istersiniz?
Panda Pijama

2
Özür! Bu eski bir vaudeville şaka referans . Şaka şuna benzer: Hasta: "Doktor, bunu yaptığımda acıyor!". Doktor: "değil Do do o!" Sadece oyunlarda, bir sorunu çözmenin en basit yolunun, oyunun sorunun çözülmesi gereken bir duruma girmesini durdurmak olduğunu söylemek demekti. (örneğin: "yakın klipsli düzlem su yüzeyiyle kesiştiğinde grafikler yanlış görünüyor" düzeltmenin en kolay yolu "yakın klipsli düzlemin su yüzeyiyle kesişmesine izin vermeyin")
Trevor Powell

7

Bahsettiğiniz sorun, fotoğraf makinesinin su düzleminde görüntü hacmi kırpmasıyla ilgilidir; tipik "sualtı efektleri" tam ekran işlem sonrası efektlerle yapılır ve görünüm bu şekilde kırpılırsa doğru görünmez (tam tersi bir sorun olurdu).

Kırpma kasasını (potansiyel olarak zor) tespit etmek ve başka türlü tam ekran sualtı efektini makaslamak veya klipslemek için uğraşsanız bile, sadece sualtı sahnesine uygulanır (bu, keşfedebileceğiniz potansiyel bir çözümdür). gerçek su düzleminin kendisinin sorunu. Oradaki geçiş hala sarsılmaz bir görsel eser olurdu. Bu düzlemi tespit edebilir ve yoğun bir şekilde bulanıklaştırabilirsiniz; bu muhtemelen, kısmen batık bir kamera merceğinden görüntünün ne olabileceğine dair gerçek dünya benzetmesine en yakın olanıdır.

Alternatif olarak, bunun tamamen olmasını önleyin: oynatıcı suyun "üstünde" veya kamera suyun altında "olduğunda" su düzleminin altına inmesine izin vermeyin. Bu, yalnızca suyun üstünde / altında ayrı oyuncu çalışma modları varsa gerçekten işe yarayacak ve oyuncunun "yüzeyde yüzme" ve "aşağıda yüzme" arasında geçiş yapmak için yapabileceği fiziksel bir düğme veya başka net ve açık bir işlem varsa en iyi şekilde çalışacaktır. yüzey."

Dalış yapmak için açık bir tuş vuruşu yerine, kamera "dalış" anlamına gelecek şekilde yeterince aşağı eğilirken ileri hareketi yorumlayabilirsiniz. Daha sonra, kameranın normalde geçemeyeceği su düzleminden geçişini gizlemek için grafiksel bir efekt (sıçramalar veya herhangi bir şey) kullanabilirsiniz.

Guild Wars 2'de böyle bir teknik kullandık.


3

Oyunlar genellikle kamera su altındayken başta mavi sis olmak üzere bazı efektleri açar. Yakın düzlemin su yüzeyinden geçtiği durumu ele almak için, kamera su yüzeyine yaklaştığında sis gölgelendiriciyi açabilirsiniz, ancak piksel gölgelendiriciye karşılık gelen yakın düzlemdeki noktayı hesaplayan bir kod ekleyebilirsiniz. ve yalnızca bu nokta su yüzeyinin altındaysa sisi etkinleştirir.

Sis bir postprocess olarak yapılırsa, tam ekran geçişi yaparak, bu özellikle kolaydır - sadece tam ekran dörtlü veya üçgenin her bir tepe noktasının dünya düzlemi konumunu yakın düzlemde (tersi ile) hesaplamanız gerekir. görüntüleme / projeksiyon matrisi) ve bu değeri piksel gölgelendiriciye kadar enterpolasyon yapın; dikey bileşenini kontrol edebilir ve su düzleminin üstünde mi altında mı olduğunu görebilirsiniz.

Bonus puanları için, aynı yüzeyi, su yüzeyindeki menisküsü temsil etmek için birkaç piksel kalınlığında bir doku eklemek için kullanabilirsiniz , böylece keskin bir çizgiye benzemez.


(su yüzeyi büyük genel cevap hâlâ bir örgü olmakla eğer sorunları var)
Will

0

İki yöntemim var; Biri gölgelendirici kullanır, diğeri GUI kullanabilir. Her ikisi de aynı şekilde başlayacak:

"Basitleştirilmiş" - If, Object(Camera) is in 3d Space(Water bounding box/whatever you choose) trigger a shader/GUI.

Shader daha fazla gerçekçilik verecek, Bunun gibi bir çarpıtma uygulayabilirsiniz

Sis Gibi Com. Boy belirtti, GUI aracılığıyla uygulanabilir. Kısmi saydamlıkla bir fotoğraf oluşturun ve tüm kamera görünümünde GUI olarak kullanın. Verdiğiniz fotoğraf için kahverengi bir renk denerdim.

Bu Drea D Out adlı bir korku oyununda kullanılmıştır. Oyuncu bir hayalete yaklaşırsa, ekran sisli hale gelir. Su altında kullanılmasa da benzer bir etki yarattı :)

Her zaman iki yöntemi de seçebilir veya rengi değiştirecek bir gölgelendirici yapabilirsiniz.

http://media.indiedb.com/images/games/1/21/20833/Demo_update_SS01.png

Taken from : http://sahdan-share.blogspot.com/2013/04/dreadout.html
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.