Надання трильйонів "атомів" замість багатокутників?


9

Я щойно побачив відео про те, що видавці називають "наступним головним кроком після винаходу 3D". За словами людини, яка говорила в ній, вони використовують величезну кількість атомів, згрупованих у хмари замість полігонів, щоб досягти рівня необмеженої деталізації .

Вони намагалися зробити це відео зрозумілим для людей, які не знають жодної техніки рендерінгу, а тому або для інших цілей залишили без уваги всі деталі того, як працює їх двигун.

Рівень деталізації в їхньому відео виглядає для мене досить вражаючим.

  • Як можна візуалізувати сцени, використовуючи власні атоми замість полігонів на поточному обладнання? (Швидкість, пам'ять про пам'ять)
  • Якщо це реально, чому ніхто досі навіть про це не думав?

Я, як розробник OpenGL, дуже здивований цим і дуже хотів би почути, що мають сказати експерти. Тому я також не хочу, щоб це виглядало як дешева реклама, і я включатимуть посилання на відео лише за потреби, у розділі коментарів.


7
Ну, вони винайшли найреволюційну річ з початку комп'ютерної графіки, але вони не знають, скільки міліметрів вкладається в дюйм, що це говорить вам.

2
Вони настільки обмежені в деталях (пробачте каламбур) про свою технологію, що обговорення важке. З того, що я розумію з відео, це 20fps в програмному забезпеченні. Я бачу багато статичної геометрії, цілу купу інстанцій і не знаю, скільки даних попередньо обчислюються або генеруються на льоту. Ще цікаво, хоча. Я не хотів би повністю називати шенагіганів. Не з отриманим фінансуванням, хоча це не означає усього багато.
Барт

8
Завжди підозріло, якщо хтось висуває фантастичні претензії і показує лише кадри чогось зовсім не пов'язаного (наприклад, Crysis). Тим більше, що є твердження на кшталт "технології, що використовується в медицині / космічних подорожах", і змішування декількох речей, які не мають нічого спільного між собою. Безумовно, можна створити (майже) нескінченну деталізацію процедурно, і, безумовно, це можливо зробити. Що ж, кожен демонстраційний мандеброб 1984 року міг це зробити. Однак, твердження полягає в тому, що вони подають предмети, як той слон, в нескінченних деталях. І це просто боллоки, бо вони не можуть.

8
"Ваша графіка майже покращиться в 100 000 разів." Надзвичайні вимоги вимагають надзвичайних доказів.
Бред Ларсон

Відповіді:


11

Це легко зробити. Використовуючи Octtree, ви просто розділите світ на прогресивно менші шматочки, поки не досягнете необхідного рівня деталізації. Наприклад, це може бути розмір зерна піску. Подумайте, що Minecraft поставлений до крайності.

Що ви робите тоді? Якщо деталізація досить мала, ви можете розглянути блоки рендерінгу - листкові вузли октре. Інші варіанти включають сфери або навіть геометричні примітиви. Колір і нормальність можуть зберігатися на кожному вузлі, а для зменшеного LOD можна зберігати складову інформацію на більш високих рівнях дерева.

Як можна керувати такою кількістю даних? Якщо дерево є фактичною структурою даних, ви можете мати декілька покажчиків, що посилаються на одні і ті ж субдерева, як повторне використання текстури, але воно також включає геометрію. Хитрість полягає в тому, щоб отримати якомога більше повторного використання на всіх рівнях. Наприклад, якщо ви підключите 4 октанти в тетраедричному розташуванні всі до одного і того ж дочірнього вузла на всіх рівнях, ви можете зробити дуже великий 3d сірпінський фрактал, використовуючи майже відсутність пам'яті. Справжня сцена, звичайно, буде значно більшою.

Проблема полягає в тому, що вона працюватиме лише для статичної геометрії, оскільки реальна анімація потребує маніпулювання всіма цими даними кожного кадру. Однак надання, особливо зі змінною LOD, не є проблемою.

Як зробити таке? Я великий прихильник трасування променів, і він дуже добре поводиться з подібними речами з графічним процесором і без нього.

Все це - спекуляція звичайно. Я не маю конкретної інформації щодо справи, про який ви говорите. А тепер для чогось пов’язаного, але іншого:

Величезна кількість наданих даних

EDIT І ось я це зробив, але я навмисно змінив норми, щоб зробити поле яснішим:

Зайчик Стенфорда у вокселях

Ця частота кадрів була на одному ядрі IIRC. Подвоєння глибини дерева, як правило, скоротить частоту кадрів вдвічі, тоді як використання декількох ядер буде добре масштабуватися. Зазвичай я зберігаю примітиви (трикутники і подібні) у своїй октрисі, але для посмішок я вирішив зробити в цьому випадку листяні вузли дерева. Кращі показники можна досягти, якщо оптимізувати конкретний метод.

Десь на ompf стоїть машина, виконана з вокселями, яка справді фантастична - за винятком того, що вона статична. Не можу знайти його зараз ...


Я погоджуюся з цією оцінкою: я просто переглянув відео і був вражений тим, наскільки статичні їх сцени (смішно, коли вони порівнюють з багатокутною травою; принаймні, це дме вітер, тоді як їх явно немає).
тайм

1
На жаль, посилання мертві.
Йоахім Зауер

1
@JoachimSauer Дійсно, форум OMPF дещо пішов на спад. Тут доступна пряма заміна , але мені невідомо, чи було перенесено будь-який вміст.
Барт

Не схоже на це. Пошук "зайчика" на цьому форумі для мене не дає результатів.
Йоахім Зауер

перше посилання відкриває спливаючі вікна та поле сповіщень -1
NimChimpsky

6
  • Як можна візуалізувати сцени, використовуючи власні атоми замість полігонів на поточному обладнання? (Швидкість, пам'ять про пам'ять)

Перегляд відео нічого не вказує на те, що було використано будь-яке спеціальне обладнання Насправді зазначається, що це працює у програмному забезпеченні в 20 кадрів в секунду, якщо я щось не пропустив.

Можливо, ви будете здивовані, дізнавшись, що в області візуалізації в реальному часі було досить багато розробок з використанням різних технологій, таких як відстеження променів, віксельна візуалізація та вибивання на поверхні. Важко сказати, хоча те, що було використано в даному випадку. (Якщо вам цікаво, подивіться на http://igad2.nhtv.nl/ompf2/ для чудового форуму відстеження променів у режимі реального часу або на http://www.atomontage.com/ для цікавого вокселя. Google "поверхневі бризки" для чудових посилань на цю тему)

Якщо ви подивитесь на фільм, то помітите, що вся геометрія є статичною і хоча деталізованою, є досить багато повторень об'єктів, що може натякати на інстанціювання.

І, швидше за все, буде багато агресивного вибивання, рівнів деталізації та розподілу простору.

Якщо дивитися на візуальну якість (а не на геометричну складність), це виглядає не все так вражаюче. Насправді це виглядає досить плоско. Показані тіні можуть бути записані в дані та не оцінюватися в режимі реального часу.

Мені б хотілося побачити демонстрацію з анімованою геометрією та динамічним освітленням.

  • Якщо це реально, чому ніхто досі навіть про це не думав?

Якщо я абсолютно не помиляюся (і це не буде вперше), моя перша відповідь запропонує (можливо, дуже розумно) використовувати існуючу технологію, можливо оптимізовану та розширену для створення цієї демонстрації. Однак, перетворення його в фактичний ігровий движок, з усіма іншими завданнями, крім надання статичної геометрії, що включає в себе, - це зовсім інша гра з м'ячем.

Звичайно, все це чисті міркування (що мені дуже приємно). Все, що я говорю, - це не обов’язково підробка (насправді я не думаю, що це і все ще вражає), але, мабуть, не настільки революційно, як це теж звучить.


5

Ці атоми насправді не такі магічні / особливі / чужі для сучасного графічного обладнання. Це просто певна хмара точок або візуалізація на основі вокселів. Тож замість трикутників вони видають очки або поля, нічого не досяжного з поточним обладнанням.

Це було і вже зроблено, і це не супер винахід, але, можливо, вони придумали більш оперативний об'єм пам'яті та час. Хоча це виглядає і звучить досить цікаво, вам слід зняти це відео із зерном солі. Надання 100 000 очок замість повністю текстурованого багатокутника (який на екрані вже займає лише кілька пікселів) не покращує якість вашої графіки на 100 000.

І, до речі, я чув, що програмне забезпечення id також випробовує графічне відображення вокселів з графічним процесором, але я маю більше довіри до Джона Кармака, ніж до диктора цього відео :)


2

Це була інвестиційна афера.

Що стосується ідеї, то це неможливо здійснити на поточному не виділеному апаратному забезпеченні. Кількість балів, які вам знадобляться, щоб уникнути прогалин, дивлячись на щось близьке, набагато перевищує кількість балів, яку ви могли б отримати в сьогоднішній оперативній пам'яті. Навіть якщо я не знаю жодної структури даних чи алгоритмів пошуку, які б давали щось, що було б поруч із показниками, показаними в демонстраційній версії. І навіть якби якимось чином можна було шукати ці точки в режимі реального часу, пропуски кеш-пам'яті та пропускна здатність пам’яті забезпечили би те, що ви не можете.

Я не сумніваюсь у тому, що подібних зображень неможливо досягти в режимі реального часу, тільки не за допомогою представленого методу. Я здогадуюсь, що демонстрації демонструвалися за допомогою вокселів, які використовуються десятиліттями і вже можуть створювати досить високі деталі в режимі реального часу: http://www.youtube.com/watch?v=BKEfxM6girI http://www.youtube .com / дивитися? v = VpEpAFGplnI


2
"Це була інвестиційна афера" ... на чому ви базуєтесь? Особливо зважаючи на придбане нещодавно фінансування та відео, які завантажуються сьогодні?
Барт

1
Які відео? Вони не оновлювалися більше року.
Hannesh

1
youtube.com/user/EuclideonOfficial, як розміщено в коментарях ОП.
Барт

1

З того, що я бачив, здається, що вони використовують параметричні фігури замість простих фігур багатокутника - іншими словами, вони змінюють геометрію відповідно до необхідної роздільної здатності.

Це можна зробити за допомогою таких методів, як шейдери геометрії та шум перлін.

Іншою можливістю є використання GPGPU (наприклад, CUDA) для візуалізації сцени, включаючи неполігони, та для відстеження променів (для z-порядку та тіней). Іншою можливістю є спеціальне обладнання, яке надає формули замість трикутників


0

Я думаю, що з усіх їхніх тверджень стискання пам'яті здається перебільшенням, я можу зрозуміти щось на зразок стиснення RLE, що має великий вплив. Зрештою, я думаю, що ця система матиме багато "плюсів", але багато "мінусів", як націлювання на проміння, чи ізоповерхневий перегляд кубиками, що марширують.

Що стосується надання «трильйонів» атомів; Я не думаю, що вони говорять про це. Замість цього вони шукають атоми W * H, тобто один атом на піксель на екрані. Це може бути здійснено багатьма повільними складними способами. Деякі способи прискорити це - KD Trees, BSP Trees, Octrees і т. Д. Зрештою, це багато даних сортується, і той факт, що їх демонстрація, очевидно, сортує 1440x720 атомів, більше одного разу на кадр, через тіні / роздуми в їх демонстрації, дивовижно. Так кудо!


-1

як це працює набагато простіше, ніж ви можете подумати, замість того, щоб попередньо завантажувати, скажімо, рівень гри, він завантажує лише один екран, один або кілька атомів на піксель на екрані, більше нічого, гра / двигун тоді передбачить, що наступні кадри є, і це єдине, що завантажується, виводиться лише видима частина об'єкта, а не сам об'єкт. PROS: стільки чіткості та роздільної здатності, з якими може працювати ваш монітор, низьке використання пам'яті CONS: швидкість зчитування з диска досить велика і може призвести до низької частоти кадрів.


це, здається, не пропонує нічого суттєвого щодо питань, викладених та пояснених у попередніх 7 відповідях
gnat
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.