Çokgenler yerine trilyonlarca “atom” mu oluşturuyor?


9

Yayıncıların "3D icatından sonraki bir sonraki büyük adım" dediği hakkında bir video gördüm . İçinde konuşan kişiye göre , sınırsız bir ayrıntı düzeyine ulaşmak için çokgenler yerine bulutlara gruplanmış çok miktarda atom kullanıyorlar .

Videoyu, herhangi bir oluşturma tekniği hakkında bilgi sahibi olmayan kişiler için anlaşılabilir hale getirmek için ellerinden geleni yaptılar ve bu nedenle veya başka amaçlarla motorlarının nasıl çalıştığına dair tüm ayrıntıları dışarıda bıraktılar.

Videolarındaki ayrıntı düzeyi benim için oldukça etkileyici görünüyor.

  • Mevcut donanımdaki çokgenler yerine özel atomlar kullanarak sahneleri oluşturmak nasıl mümkün olur? (Hız, bellek açısından)
  • Eğer bu gerçekse, neden şimdiye kadar kimse bunu düşünmemişti?

Bir OpenGL geliştiricisi olarak bununla şaşkınım ve uzmanların söylediklerini gerçekten duymak istiyorum. Bu nedenle, bunun ucuz bir reklam gibi görünmesini istemiyorum ve video bağlantısını yalnızca istendiğinde yorumlar bölümünde içereceğim.


7
Bilgisayar grafiklerinin başlangıcından bu yana en devrimci şeyi icat ettiler, ancak bir inç'e kaç milimetrenin sığdığını bilmiyorlar, bu size ne anlatıyor.

2
Teknolojileriyle ilgili ayrıntılarla o kadar sınırlıdırlar ki, bir tartışma zorlaşır. Videodan anladığım kadarıyla yazılımda 20 fps. Çok fazla statik geometri, bir sürü örnekleme görüyorum ve verilerin ne kadarının önceden hesaplandığını veya anında oluşturulduğunu bilmiyorum. Yine de ilginç. Tam anlamıyla maskaralık demek istemem. Alınan fonlarla değil, her ne kadar çok şey ifade etmiyor.
Bart

8
Birisi fantastik iddialarda bulunur ve sadece tamamen ilgisiz bir şeyin (Crysis gibi) görüntülerini gösterirse her zaman şüphelidir. Daha da ötesi, "tıp / uzay yolculuğunda kullanılan teknoloji" ve birbirleriyle hiçbir ilgisi olmayan birkaç şeyi karıştırmak gibi iddialar varsa. Elbette usule göre (neredeyse) sonsuz detay üretmek mümkündür ve bunu yapmak kesinlikle mümkündür. Ne yani, her 1984 mandelbrot demosu bunu yapabilirdi. Bununla birlikte, iddia, bu fil gibi nesneleri sonsuz detayda oluşturduklarıdır. Ve bu sadece kilitler, çünkü yapamazlar.

8
"Grafikleriniz 100.000 kat daha iyi olacak." Olağanüstü iddialar olağanüstü kanıt gerektirir.
Brad Larson

11
Notch , bu video hakkında iki blog yazısı yazdı .
Kevin Yap

Yanıtlar:


11

Bunu yapmak kolaydır. Bir Octtree kullanarak, gerekli ayrıntı düzeyine ulaşıncaya kadar dünyayı giderek daha küçük parçalara bölebilirsiniz. Bu, örneğin bir kum tanesinin büyüklüğü olabilir. Minecraft'ın aşırıya kaçtığını düşünün.

O zaman ne yaparsın? Detay yeterince küçükse, blokları oluşturmayı düşünebilirsiniz - oktree'nin yaprak düğümleri. Diğer seçenekler arasında küreler veya hatta geometrik ilkel bulunur. Her düğümde bir renk ve normal depolanabilir ve azaltılmış LOD için bileşik bilgileri ağacın daha yüksek seviyelerinde depolayabilir.

Bu kadar veriyi nasıl yönetebilirsiniz? Ağaç gerçek bir veri yapısı ise, bir dokuyu tekrar kullanmak gibi, aynı alt ağaçlara referans veren birden fazla işaretçiye sahip olabilirsiniz, ancak geometri de içerir. İşin püf noktası, tüm seviyelerde mümkün olduğunca çok yeniden kullanmaktır. Örneğin, tetrahedral düzenlemede 4 oktanı tüm seviyelerde aynı alt düğüme bağlarsanız, neredeyse hiç bellek kullanmadan çok büyük bir 3d sierpinsky fraktal yapabilirsiniz. Gerçek sahne elbette çok daha büyük olacak.

Sorun şu ki, sadece statik geometri için çalışacak, çünkü gerçek animasyon her bir verinin tümünün değiştirilmesini gerektirecektir. Bununla birlikte, özellikle değişken LOD ile oluşturma sorun yaratmaz.

Böyle bir şey nasıl oluşturulur? Ben ışın izlemenin büyük bir hayranıyım ve bu tür şeyleri GPU ile ve GPU olmadan oldukça iyi idare ediyor.

Bütün bunlar elbette spekülasyon. Bahsettiğiniz dava hakkında özel bir bilgim yok. Ve şimdi ilgili ama farklı bir şey için:

Çok miktarda veri işleniyor

DÜZENLEME İşte yaptığım, ama kutuları daha belirgin hale getirmek için normalleri kasten değiştirdim:

Voksel Stanford tavşan

Bu kare hızı tek bir çekirdek IIRC üzerindeydi. Ağacın derinliğini ikiye katlamak genellikle kare hızını yarıya indirirken, birden fazla çekirdek kullanmak güzelce ölçeklenir. Normalde ilkeliğimi (üçgenler ve benzeri) oktuğumda tutuyorum, ama sırıtarak için bu durumda ağacın yaprak düğümlerini oluşturmaya karar vermiştim. Elbette belirli bir yöntemi optimize ederseniz daha iyi performans elde edilebilir.

Ompf üzerinde bir yerde, gerçekten fantastik olan voksellerle yapılmış bir araba var - bunun dışında statik. Şimdi bulamıyorum ...


Bu değerlendirmeye katılıyorum: videoyu kendim izledim ve sahnelerinin ne kadar statik olduğuna dikkat çekti (çokgen otlarıyla karşılaştırıldıklarında komik; en azından rüzgarları açıkça değilken rüzgarda esiyor).
timday

1
Maalesef bağlantılar öldü.
Joachim Sauer

1
@JoachimSauer OMPF forumu bir süre önce yıkıldı. Doğrudan değiştirme burada kullanılabilir, ancak içeriğin taşındığından emin değilim.
Bart

Öyle görünmüyor. Bu forumda "tavşan" kelimesini aramak benim için hiçbir sonuç vermiyor.
Joachim Sauer

ilk bağlantı açılır pencereleri açar ve kutunun -1
uyarısını yapar

6
  • Mevcut donanımdaki çokgenler yerine özel atomlar kullanarak sahneleri oluşturmak nasıl mümkün olur? (Hız, bellek açısından)

Videoyu izlerken hiçbir şey bana herhangi bir özel donanımın kullanıldığını göstermez. Aslında, bir şey kaçırmadıkça bunun 20 fps'de yazılımda çalıştığı belirtiliyor.

Belki de ışın izleme, voksel renderleme ve yüzey sıçraması gibi çeşitli teknolojileri kullanarak gerçek zamanlı renderleme konusunda oldukça fazla gelişme olduğunu bilmek sizi şaşırtacak. Bu durumda ne kullanıldığını söylemek zor. (Eğer ilgileniyorsanız, harika bir gerçek zamanlı ışın izleme forumu için http://igad2.nhtv.nl/ompf2/ adresine ya da ilginç bir voksel motoru için http://www.atomontage.com/ adresine bakın. Google, bu konuyla ilgili bazı harika bağlantılar için "yüzey sıçraması")

Filme bakarsanız, tüm geometrinin statik olduğunu ve ayrıntılı olmasına rağmen, somutlaştırmayı ima edebilecek oldukça fazla nesne tekrarı olduğunu fark edeceksiniz.

Ve büyük olasılıkla çok fazla agresif ayıklama, ayrıntı seviyeleri ve alan bölümleme devam edecek.

Görsel kaliteye bakarsanız (geometrik karmaşıklığa değil), o kadar etkileyici görünmüyor. Aslında oldukça düz görünüyor. Gösterilen gölgeleme verilere dönüştürülebilir ve gerçek zamanlı olarak değerlendirilmeyebilir.

Animasyonlu geometri ve dinamik aydınlatma ile bir demo görmek isterim.

  • Eğer bu gerçekse, neden şimdiye kadar kimse bunu düşünmemişti?

Tamamen yanlış olmadıkça (ve ilk defa böyle olmazsam) ilk cevabım mevcut teknolojinin (belki de çok zeki) kullanımını önerebilir, belki de bu demosu oluşturmak için optimize edilmiş ve genişletilmiştir. Gerçi gerçek bir oyun motoruna dönüştürmek, statik geometri içeren diğer tüm görevlerle birlikte tamamen farklı bir top oyunudur.

Tabii ki tüm bunlar saf spekülasyon (bu benim için çok eğlenceli hale getiriyor). Söylediğim tek şey bunun mutlaka bir sahte olmadığı (aslında bunun hala etkilendiğini ve hala etkilendiğimi değil), ama muhtemelen ses çıkardıkları kadar çığır açıcı olmadığıdır.


5

Bu atomlar aslında mevcut grafik donanımına o kadar sihirli / özel / yabancı değiller. Bu sadece bir tür nokta bulutu veya voksel tabanlı renderleme. Üçgenler yerine, mevcut donanımda hiçbir şey elde edilemeyecek bir nokta veya kutu oluştururlar.

Daha önce yapıldı ve yapıldı ve süper buluş değil, ama belki de bunu yapmak için daha fazla bellek ve zaman verimli bir yol buldular. Oldukça ilginç ve kulağa ilginç gelse de, bu videoyu bir tuz tanesi ile çekmelisiniz. Tamamen dokulu çokgen yerine 100.000 nokta oluşturmak (zaten ekranda yalnızca birkaç piksel alan), grafik kalitenizi 100.000 faktör kadar iyileştirmez.

Ve bu arada, id yazılımının da GPU hızlandırılmış voksel oluşturmayı denediğini duydum, ancak John Carmack'e bu videonun konuşmacısından biraz daha fazla güveniyorum :)


2

Bu bir yatırım dolandırıcılığıydı.

Fikir gelince, mevcut özel olmayan donanım üzerinde mümkün değildir. Yakın bir şeye bakarken boşluklardan kaçınmanız gereken puan miktarı, bugünkü RAM'de tetikleyebileceğiniz puanların çok ötesindedir. Demoda gösterilen performansa yakın bir şey sağlayacak herhangi bir veri yapısı veya arama algoritması bilmiyorum. Ve bu noktaları gerçek zamanlı olarak aramak mümkün olsa bile , önbellek özlüyor ve bellek bant genişliği yapamamanızı sağlayacaktır.

Bu tür görüntülerin gerçek zamanlı olarak elde edilemeyeceğinden şüphe etmiyorum, sadece sunulan yöntemle değil. Tahminimce, demolar onlarca yıldır kullanılan ve zaten gerçek zamanlı olarak oldukça yüksek detaylar üretebilen voksellerle oluşturuldu: http://www.youtube.com/watch?v=BKEfxM6girI http://www.youtube .com / watch? v = VpEpAFGplnI


2
"Bu bir yatırım aldatmaca oldu" ... ne temel bu? Özellikle son zamanlarda edinilen fonlar ve videolar bugün yükleniyor mu?
Bart

1
Hangi videolar? Bir yıldan fazla bir süredir güncellenmediler.
Hannesh

1
OP tarafından yorumlarda yayınlanan şekliyle youtube.com/user/EuclideonOfficial .
Bart

1

Gördüğüm kadarıyla, basit çokgen şekilleri yerine parametrik şekiller kullanıyor gibi görünüyorlar - diğer bir deyişle geometriyi gerekli çözünürlüğe göre değiştiriyorlar.

Bu, geometri gölgelendiricileri ve perlin gürültüsü gibi teknikler kullanılarak yapılabilir.

Diğer bir olasılık GPGPU'yu (örn. CUDA) çokgenler dahil sahne oluşturmak ve ışın izleme (z sırası ve gölgeler için) yapmaktır. Başka bir olasılık, üçgenler yerine formüller oluşturan özel bir donanımdır


0

Tüm iddialarını düşünüyorum, belleğin sıkıştırılması abartı gibi görünüyor, RLE sıkıştırması gibi büyük bir etkisi olan bir şey anlayabiliyordum. Sonunda bu sistemin çok fazla "artı", ama ışın izleme veya yürüyen küplerle iso-yüzey işleme gibi bir çok "eksileri" olacağını düşünüyorum.

“Trilyonlarca atom” oluşturmaya gelince; Bunu söylediklerini sanmıyorum. Bunun yerine, W * H atomlarını, yani ekrandaki piksel başına bir atomu aramaktır. Bu, çok yavaş zor yollarla gerçekleştirilebilir. Bunu hızlandırmanın bazı yolları KD Ağaçları ve BSP Ağaçları, Octrees vb .'dir. Sonunda, sıralanan çok fazla veri ve demolarının görünüşte 1440x720 atomu, her kare başına bir kez sıraladığı gerçeği, demolarındaki gölgeler / yansımalar nedeniyle şaşırtıcı. Yani cudos!


-1

çalışma şekli çok daha basit olduğunu düşünebilirsiniz, ön yükleme yerine bir oyun seviyesi söyleyin, sadece tek bir ekran, ekranınızdaki piksel başına bir veya birkaç atom yükler, daha fazlası, oyun / motor sonraki kareler vardır ve yüklenen tek şey budur, tüm nesnenin kendisi değil yalnızca nesnenin görünür kısmı oluşturulur. Artıları: Monitörünüzün işleyebileceği tanım ve çözünürlük, düşük bellek kullanımı CONS: diskten okuma hızı oldukça büyüktür ve düşük kare hızına yol açabilir.


Bu, önceki 7
cevapta
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.