Рубрика «трёхмерная графика»

image

Небольшой рассказ о том, как впихнуть невпихуемое и отобразить в реальном времени трехмерную графику при помощи контроллера, у которого недостаточно ни скорости, ни памяти для этого.
Читать полностью »

image

Этот туториал посвящён интерактивным картам и их созданию в Unity при помощи шейдеров.

Этот эффект может служить основой более сложных техник, например голографических проекций или даже песочного стола из фильма «Чёрная пантера».

Источником вдохновения для этого туториала стал опубликованный Baran Kahyaoglu твит, демонстрирующий пример того, что он создаёт для Mapbox.
Читать полностью »

Новый алгоритм трассировки пути для оптимизации работы GPU: Wavefront Path Tracing - 1

В этой статье мы исследуем важную концепцию, используемую в недавно выпущенной платформе Lighthouse 2. Wavefront path tracing, как её называют Лейн, Каррас и Аила из NVIDIA, или streaming path tracing, как она изначально называлась в магистерской диссертации ван Антверпена, играет важнейшую роль в разработке эффективных трассировщиков пути на GPU, а потенциально и трассировщиков пути на CPU. Однако она довольно контринтуитивна, поэтому для её понимания необходимо переосмыслить алгоритмы трассировки лучей.
Читать полностью »

Как происходит рендеринг кадра A Plague Tale: Innocence - 1

Предисловие

Как и в других моих исследованиях, давайте начнём с введения. Сегодня мы рассмотрим последнюю игру французского разработчика Asobo Studio. Впервые я увидел видео этой игры в прошлом году, когда коллега поделился со мной 16-минутным геймплейным трейлером. Моё внимание привлекла механика «крысы против света», но мне не особо захотелось играть в эту игру. Однако после её выхода многие стали говорить, что она выглядит так, как будто сделана на движке Unreal, но это не так. Мне стало любопытно увидеть, как работает рендеринг и насколько вообще разработчики вдохновлялись Unreal. Ещё меня заинтересовал процесс рендеринга стаи крыс, потому то в игре она выглядела очень убедительно и к тому же является одним из ключевых элементов геймплея.

Когда я начал попытки выполнить захват игры, то подумал, что придётся сдаться, потому что ничего не срабатывало. Хотя игра использует DX11, который сейчас поддерживают практически все инструменты анализа, мне не удалось заставить работать ни один из них. Когда я пытался использовать RenderDoc, игра вылетала при запуске, и то же самое происходило с PIX. Я по-прежнему не знаю, почему так происходит, но к счастью, мне удалось выполнить несколько захватов с помощью NSight Graphics. Как обычно, я поднял все параметры до максимальных и начал искать подходящие для анализа кадры.
Читать полностью »

В этом посте я расскажу об истории текстурирования в трёхмерных видеоиграх. С момента первого появления 3D реального времени на домашних консолях мы прошли долгий путь, но и сегодня при создании игровых текстур применяются некоторые практики, уходящие корнями в те ранние годы.

image

Для начала давайте немного поговорим об основах — о различиях рендеринга в реальном времени (real time rendering) от пререндеренных (pre-rendered) сцен. Рендеринг в реальном времени используется в большинстве 3D-игр. Машина в этом случае отрисовывает изображение в реальном времени. Для создания одного кадра пререндеренной сцены требуется большие вычислительные мощности.
Читать полностью »

image

Ветеран программирования трёхмерной графики Майкл Абраш на примере разработки первого Quake рассказывает о необходимости творческого мышления в программировании.

Много лет назад я работал в теперь уже не существующей компании-производителе видеоадаптеров Video Seven. Там я помогал в разработке клона VGA. Мой коллега Том Уилсон, долгие месяцы круглосуточно работавший над разработкой VGA-чипа Video Seven, стремился сделать VGA как можно более быстрым, и был уверен, что его производительность оптимизирована почти по максимуму. Однако когда Том уже вносил в конструкцию чипа последние штрихи, до нас донеслись слухи, что наш конкурент Paradise достиг ещё большей производительности в своём разрабатываемом клоне, добавив в него FIFO.

На этом слухи заканчивались — мы не знали, ни что это за FIFO, ни насколько он помог, ничего другого. Тем не менее, Том, обычно приветливый и расслабленный человек, превратился в активного, одержимого фанатика со слишком большим процентом кофеина в крови. Исходя из этих крупиц информации, он пытался выяснить, что же удалось сделать Paradise. В конце концов он пришёл к выводу, что Paradise вероятно вставил FIFO-буфер записи между системной шиной и VGA, чтобы когда ЦП выполнял запись в видеопамять, записываемые данные сразу же попадали в FIFO, и это позволяло ЦП продолжать обработку, а не простаивать каждый раз, когда он выполнял запись в память дисплея.

У Тома не было ни логических элементов, ни достаточно времени на реализацию полного FIFO, но ему удалось реализовать FIFO глубиной в одну операцию, что позволяло процессору обгонять VGA-чип на одну операцию записи. Том не был уверен, что это даст хорошие результаты, но это было единственное, что он смог сделать, поэтому он реализовал эту систему и передал чип в производство.
Читать полностью »

image

Для записи трёхмерных поворотов программисты графики используют кватернионы. Однако в кватернионах сложно разобраться, потому что изучают их поверхностно. Мы просто принимаем на веру странные таблицы умножения и другие загадочные определения, и используем их как «чёрные ящики», поворачивающие векторы так, как нам нужно. Почему $mathbf{i}^2=mathbf{j}^2=mathbf{k}^2=-1$ и $mathbf{i} mathbf{j}=mathbf{k}$? Почему мы берём вектор и превращаем его в «мнимый» вектор, чтобы преобразовать его, например $mathbf{q} (xmathbf{i} + ymathbf{j} + z mathbf{k}) mathbf{q}^{*}$? Да кому это интересно, если всё работает, правда?

Существует способ описания поворотов под названием ротор, который относится к области и комплексных чисел (в 2D), и кватернионов (в 3D), и даже обобщается до любого количества измерений.

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

Кроме того, для визуализации и понимания трёхмерных роторов не нужно использовать четвёртое пространственное измерение.

Было бы здорово, если бы начали вытеснять использование и изучение кватернионов, заменяя их роторами. Заменить их очень просто, а код останется почти таким же. Всё, что можно делать с кватернионами, например, интерполяцию и устранение блокировки осей (Gimbal lock), можно сделать и с роторами. Но понимать мы начинаем гораздо больше.
Читать полностью »

Потрясающий 3D-художник Луана Буэно (Luana Bueno) подробно рассказала о создании своей низкополигональной фан-версии Элой из Horizon Zero Dawn.

Стилизация 3D-персонажа: модель, текстура, детали - 1

Введение

Меня зовут Луана, я художник 3D-персонажей из Сан-Паулу. Я переехала сюда шесть лет назад, потому что выиграла обучение геймдизайну в колледже Anhembi Morumbi.

Впервые я встретилась с 3D в колледже, но в то время я уже занималась концепциями и иллюстрациями в своей группе, тогда у меня не было возможности глубоко изучить эту область.

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

Долгое время я работала в рекламе, а по вечерам изучала 3D. После этого я работала какое-то время моделлером для VR-игры RoVr.

Сейчас я занимаюсь фрилансом и работаю над своим портфолио.

Могу с уверенностью сказать, что изучать 3D приятнее, когда у тебя есть компания друзей, которая может помочь и сделать путешествие интереснее. Они как зелья маны, восстанавливающие мою энергию, когда я преодолеваю каждое препятствие.

Продакшен

Я начала проект со сбора множества референсов: самой Элой, актрис или моделей, которые, как я считала, помогут мне набросать отдельные части лица Элой или создать текстуру. Об этом важно было сказать, потому что я вижу, что многие люди начинают проект, не пользуясь референсами. Могу с уверенностью сказать, что если собрать хорошие референсы, то вероятность успеха проекта становится на 50% выше.
Читать полностью »

Создание графических ресурсов: рекомендации

Как создавать графику для VR — рекомендации Google - 1

Как художник VR и AR, я заметил две тенденции. Во-первых, постоянно появляются новые инструменты и практики, которые позволяют повысить качество наших работ. Но в то же время возвращаются техники и навыки конца 90-х и начала 2000-х. Они полностью применимы к виртуальной реальности, потому что вычислительные ресурсы в VR ограничены. И если вы только начинаете свой путь, то вам стоит рассмотреть разнообразные подходы. Итак, если вы художник и недавно занялись VR, то вот некоторые из моих самых любимых советов по созданию качественных графических ресурсов.
Читать полностью »

Снимаем «4D видео» с помощью depth-сенсора и триангуляции Делоне - 1

Привет! Это заметка о небольшом хобби-проекте, которым я занимался в свободное время. Я расскажу, как с помощью несложных алгоритмов превращать карты глубины от depth-сенсоров в забавный вид контента — динамические 3D сцены (их ещё называют 4D video, volumetric capture или free-viewpoint video). Моя любимая часть в этой работе — алгоритм триангуляции Делоне, который позволяет превращать разреженные облака точек в плотную полигональную сетку. Приглашаю всех, кому интересно почитать про алгоритмы, самописные велосипеды на C++11, и, конечно же, посмотреть на трёхмерных котиков.

Для затравки: вот что получается при использовании RealSense R200: skfb.ly/6snzt (подождите несколько секунд для загрузки текстур, а затем используйте мышку, чтобы поворачивать сцену). Под катом есть ещё!
Обладатели лимитированных тарифов, будьте осторожны. В статье много разных изображений и иллюстраций.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js