Oyun grafikleri neden animasyon filmler kadar güzel değil?


60

Tomb Raider'in önceden işlenmiş fragmanını izlediğimi hatırlıyorum ve bu grafiklerin oyunun içinde olmasını diledim.

Treyler ve gerçek oyun arasında neden bu kadar büyük bir fark var? Oyunun tamamen farklı bir kavram olduğunu, farklı bir boru hattına sahip olduğunu, farklı türde oyuncu etkileşimlerinden geçmesi gerektiğini biliyorum.

Şimdiye kadar bir oyun ve animasyon filmi yapmanın bazı temel iş yüklerini paylaştıklarını biliyorum, örneğin 3B modeller yapmak, bunları yapmak (sadece oyunda canlı olur). Animasyonlu filmler uzun süre oynatılıyor ve yalnızca önceden oluşturulmuş sahneleri görüyoruz. Tüm bildiğim bu yüzden umarım o bakış açısıyla cevap verirsiniz!

Peki saatlerce saatlerce canlandırılan animasyon filmleri ne kadar güzel kılarlar, oyunda canlı görüntü oluşturma daha az güzelken (genel bakış açısından)?


1
Kabul edilen cevabın gerçekten sorunuzun noktalarını nasıl karşıladığını anlamıyorum. Burada bir yorum bırakıp, ondan ne anladığının bir özeti olarak, yani size hangi haberi getirdi, böylece şimdi daha önce yapmadığınız sorunu anlayabiliyor musunuz?
Bogdan Alexandru,

4
Kafan ne olduğundan emin değilim. Soru başlıktır; Kabul edilen posta bu soruyu cevaplar.
14'te

2
Aslında cevabın% 80'ini anladım. Gerisi% 20'yi kapsıyordu, özellikle @ Vladimir'in cevabından çok şey öğrendim (aşağıya bakınız). Cevapların bazıları, düşünmediğim şeyleri bile tartıştı, örneğin görüntülemeden sonra ayrıntı ekleme. Ve soruyu cevaplamak için cevabı seçtim, çünkü daha derin bir anlayış getirdiğini düşünüyorum (sadece noktalardan bahsetmedi, bunun arkasında çalışan algoritmalar / kavramlar da var). Ve o zaman bunu okumayı bitirdim, diğer cevaplar da şaşırtıcıydı! Hangisinin en iyi olduğunu seçmek zordu ama insanlar da ondan hoşlanıyor gibi görünüyor! Hepsini işaretlerdim!
cowboysaif

Belki de oyun geliştiricilerin efektlere 50.000.000 $ + harcama yapmakla ilgisi olmadığı için - film yapımcıları bugünlerde rutin olarak yapıyor.
Pieter Geerkens

Yanıtlar:


109

Zaten merkezi noktalardan birini söyledin: Zaman .

Yüksek kalitede bir animasyon gerçekleştirmenin arkasındaki süreçte, birden fazla farklı yaklaşım ve algoritma (tümü genellikle "Global Aydınlatma" terimi altında birleştirilir ) kullanılır, Ray-Tracing en yaygın olanlardan biri olur (diğerleri, örneğin Radiosity ve Ambient Occlusion dahil) ).

Ray-Tracing, sahneden geçen (genellikle yüksek) ışık ışınlarının benzetilmesini ve farklı malzemelere sahip nesnelere çarptıklarında yollarını, yansımalarını ve kırılmalarını hesaplamayı içerir. Ardından farklı materyaller, ışınlar için spesifik reaksiyonlarla sonuçlanan farklı fiziksel özelliklere sahiptir (örneğin, bir nesneden sıçrayan ışık miktarı, parlak olana kıyasla parlak nesneler için daha yüksektir).

Başka bir nokta Fizik : Binlerce saç suşunu fiziksel olarak doğru bir şekilde simüle etmek zaman alıcıdır. Bu nedenle eski oyunlarda, saçlara genellikle biraz daha gerçekçi görünmesi için bazı ek hareketli nesnelerle saç izlenimi vermek için dokulu çok kaba bir ağ ile yaklaşılır.

Dikkat edilecek diğer noktalar: Bellek ve Bant Genişliği . Bir sahnedeki nesneye uygulanan dokunun kalitesi ne kadar yüksek olursa, onu oyunda yüklemek ve kullanmak için o kadar fazla hafıza gerekir. Ancak, sistemin verileri tutmak için yeterli belleğe sahip olması gerekmez, aynı zamanda mevcut bant genişliğini kullanan çevreye aktarılması gerekir. Bellek ve bant genişliği sınırlı olduğundan, elde edilebilecek bir maksimum vardır.

Oyunlar genellikle yakın nesneler için yalnızca yüksek çözünürlüklü dokuları kullanarak biraz aldatır ve uzaktaki nesneler için daha düşük çözünürlüklü görüntüler kullanır (terim: MipMapping ), böylece daha düşük dokuların getirilmesi gerekmekte ve bu da performansı arttırmaktadır. ( Apple'ın OpenGLES Programlama Kılavuzunda MipMapping ile ilgili bölüme bakınız ).

Benzer şekilde, oyunlar ayrıca nesneler için ne kadar uzakta olduklarına bağlı olarak daha az ayrıntılı olan nesnelere göre farklı kafesler kullanırlar (terim: LoD = Ayrıntı Düzeyi ).

Sonuç: Gerçek zamanlı grafiklerde (oyunlar ve simülasyonlar gibi), bu ayrıntılı ve karmaşık oluşturma işlemi elbette akışkan / pürüzsüz sahneler üretmek için çalışmaz. İnsan gözü için bu sıvı animasyon / hareket efekti elde etmek için saniyede en az 20 render kare gerekir. Diğer yandan, bir animasyon filminde tek bir kare (!) Oluşturmak, Ray-Tracing'de kullanılan ışın sayısı veya Ortam için örnek sayısı gibi birçok faktöre bağlı olarak birkaç saatten birkaç güne kadar her şeyi kolayca alabilir Tıkanma ( 16 ve 256 örneğin ekran görüntüleri için bu Pixar sayfa 1 / Pixar sayfa 2'ye bakın) ve istenen film çözünürlüğünü (daha fazla piksel = hesaplanacak daha fazla bilgi için). Ayrıca bu makaleye bakınPixar'ın Canavarlar Üniversitesi animasyon filmi arkasındaki süreç hakkında, bazı ilginç bilgiler vererek ve ayrıca 29 saatten söz ederek kare başına zaman veriyor.

Genel olarak: Ulaşılacak olan sadakat / gerçekçilik ne kadar yüksekse, o zaman daha fazla kaynak gerektiren (o zaman ve / veya hesaplama gücü / hafızası) daha fazla yineleme / sıçrama / numune gerekir. Farkı görselleştirmek için, bu örnekte kırılma hesaplaması için sekme sayısına bağlı olarak sonuçta elde edilen işleme bakınız: Keyshot'dan Elmas Sıçrama

Ancak, elbette, gerçek zamanlı uygulamalardaki kalite iki nedenden dolayı her zaman artar:

  1. Daha güçlü donanım: (oyun) bilgisayarları daha iyi hale geldikçe (= daha fazla [paralel] işlem gücü, bilgisayar bileşenleri arasında daha fazla veri aktarımı, daha fazla ve daha hızlı hafıza vb.), Görsel uyumluluk da artar, çünkü daha fazla zaman alan hesaplamalar aslında gerçek zamanlı bir sistemde uygulanabilir hale gelir.
  2. Işınlamaya ihtiyaç duymadan foto-gerçekçi efektler yaratabilen daha akıllı yöntemler / formüller geliştirilmiş ve uygulanmıştır. Bu genellikle yaklaşımları ve bazen önceden hesaplanmış verileri içerir. Bazı örnekler:


4
@cowboysaif hayır GPU'da "olduğu gibi" yapamazsınız. Özel HW almak zorunda kalacaksın. Ancak, CUDA veya benzeri bir teknoloji kullanarak gerçek zamanlı ışın taraması yapma girişimleri vardır.
wondra

4
Profesyonel kalitede sinema yaparken, çevrimdışı görüntülemede kullanılan ışın izlemeden başka birçok teknik vardır. Ancak dediğiniz gibi, gerçek zamanlı görüntü oluşturma için pratik olmayan pahalı görüntü oluşturma, ışıklandırma ve gölgeleme teknikleri kullanıyorlar.
MrCranky

40
Bu cevap, önceden oluşturulmuş animasyonun neden daha fazla zaman aldığını ancak gerçekten bir ölçeklendirme duygusu vermediğini açıklar. Fark çok büyük ! Bir oyunun saniyenin 1 / 30'unun altında bir kare oluşturması gerekirken, filmlerin her kareyi oluşturmak için rutin olarak birkaç gün sürmesi gerekir.
14'te atıyor

9
"Günler" kesinlikle zamanın en yüksek seviyesidir, ancak evet filmler bazen tek bir kare oluşturmak için 1 günden fazla zaman alır (örneğin, bkz. Venturebeat.com/2013/04/24/… ) Ve hatta ortalama render yapmak her karede yarım gün sürüyor, ki bu hala bir oyunun yapmasından daha uzun sürüyor. Tüm filmin gösterilmesinin on yıl sürmemesinin nedeni, yani bir render çiftliğine sahip olmaları. Aynı anda yüzlerce makine üretiyor.
14'te atıyor

7
Birkaç gerçek: Raytracing her yerde kullanılıyor, kesinlikle bir niş tekniği değil. VRay sadece CPU'dur. VRayRT yalnızca GPU’dur. GPU, üretim için pek uygun değildir, çünkü sahneler genellikle birçok GB RAM alır ve GPU’ya sığmaz (ancak bazen yardımcı olur). Kendi çekimlerimiz high-end işlemcilerde 1-2 saat / kare hızında sürüyor ve çok da uzun sürmüyor. JackAidley tamamen yanlıştır.
Calvin1602

44

Zaman faktörünün yanı sıra, bir filmde sanatçının izleyicinin neye bakacağını ve neye bakmayacağını tamamen kontrol edebileceğine dikkat etmek gerekir.

Tipik film sahnenizde, kamera tavana ya da odanın karanlık bir köşesine ya da birinin bileğine yönelik çok fazla zaman harcamaz, bu yüzden bu elemanlar için çokgen ve doku bütçesi oldukça düşük olacaktır.

Sahnenin tamamı tek bir noktadan gerçekleşirse, sanal setin (gerçek bir film seti gibi) kameranın arkasındaki parçaları içermesi gerekmez. Çoğu oyunda, oyuncu istediği zaman herhangi bir yere bakmak için ücretsizdir. Bu, kalite bütçesinin gerçekte görülenlere odaklanabileceği anlamına gelir. (Örneğin, God Of War serisi gibi bazı üçüncü şahıs oyunlarında sınırlı bir kamera kullanılır; görselleri daha özgür kamera oyunlarından daha iyi olma eğilimindedir.)


12
Hafife alınmaması gereken bir nokta. Sabit bir çerçeve kümesinin oluşturulması, yalnızca bu karelere odaklanmayı sağlar; tek bir karede sorun yaratan herhangi bir şey el ile yapılabilir.
aaaaaaaaaaaa

9
Heck, bu genellikle kendi sahnelerini "motorda yaşıyorlar" yapan oyunlarda kullanılır, bu yüzden kesilen sahneler hala daha iyi görünebilir.
trlkly

Bu kuralı ihlal eden bir oyun IMHO Kardeşler: İki Evlat Masalı Devs, kameranın doğru yerde durduğundan ve kendisinin de doğal hissettiğinden emin olmak için çok uzun sürüyor .
Temel

12
Peki saatlerce saatlerce canlandırılan animasyon filmleri ne kadar güzel kılarlar, oyunda canlı görüntü oluşturma daha az güzelken (genel bakış açısından)?

Farkın yalnızca renderde olduğunu varsayıyorsunuz - bir animasyon filminde, bundan sonra düzenleme yapma şansı da var. Orijinal motorda elde edilmesi zor olacak etkileri bir araya getirmiş olabilirler veya işleri biraz düzeltebilirler (örneğin, animasyonu hızlandırmak / yavaşlatmak için her 10. kareyi kaldırın veya tekrarlayın).

Eğer bir şansınız olursa, 'Roughnecks: The Starship Trooper Chronicles' DVD'lerinden birini kazın, çünkü editörün ve animatörlerin teslimat programlarının gerisinde kalmaya başladıklarında yapmaları gereken püf noktaları hakkında yorumlarına sahipler - çekimleri geri dönüştürmek, ancak ekseni saygısız hale getirmek, böylece belirgin olmamıştır, renk düzeltmeleri, sevmedikleri şeyleri maskelemek, patlamalar eklemek vb.


Oyun motorları da bunu yapıyor! ;-)
Adrian Maire,

@AdrianMaire: diğer bazı şeyleri yapabilirlerdi, ancak orada editör olarak davranacak ve gerektiğinde işleri ayarlayacak insanlara sahip olamazlardı. Bir şeyleri nasıl çimdiklediklerinden bahsettiğimi biliyorum , ama asıl
Joe

10

Sen zaten kendi soruna cevap verdin. Animasyon filmler genellikle, her bir kare için uzun bir oluşturma süresine neden olan daha yüksek bir ayrıntı düzeyine sahiptir.

Öte yandan, oyunların içlerinde çok fazla ayrıntı yok çünkü sahne saniyede 30 veya daha fazla kez gösteriliyor. Bu nedenle geliştiricilerin mümkün olduğu kadar çok varlığı (dokular, modeller vb.) Yeniden kullanmaya çalıştıklarından, çünkü aynı nesneyi iki konumda oluşturmak her şeyin benzersiz olacağından çok daha hızlıdır. Ayrıca, modellerinde çok fazla çokgen kullanmamalarına dikkat etmeli ve bunun yerine aydınlatma, dokular, tümsek haritalama ve diğer teknikleri kullanarak derinlik izlenimi elde etmeye çalışmalıdırlar.

Filmlerin bu sorunu yok; sahneyi istedikleri gibi kullanıp aradıkları sahneyi elde etmek için ihtiyaç duydukları kadar detaylı doku, model ve geometriyi kullanırlar.

Biri oyunların yetişmesine rağmen tartışabilir. Son zamanlarda en iyi görünen oyunlardan bazılarına bakarsanız, film kalitesinden eskisi kadar uzak değillerdir. Elbette her zaman oyundan çok önceden oluşturulmuş bir sahneye daha fazla ayrıntı sığdırabileceksiniz, ancak farkın birkaç yıl içinde fark edilemeyeceğini düşünüyorum.


1
Bu cevapları sevmek! Peki asıl suçlu kim olmalı? Poligon seviyesi veya ışın izleme? Oyun motorları z tampon kullanmaya meyilli mi, çünkü daha hafif mi? Veya ışın izleme derinliği hesaplamaktan daha mı fazla çalışır?
kovboysaif

2
Ray izleme olduğunu tahmin ediyorum. Philip bu konuda benden çok daha bilgili görünüyor, ancak bildiğim kadarıyla, temel olarak ışık ışınlarını gerçekte hareket edecekleri şekilde simüle etmenin bir yolu - olayları atlatmak, dağınık olmak, kırılmak veya olay yerindeki malzemeler tarafından başka türlü değiştirmek , ve bunun gibi. Sahnenizde kürk, saç veya diğer ağır simülasyonlar (sıvılar gibi) gibi şeyler varsa, fizik de yüksek performans sergiler - ayrıca, bunlar daha sonra ışın izlemenin karmaşıklığını tekrar etkiler.
Christian

2
Bir ışın izleme uygulaması ayrıca, hangi nesnelerin diğer nesnelerle tıkandığını belirlemek ve saklamak için bir Z tamponuna benzer bir şeye ihtiyaç duyar. Ancak ışın izleme, gerçek zamanlı bir uygulamadan çok daha ayrıntılıdır, çünkü Christian ve benim daha önce bahsettiğim her şeyi, bu bireysel ışık ışınlarını göndererek ve örneğin cisimler veya sudaki gerçek kırılmalar / saçılımları hesaplayarak daha yüksek bir grafik doğruluğu elde etmek için yapmıştır. fiziki kıl oluşturma, dolaylı aydınlatma ve ortam tıkanması vb. (bu parçaların bazıları günümüzde dediğim gibi gerçek zamanlı uygulamada da kullanılabilir).
Philip Allgaier

7
Filmler, kare başına yaklaşık 10-12 saatlik hesaplama süresiyle oluşturulur. Ve Blinn Yasasına göre , hesaplama gücü her zaman daha iyi hale geldiğinde, sahneye daha fazla şeyler eklerler, böylece gerçekten asla daha hızlı olmamasını sağlar. Film oluşturma aynı zamanda oyunların bir filmden milyon kez daha hızlı olması gerektiğinden oyunların sayısız yaklaşımda bulunduğu tüm oluşturma denklemleri için kapalı formda 'kesin' çözümler kullanma eğilimindedir.
Chuck Walbourn

2
önce Blinn kanunu duymadım, bağlantı harikaydı
jhocking

8

Diğer cevaplar, ham grafik konularını ayrıntılı olarak ele alıyor, ancak oyunların ve filmlerin ve fragmanların gerçekçiliğinin önemli bir kısmından söz etmiyor: animasyon ve kamera hareketleri .

Bir filmde veya fragmanda, insanların ve kameraların her hareketi, o an için doğru duyguyu göstermek için dikkatlice koordine edilebilir ve asla tekrarlanmaları gerekmez. Video oyunlarında, oyun oyuncunun hareketlerine anında tepki verebilmeli ve mümkün olan sınırsız oyun süresinin doldurulabilmesi için küçük bir stok animasyon havuzunu yeniden kullanmalıdır.

Söz konusu karavandan bunun örnekleri , terapistin başını sallayıp "fena değil" gülüşü vermesi ve Lara kolçakları tuttuğunda, bacağını salladığı veya huşu içindeki mağaraya baktığı zamandır. Bu küçük şeyler (veya bunların eksikliği ve içerdiği "plastik" karakterler) algılanan gerçekçiliği küçük grafik gelişmelerinden çok daha fazla etkiler.

Diğer grafik farklılıklarından farklı olarak, bu ona daha fazla hesaplama gücü atmakla çözülebilecek bir problem değildir: senaryo yazılan bir dünya ile her hareketinize cevap veren bir dünya arasındaki temel farktır. Bu bakımdan, bugünün fragmanlarının gerçekçiliğinin öngörülebilir gelecek için tüm oynanışları aşmasını bekliyorum.


8

Yayınlanan diğer harika cevaplara ek olarak, oyun geliştiricilerin oyunların ihtiyaç duyduğu hızlı işlem sürelerini elde etmek için oyun geliştiricilerin görsel efektlerinin çoğunu basit dokular olarak pişirmeleri gerektiğine dikkat çekmek gerekir . Bu, iyi pişmeyecek etkiden kaçınmak için büyük özen gösterilmesi gerektiği anlamına gelir.

Video oyunları için pişirilmesi zor olan önemli bir etkisi de Subsurface Scattering (SSS) . Ne yazık ki, bu etki gerçekçi görünen insan derisinin oluşmasında gerçekten önemlidir. Bu yüzden birçok "gerçekçi" video oyun karakteri plastik görünmeye başladı.

Geliştiricilerin bu sorunu önlemelerinin bir yolu, plastik görünümden uzaklaştıracak karakterleri kasıtlı olarak parlak hale getirerek veya aksi halde büyük, sürekli bölümlerini kesmek için yüze (sakallar gibi) çok fazla gölge ve dokusal ayrıntı ekleyerekdir. cilt.


2
Film animasyonlarına giren tüm post işlemlerden bahsetmiyorum bile. Bir çok şey, oluşturulduktan sonra birlikte katmanlandırılması gereken birden çok ayrı sahne olarak işlenir. Bu yüzden, birçok animasyon filmde, ön planda hareket eden karakterlerle nispeten statik arka planlar göreceksiniz.
Vladimir

6

OP yorumunda sorulan sorulardan birini cevaplamak için:

"Öyleyse ana suçlu kim olmalı? Poligon seviyesi veya ışın izleme?"

Bu soru göründüğünden daha zor. Sanırım iyi bir kural şu ​​(bu arada yaptığım) aşağıdaki denklemdir:

number of calculations = {polygons} * {light sources} * {effects}

Temel olarak, bu, nispeten az sayıda özel materyale sahip (örneğin, ayna, banliyö vb. Olmayan) modeller için hesaplama süresinin, poligon sayısı tarafından belirlenen büyük olacağı anlamına gelir. Bu genellikle çok basit video oyun grafikleri için geçerlidir.

Bununla birlikte, pratikte, yeni üst seviye oyunlarda ve özellikle filmlerde, suçlu "genellikle" ışın izlemedir. Neden? İki nedenden dolayı iyi. Önce matematik sebebini vereceğim, sonra sonunda gerçek sebeple ilgili fikrim.


Mathy nedeni:

Güncelleme: Bu matematik açıklama tam olarak doğru olmayabilir. Lütfen daha fazla bilgi için yorumlarda CrazyCasta'nın açıklamasına bakınız.

1000 poligon ve 3 ışık kaynağınız olduğunu varsayalım. Gerçekleştirmeniz gereken en az ışın izi sayısı 3 * 1000'dir.

Aşırı durumu basitleştirirsek ve 1 ışın izi = 1 hesaplama (brüt küçümseme) olduğunu varsayarsak, o zaman 3000 hesaplamaya ihtiyacımız olacak.

Ama şimdi sizin de düşüncelerinizin olmasını istediğinizi varsayalım.

Ücretsiz program Blender programındaki yansımalar için varsayılan ayarlar :

max reflections  = 2
ray length limit = None
...

Bu ayarlar için, en iyi senaryoda, bu süper basit yansımanın modelinizin hesaplama maliyetini iki katına çıkaracağını tahmin edebiliriz.

Ama daha önce de söylediğim gibi, bu örnek çok fazla basitleştirildi ve render zamanınızı çatıya çekecek çok sayıda etki (daha önce bahsettiğimlerin yanı sıra) bulabilirsiniz.

Durum ve nokta: gloss=1(Blender'da varsayılan) ile yansımaları oluşturmaya çalışın , sonra parlaklığı 0,01'e çevirin ve iki işleme zamanını karşılaştırın. 0.01 parlaklığa sahip olanın çok daha yavaş olacağını ancak modelin karmaşıklığının hiç değişmediğini göreceksiniz.


Nitel ama daha gerçekçi nedenim:

Ağ karmaşıklığının arttırılması, model kalitesini yalnızca bir noktaya kadar iyileştirir. Birkaç milyon yüzünü geçtikten sonra, daha fazla yüz eklemenin yapacağı pek bir şey yok. Pürüzsüzlük kullanırsanız, en genel amaçlar için sadece birkaç yüz yüzle kurtulabileceğinizi söyleyecek kadar ileri gideceğim.

Ancak hemen hemen her zaman fark yaratan şeyler aydınlatma, malzeme etkileri ve ışın izlemedir. Bu nedenle filmler, gerçek dünyanın güzel karmaşıklıklarına yaklaşmak için bunlardan çok sayıda kullanma eğiliminde olacaktır.


Tüm bunlar için bir fikir edinmenin harika bir yolu, en son Disney uzun metrajlı animasyonların sonundaki oyuncu listesine bakmak. Muhtemelen insanlara ne kadar aydınlatma ve doku aldıklarına şaşıracaksınız.


2
Tanrım, bu aradığım nokta. Her ne kadar benim sorum olmasa da (ne istemeliyim biraz kafam karıştı), sanırım bu!
cowboysaif

1
@cowboysaif Yardım etmekten mutluluk! :)
Vladimir

1
Gerçekte işler benim göründüğüm kadar iyi değil. Fakat bunun genel bir fikir edinmenize yardımcı olabileceğini düşünüyorum. Genellikle deneme yanılmalarına güvenirim. Daha uzun bir sahne (100+ kare) oluşturuyormuşum gibi, ilk önce bir veya iki kare yapıyorum, böylece ne kadar hızlı gittiğini ve hangi efektlerin onu yavaşlatma eğiliminde olduğunu görebiliyorum.
Vladimir

2
Günün 486'sında POVRay'i kullanmanın eski bir numarası - sahnenizin hangi bölümlerinin en pahalı olduğunu bilmek istiyorsanız, tüm aktörlerin ve sahne sahiplerinin bulunduğu sahnenin tümünün birden fazla görüntüsünü alın ve yavaş olan bölümleri izleyin. ışın tarağını bir tarağa. Bu bölümleri yakınlaştırın ve en kötü performansları görün ve oluşturma bütçenizin çoğunu bu unsurları içeren karelere harcamaya karar verin. Sıkı bir işleme zamanlamanız varsa, bazı çekimleri yenidenramayı deneyin.
Tom B

1
@ TomB İyi tavsiye! Belirli bir sahnenin yavaş olmasını beklerseniz, web üzerinden gruplandırabilir ve diğer her şeyi yerel olarak oluşturabilirsiniz.
Vladimir

4

Film animasyonunun algılanan hareketi daha akıcı hale getirmek için genellikle çok fazla görsel aldatmaca yapması önemlidir.

Animatörler, örneğin, filmlerin daha düşük oranlarda olmasına rağmen, daha önce herhangi bir oranda olan daha düşük akış hızına sahip olmasına rağmen, daha akışkan görünümlü bir hareket üretmek için , tipik olarak gerçek zamanlı görüntülemede kullanılmayan, örneğin lekeler, katlar veya çarpma gibi, geleneksel el-animasyon tekniklerini kullanabilirler. ) 'de görüntülendi. Özel olarak smear ve katların kullanımı mesh kullanımıyla karmaşıktır - bu tür mesh bozulmaları için mesh deformasyonları oluşturmanız gerekir ve bunun herhangi bir 3B video oyununda yaptığımı sanmıyorum.

Hızlı hareket eden nesnelerin içinden geçen kareler farklı bir kare hızında oluşturulabilir ve daha sonra sahnede hareket bulanıklığı oluşturmak için tekrar birleştirilebilir. Hareket bulanıklığı, bugünlerde gerçek zamanlı 3d grafiklerde oldukça yaygın bir tekniktir. Etkisi genellikle ellerinde işlemcileri olan düzinelerce işlemciye sahip bir animasyon evinin elde edeceği yüksek kalitede değildir (büyük ölçüde hareket bulanıklığı bulanıklaştırmanın gerçekten de katman başına çok sayıda işleme adımını gerektirmesi nedeniyle) ve gerçekten akışkan olmak için çok sayıda ara çerçeve.

Algılanan kaliteyi gerçek zamanlı grafiklerle geliştirmek için bu tür bir görsel hile yapmak, çıktı kare hızını mümkün olan maksimum arka plan oluşturma ara çerçevelerinin çok altında oranlarla sınırlandırmayı ve ardından son kareyi üretmek için birleştirme yapmayı gerektirir. Muhtemelen, bunun gibi teknikleri kullanmak için görsel sadakatteki küçük kazanımların, özellikle doğru yapmak çok zor olacaksa, çerçeve bütçesinin kaybedilmesine değip değmeyeceği konusunda çok sayıda düşünce okulu vardır.

Sorunuzun bir yönünü ele almak için:

Peki saatlerce saatlerce canlandırılan animasyon filmleri ne kadar güzel kılarlar, oyunda canlı görüntü oluşturma daha az güzelken (genel bakış açısından)?

Başta, esnaf. Gerçek zamanlı sanatçılar, sadece zaman kısıtlamaları nedeniyle (hem geliştirme hem de sunma sırasında) değil, bir sahnenin genel görünümünü iyileştirmek için her kareye ince ayar yapma ya da bir kereye mahkum numaralar oluşturma şansına sahip değiller. pratik kısıtlamalar. Etkileşim yorumunda da belirtildiği gibi, oyuncu her seferinde tam olarak aynı şeyi yapmaz, ancak film her zaman aynı şekilde oynatılır.

Bu, video oyun sanatçısı, model kalitesi ve final render kalitesi ile ilgili olarak film sanatçısından çok farklı önceliklere sahip olduğu anlamına gelir. Her ikisi de muazzam miktarda beceri gerektirir, ancak her biri farklı teknikler gerektirir. Tüketici seviyesi oluşturma donanımı ilerlemeye devam ettikçe bu tekniklerin giderek daha fazla birleşmesini ve SIGGRAPH'lerde ve GDC'lerde matematiksel dahinin ortaya çıkmaya devam etmesini bekliyorum.


1
Sadece konuşmak istediğim bir şeyi konuştun. Mesh deformasyonu? Ayrıca örgü değiştirici olarak da adlandırılır? Birlik 3d ile bağlanınca , mega-fiers ( west-racing.com/mf/?page_id=2 ) denilen bir değiştirici var . Birlik 3d sadece kemik tabanlı animasyonları desteklese de, oyun teknolojilerinin sonunda başa çıkabileceğini düşünüyor musunuz? Diğer oyun motorları hakkında hiçbir fikrim yok!
cowboysaif

1
Bu tür bir efekt, verteks gölgelendiricili matematiksel tüm model distorsiyonları kullandığınız sürece (muhtemelen "mega-fiers" ne yapıyorsa) herhangi bir animasyon tekniğiyle uyumlu olmalıdır. Birkaç diğer yaklaşım şunlardır: * tamamen çarpık bir ikinci ağ olan bir "hedef" ağa sahip olmak ve ağınızdaki köşeleri ikinci ağdaki eşleşen köşelerine doğru taşımak için köşe gölgelendiricinizi kullanmak; * Modelinize eklenmiş deformasyonlara sahip olmak ve keyframe animasyonunu kullanmak; * İskelet animasyonunu kullanarak çarpıtmalarınızı sadece gerektiği gibi ekstra kemikler yerleştirerek yapabilirsiniz ...
Tom B

1
Bu tür bir animasyonun bir süredir mümkün olduğuna ve bir dereceye kadar kullanıldığına eminim, ama çoğunlukla sadece kabarık yaratıklara ve esnek modellere (Gish, Goo Kulesi, Octodad gibi) oyunlarda örnekleri hatırlayabiliyorum. . Sert kısım, efektlerin ne zaman kullanılacağını, özellikle de katları veya lekeleri kullanma söz konusu olduğunda ortaya çıkar. Kamera hareketinin yönü, ortaya çıkan çoklu veya lekenin nasıl görünmesi gerektiğini etkiler. El animatörlerinin kullandığı kuralların iyi bir başlangıç ​​noktası olacağından şüpheleniyorum, ancak deneyde yaşanacak tüm eğlenceyi düşünün!
Tom B

3

Tek bir animasyon filminin, bir makinenin tek bir canavarı üzerinde işlenmesi yıllar alabilir. Önceden oluşturulduğundan, sahneye ışık sıçraması, gölgeler vb. Gibi ne kadar pahalı etki gösterdiği önemli değildir. Bu filmler genellikle aynı bilgisayarda çalışan binlerce bilgisayarın birbirine bağlandığı çiftlikler tarafından oluşturulur.

Gerçek zamanlı olarak aynı kaliteyi elde edemememizin nedeni, makinenin 60 FPS'ye ulaşmak için mevcut kareyi yaklaşık 16 ms'de oluşturması gerektiğidir. Animasyonlu bir film için tek bir karenin tek bir bilgisayarda görüntülenmesi saatler alabilir.

Bir oyunda, grafiklerin yanı sıra, bir sürü başka şey oluyor. Her karede tonlarca hesaplama var. Basitçe söylemek gerekirse, bir animasyon filminin, oyuncunun bir roketatardan aldığı hasarı hesaplaması gerekmiyor, sadece boşlukları canlandırıyorsunuz ve çokgenlerin oluşturacağı poligonları canlandırıyorsunuz.

Neyse ki bu gezegende dolaşan bazı dahi insanlar var. Daha fazla çokgen ve daha büyük doku oluşturabilen daha iyi PC'lerin yanı sıra, normal haritalar gibi yapılmış , düz bir çokgenin üzerindeki ışığı / gölgeyi çok ucuza canlandırabilen, sıkıcı bir 3D nesnesinin olağanüstü görünmesini sağlayan bazı yaratıcı icatlar vardır .

Film yapan bu pahalı efektlerin bazıları bu ekstra parlama özelliğine sahip.

  • Işık zıplar. Gerçek hayatta ışık, zıpladığı yüzeyler tarafından tamamen emilene kadar zıplar. Her ışık kaynağı için hesaplamalar yapılmalıdır. Bir beyaz kağıdın yanında renkli bir nesne tutmaya çalışın, kağıdın üzerine taşan rengi göreceksiniz.
  • Oyunların kullanılan poligon miktarı üzerinde ciddi kısıtlamaları var, ön filmlerin bu kısıtlamaları yok, sadece daha uzun sürmesi gerekiyor. Işık sıçramasına geri dönersek, eğer çok fazla poligonumuz varsa o zaman daha iyi görseller için ancak üstel büyüme maliyeti pahasına daha fazla ışık hesaplaması yapılır.
  • Doku boyutu, grafik kartlarında sadece belirli bir miktarda veri tutabilir ve bu verilerin değiştirilmesi pahalıdır. Tüm gölgelendirici haritalarını içeren ortak bir 1024x1024 doku 1GB'lık GFX kartınızı kolayca alabilir. Kartın veri değiştirmesi gerektiğinde, bu ücrete tabidir. Belli ki bir filmi ön planda tutarken bunu pek umursamıyoruz. Ayrıca, bir filmde sadece fotoğraf makinesinin yaklaştığı yüksek çözünürlüklü dokulara ihtiyacımız var, bir oyun için oyuncunun yaklaşabileceği her nesne için bunu istiyoruz.
  • Yol bulma CPU üzerinde çok talep ediyor. Örneğin yol bulma algoritmaları, düşmanların size doğru rota bulmasını sağlar veya bir yere tıkladığınızda oynatıcınızın bir yolda yürümesini sağlar. Bu yol bulma maliyeti 10000 yol noktası olduğunda (bu da 100m x 100m'lik bir haritanın her karesindedir) olduğunda maliyetli olabilir, o zaman tüm bu yol noktalarını tek bir kare üzerinde defalarca geçmemiz gerekir. İhtiyaca bağlı olarak bunu daha ucuz hale getirmenin birçok yolu var, ancak gerçek şu ki önceden belirlenmiş sahneler için buna ihtiyacımız yok.

Simpy, oyunun iyi görünmesi için "ucuz" numaralar bulmamız gerekiyor. Ancak insan gözünü kandırması zordur.

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.