Рендеринг триллионов «атомов» вместо полигонов?

9

Я только что видел видео о том, что издатели называют «следующим важным шагом после изобретения 3D». По словам человека, говорящего на нем, они используют огромное количество атомов, сгруппированных в облака вместо полигонов, чтобы достичь уровня неограниченной детализации .

Они изо всех сил старались сделать видео понятным для людей, не знакомых с методами рендеринга, и, следовательно, или в других целях не указали все детали работы их движка.

Уровень детализации в их видео выглядит довольно впечатляюще для меня.

  • Как можно визуализировать сцены с использованием пользовательских атомов вместо полигонов на текущем оборудовании? (Скорость памяти)
  • Если это реально, почему никто еще даже не думал об этом до сих пор?

Я, как разработчик OpenGL, очень озадачен этим и очень хотел бы услышать, что говорят эксперты. Поэтому я также не хочу, чтобы это выглядело как дешевая реклама и будет включать ссылку на видео только по запросу в разделе комментариев.

Ян Догген
источник
7
Ну, они изобрели самую революционную вещь с начала компьютерной графики, но они не знают, сколько миллиметров умещается в дюйме, что это говорит вам.
2
Они настолько ограничены в деталях (простите за каламбур) об их технологиях, что обсуждение становится трудным. Из того, что я понимаю из видео, это 20fps в программном обеспечении. Я вижу много статической геометрии, целую кучу экземпляров и не знаю, сколько данных предварительно вычислено или сгенерировано на лету. Тем не менее, интересно. Я не хотел бы называть махинации полностью. Не с привлеченным финансированием, хотя это не значит много.
Барт
8
Всегда подозрительно, если кто-то делает фантастические заявления и показывает только кадры чего-то совершенно не связанного (например, Crysis). Тем более, если есть такие претензии, как «технология, используемая в медицине / космических путешествиях», и смешивание нескольких вещей, которые не имеют ничего общего друг с другом. Конечно, можно производить (почти) бесконечные детали процедурно, и, конечно, это можно воспроизвести. Так что, каждая демоверсия Мандельброта 1984 года могла это сделать. Тем не менее, утверждается, что они представляют объекты, подобные этому слону, в бесконечной детализации. И это просто бред, потому что они не могут.
8
«Ваша графика станет лучше в 100 000 раз». Чрезвычайные требования требуют чрезвычайных доказательств.
Брэд Ларсон
11
Нотч написал два сообщения в блоге об этом видео.
Кевин Яп

Ответы:

11

Это легко сделать. Используя Octtree, вы просто делите мир на постепенно уменьшающиеся части, пока не достигнете необходимого уровня детализации. Это может быть размер песчинки, например. Думаю, Майнкрафт доведен до крайности.

Что вы делаете тогда? Если детали достаточно малы, вы можете рассмотреть рендеринг блоков - листовых узлов октодерева. Другие варианты включают сферы или даже геометрические примитивы. Цвет и нормаль могут быть сохранены в каждом узле, а для уменьшенного LOD можно хранить составную информацию на более высоких уровнях дерева.

Как вы можете управлять таким количеством данных? Если дерево является фактической структурой данных, вы можете иметь несколько указателей, ссылающихся на одни и те же поддеревья, подобно повторному использованию текстуры, но она также включает геометрию. Хитрость заключается в том, чтобы получить как можно больше повторного использования на всех уровнях. Например, если вы соединяете все четыре октанта в тетраэдрическом расположении с одним и тем же дочерним узлом на всех уровнях, вы можете создать очень большой 3d-серпинский фрактал, почти не используя памяти. Реальная сцена будет намного больше, конечно.

Проблема в том, что он будет работать только для статической геометрии, потому что настоящая анимация потребует манипулирования всеми этими данными в каждом кадре. Однако рендеринг, особенно с переменным LOD, не является проблемой.

Как сделать такую ​​вещь? Я большой поклонник трассировки лучей, и он отлично справляется с подобными вещами как с графическим процессором, так и без него.

Все это, конечно, спекуляция. У меня нет конкретной информации по делу, о котором вы говорите. А теперь о чем-то связанном, но другом:

Огромное количество данных отображается

РЕДАКТИРОВАТЬ И вот что я сделал, но я намеренно изменил нормы, чтобы сделать коробки более очевидными:

Стэнфордский кролик в вокселях

Эта частота кадров была на одном ядре IIRC. Удвоение глубины дерева, как правило, сокращает частоту кадров вдвое, в то время как использование нескольких ядер хорошо масштабируется. Обычно я держу примитивы (треугольники и тому подобное) в своем октавном дереве, но для ухмылки я решил визуализировать листовые узлы самого дерева в этом случае. Лучшая производительность может быть достигнута, если вы, конечно, оптимизируете определенный метод.

Где-то на ompf есть машина с вокселями, которая действительно фантастическая - за исключением того, что она статична. Не могу найти это сейчас ...

phkahler
источник
Я согласен с такой оценкой: только что сам посмотрел видео и был поражен тем, насколько статичны их сцены (забавно, когда они сравниваются с многоугольной травой; по крайней мере, она дует на ветру, а их явно нет).
Timday
1
К сожалению ссылки мертвы.
Иоахим Зауэр
1
@JoachimSauer Действительно, форум OMPF некоторое время назад не работал. Прямая замена доступна здесь, но я не знаю, был ли какой-либо контент перенесен.
Барт
Не похоже на это. Поиск "зайчик" на этом форуме не дает никаких результатов для меня.
Иоахим Зауэр
первая ссылка открывает всплывающие окна и окна предупреждений -1
NimChimpsky
6
  • Как можно визуализировать сцены с использованием пользовательских атомов вместо полигонов на текущем оборудовании? (Скорость памяти)

От просмотра видео ничего не указывает мне на то, что использовалось какое-либо специальное оборудование. Фактически, заявлено, что это работает в программном обеспечении в 20fps, если я что-то пропустил.

Возможно, вы будете удивлены, узнав, что в рендеринге в реальном времени было довольно много разработок с использованием различных технологий, таких как трассировка лучей, рендеринг вокселей и разбрызгивание поверхности. Трудно сказать, что использовалось в этом случае. (Если вам интересно, загляните на http://igad2.nhtv.nl/ompf2/ для большого форума по трассировке лучей в реальном времени или http://www.atomontage.com/ для интересного механизма вокселей. Google "всплеск поверхности" для некоторых отличных ссылок на эту тему)

Если вы посмотрите фильм, вы заметите, что вся геометрия статична, и, хотя она детализирована, существует довольно много повторений объектов, которые могут указывать на экземпляры.

И, скорее всего, будет много агрессивного отбора, уровней детализации и разделения пространства.

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

Я хотел бы увидеть демонстрацию с анимированной геометрией и динамическим освещением.

  • Если это реально, почему никто еще даже не думал об этом до сих пор?

Если я полностью не ошибаюсь (и это будет не первый раз), мой первый ответ будет предполагать (возможно, очень умное) использование существующей технологии, возможно, оптимизированной и расширенной для создания этой демонстрации. Однако превращение его в настоящий игровой движок со всеми остальными задачами, помимо рендеринга статической геометрии, - это совершенно другая игра с мячом.

Конечно, все это чистые домыслы (что делает меня очень веселым). Все, что я говорю, это то, что это не обязательно подделка (на самом деле я не думаю, что это так, и все еще впечатлен), но, вероятно, не настолько революционно, как они это звучат.

Барт
источник
5

Эти атомы на самом деле не так волшебны / особенные / чужды текущему графическому оборудованию. Это просто вид облака точек или рендеринг на основе вокселей. Таким образом, вместо треугольников они отображают точки или прямоугольники, ничего невозможного с нынешним оборудованием.

Это было и уже сделано, и это не супер изобретение, но, возможно, они придумали более эффективный способ памяти и времени. Хотя это выглядит и звучит довольно интересно, вы должны взять это видео с частичкой соли. Рендеринг 100 000 точек вместо полностью текстурированного многоугольника (который уже занимает всего несколько пикселей на экране) не улучшает качество графики в 100 000 раз.

И, кстати, я слышал, что программное обеспечение id также пытается ускорить рендеринг вокселей с помощью GPU, но я больше доверяю Джону Кармаку, чем спикеру этого видео :)

Кристиан Рау
источник
2

Это была инвестиционная афера.

Что касается идеи, она неосуществима на текущем невыделенном оборудовании. Количество очков, которое вам нужно будет избегать, когда вы смотрите на что-то крупным планом, намного превышает количество баллов, которое вы можете получить в современной оперативной памяти. Даже если я не знаю каких-либо структур данных или алгоритмов поиска, которые позволили бы получить что-то близкое к производительности, показанной в демоверсии. И даже если бы можно было как-то искать эти точки в режиме реального времени, ошибки кеша и пропускная способность памяти гарантировали бы, что вы не сможете.

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

Hannesh
источник
2
"Это была инвестиционная афера" ... на чем вы основываете это? Особенно учитывая финансирование, приобретенное недавно, и видео, загружаемые сегодня?
Барт
1
Какие видео? Они не обновлялись более года.
Ханнеш
1
youtube.com/user/EuclideonOfficial, опубликованный ОП в комментариях.
Барт
1

Из того, что я видел, кажется, что они используют параметрические фигуры вместо простых многоугольников - другими словами, они изменяют геометрию в соответствии с требуемым разрешением.

Это можно сделать, используя такие методы, как геометрические шейдеры и шум Перлина.

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

Дэнни Варод
источник
0

Я думаю обо всех их утверждениях: сжатие памяти кажется преувеличением, я могу понять что-то вроде сжатия RLE, оказывающего большое влияние. В конце концов, я думаю, что у этой системы будет много «плюсов», но много «минусов», очень похоже на трассировку лучей или рендеринг изоповерхности с помощью движущихся кубов.

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

ninjacocoa
источник
-1

то, как это работает, намного проще, чем вы думаете, вместо предварительной загрузки, скажем, игрового уровня, он загружает только один экран, один или несколько атомов на пиксель на вашем экране, и ничего более, игра / движок затем предсказывает, что Следующие кадры, и это единственное, что загружается, отображается только часть видимого объекта, а не весь объект. ПРОГРАММА: как много определения и разрешения ваш монитор может обрабатывать, низкое использование памяти. CONS: скорость чтения с диска достаточно велика и может привести к низкой частоте кадров.

Marty
источник
кажется, это не дает ничего существенного по сравнению с замечаниями, сделанными и объясненными в предыдущих 7 ответах
комнат