Обновить
19.52

CGI (графика) *

Изображения, сгенерированные компьютером

Сначала показывать
Порог рейтинга
Уровень сложности

Vulkan. Руководство разработчика. Window surface

Время на прочтение6 мин
Охват и читатели9.4K


Я из IT-компании CGTribe и здесь я перевожу руководство к Vulkan API. Ссылка на оригинал — vulkan-tutorial.com.

Моя следующая публикация посвящена переводу главы Window surface из раздела Drawing a triangle, подраздела Presentation.

Содержание
Читать дальше →

Vulkan. Руководство разработчика. Устройства и очереди

Время на прочтение11 мин
Охват и читатели12K


Я переводчик из ижевской компании CG Tribe, и я продолжаю выкладывать перевод руководства к Vulkan API. Ссылка на источник — vulkan-tutorial.com.

В этой публикации представлен перевод последних двух глав раздела Drawing a triangle, подраздела Setup, которые называются Physical devices and queue families и Logical device and queues.

Содержание
Читать дальше →

Поговорим про градиенты в Unity

Время на прочтение6 мин
Охват и читатели19K

Всём привет. Меня зовут Григорий Дядиченко. Я в Unity разработке около 7 лет, и за это время повидал многое. Одна из основных проблем, которая встречается, когда забираешь у неопытных ребят проект - градиенты в интерфейсах. В целом ошибки в разработке интерфейсов не редкость. Вроде того же неумения пользоваться найн слайсом, атласами, понимания батчинга. Но градиенты стоят немного особняком, так как они либо раздувают вес билда до невообразимых размеров, либо рисуются в интерфейсе со стрёмными артефактами компрессии. Давайте обсудим почему так происходит, и что с этим можно сделать, как вариант решения. Кому данная тема интересна - добро пожаловать под кат.

Читать далее

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

Время на прочтение9 мин
Охват и читатели2.6K

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

Однако при реализации этой вроде бы типовой задачи возникли проблемы, связанные с наличием некоторых ограничений:

Во-первых, компьютеры, используемые экипажем МКС в повседневной деятельности – это закупаемые в централизованном порядке ноутбуки, которые уже проверены в эксплуатации в течение нескольких лет (т.е. не самой последней модели) и имеют довольно средние по современным меркам видеокарты и, главное, не очень большие объемы памяти.

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

В-третьих, МКС движется с 1-ой космической скоростью, совершая оборот вокруг Земли примерно за 92 минуты, т.е. смена неповторяющихся изображений земной поверхности на экране в реальном времени должна идти достаточно быстро.

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

При этом, например, если максимальный размер текстуры, которую можно загрузить в видеопамять составляет 2048х2048, то, даже не самая большая из карт, например, карта «ночной» Земли, доступная на сайте НАСА [1], при довольно грубом разрешении около 0.75 км/пиксель уже имеет размер 54000х27000 пикселей. Таким образом, чтобы загружать такую карту как текстуру, ее нужно было бы разбить как минимум на 342 фрагмента.

Читать далее

Vulkan. Руководство разработчика. Слои валидации

Время на прочтение12 мин
Охват и читатели12K


Я переводчик из компании CG Tribe в Ижевске, и здесь я делюсь переводом руководства к Vulkan API. Ссылка на источник — vulkan-tutorial.com.

Эта публикация является продолжением предыдущей публикации "Vulkan. Руководство разработчика. Рисуем треугольник", она посвящена переводу главы Validation layers.

Содержание
Читать дальше →

Рендеринг кадра Cyberpunk 2077

Время на прочтение13 мин
Охват и читатели15K

Введение


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

Во-вторых, когда мы начинаем играть в любую игру, мы не можем удержаться от того, чтобы выполнить реверс-инжиниринг её технологий рендеринга (что особенно бесит в многопользовательских играх — да хватит в меня стрелять, я сюда пришёл, чтобы просто посмотреть, как камни отбрасывают тени!).

Поэтому когда я купил Cyberpunk 2077, мне обязательно нужно было посмотреть, как он рендерит кадр. Выполнять захваты этой игры через RenderDoc очень легко, так что у меня не было отговорок.

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

Vulkan. Руководство разработчика. Рисуем треугольник

Время на прочтение9 мин
Охват и читатели24K


Я переводчик в компании CG Tribe в Ижевске, и я продолжаю выкладывать перевод руководства к Vulkan API. Ссылка на источник — vulkan-tutorial.com.

Эта публикация посвящена переводу раздела Drawing a triangle, а именно подразделу Setup, главам Base code и Instance.

Содержание
Читать дальше →

Молекулярная биология и Houdini летом двадцатого

Время на прочтение9 мин
Охват и читатели5.9K

Вот что получилось. А ниже история движения из точки А в точку B.

Ссылка на проект

1.


Я учился в школе. И учебники по биологии, физике, химии отличались вялостью картинок. Если фотка, то чёрно-белая, обилие схем и текста. Сочного, красивого текста, рассказывающего, как выглядит вирус или ДНК.

Ну, это, приблизительно, как выбирать обувь, мороженое или автомобиль артикуляцией и обилием слов.

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

Vulkan. Руководство разработчика. Настройка окружения

Время на прочтение12 мин
Охват и читатели65K


Я переводчик ижевской компании CG Tribe и здесь я буду публиковать перевод руководства к Vulkan API. Ссылка на источник — vulkan-tutorial.com. Это моя вторая публикация, которая посвящена переводу раздела Development Environment.

Содержание
Читать дальше →

Vulkan. Руководство разработчика. Краткий обзор

Время на прочтение10 мин
Охват и читатели44K


Я работаю техническим переводчиком ижевской IT-компании CG Tribe, которая предложила мне внести свой вклад в сообщество и начать публиковать переводы интересных статей и руководств.

Здесь я буду публиковать перевод руководства к Vulkan API. Ссылка на источник — vulkan-tutorial.com. Поскольку переводом этого же руководства занимается еще один пользователь Хабра — kiwhy, мы договорились разделить уроки между собой. В своих публикациях я буду давать ссылки на главы, переведенные kiwhy.

Содержание
Читать дальше →

Vulkan-tutorial. Урок 1.1 — Вступление

Время на прочтение5 мин
Охват и читатели64K

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


Автор оригинала дал свое согласие на перевод. Также, когда я доперевожу все статьи и у меня будет время отформатировать их для github, он добавит русский перевод на свой сайт.

Читать дальше →

Оптимизация 3D-графики под WebGL (опыт PLANT-SIM)

Время на прочтение8 мин
Охват и читатели9.6K

В этой статье речь пойдет об оптимизации Unity-сцены проекта Plantsim 1.0.: о визуальной части цифровой копии предприятия Tennessee Eastman Process, реализованного на Unity 2017.1.1f1.


image


Заметка от партнера IT-центра МАИ и организатора магистерской программы “VR/AR & AI” — компании PHYGITALISM.

Читать дальше →

Sparse residency текстуры в Vulkan

Время на прочтение12 мин
Охват и читатели5.1K
Текстуры делают компьютерную графику насыщенной. Размер текстур имеет значение, маленькие текстуры при сильном приближении дают картинку с огромными пикселями, или мылом. Про то, как же рисовать огроменные текстуры и будет эта статья.

image
Читать дальше →

Ближайшие события

Освещение в VFX и видеоиграх: сравнение подходов к рендерингу

Время на прочтение4 мин
Охват и читатели6.6K
Сяоя Чжао — художница по спецэффектам, успевшая поработать как в кинопроизводстве, так и в игровой разработке (Halo Infinite), и над созданием рекламных кампаний для таких брендов, как Audi, Nike и PlayStation.

На днях она сравнила процессы работы над освещением в крупных игровых проектах и в спецэффектах для рекламных роликов. О различиях в графических пайплайнах двух индустрий — читайте дальше.


Читать дальше →

Разница между фальшивыми и истинными смещениями в 3D-графике

Время на прочтение12 мин
Охват и читатели24K
image

Bump maps (рельефные текстуры), Normal maps (карты нормалей), Displacement и Vector Displacement — вероятно, вы уже сталкивались хотя бы с одним из этих терминов. Несмотря на то, что о них уже есть много информации, похоже, многие путают их различия и последствия использования разных типов карт. В статье я расскажу о том, какие проблемы могут вызывать эти карты.

Все четыре типа текстур имеют одинаковое предназначение — они позволяют добавить на поверхность модели дополнительные детали, используя для этого разные способы. Эти способы можно разделить на две категории, которые я буду называть истинными смещениями (True Displacements) и фальшивыми смещениями (Fake Displacements). Истинные смещения перемещают вершины, а фальшивые стремятся достичь того же внешнего вида без изменения геометрии. Пока я сосредоточусь только на различиях между двумя категориями, а не буду анализировать каждую карту по отдельности.

image

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

Почему центр пикселя должен быть в (0,5; 0,5)

Время на прочтение3 мин
Охват и читатели6.7K
Сегодня, когда всё популярнее становится трассировка лучей (ray tracing) выполняемая из «глаза» камеры, этот урок нужно усвоить заново: код становится лучше, а жизнь — проще, если центр пикселя находится в координате (0,5; 0.5). Если вы уверены, что делаете всё правильно, то продолжайте в том же духе, для вас в статье нет ничего нового. Прочитайте лучше вот это.

Смысл размещения центра пикселя в (0,5; 0,5) впервые объяснила (по крайней мере, мне) милая короткая статья Пола Хекберта «Что такое координаты пикселя?» из книги 1990 года Graphics Gems, стр. 246-248.

Сегодня эту статью найти трудновато, поэтому вкратце изложу её суть. Допустим, у нас есть экран с шириной и высотой 1000. Давайте рассмотрим только ось X. Может возникнуть искушение назначить 0,0 центром самого левого пикселя в строке, 1,0 — центром следующего, и так далее. Можно даже использовать округление, при котором координаты с плавающей запятой 73,6 и 74,4 переносятся в центр 74,0.

Однако над этим стоит поразмыслить. При таком сопоставлении левый край будет находиться в координате -0,5, а правый — в 999,5. С такой системой неудобно работать. Хуже того, если к значениям координат пикселей применяются различные операторы наподобие abs() или mod(), то такое сопоставление может привести к незначительным погрешностям на краях.

Проще работать с интервалом от 0,0 до 1000,0, в котором центр каждого пикселя имеет дробную часть 0,5. Например, тогда целочисленный пиксель 43 будет иметь красивый интервал значений значений входящих в него субпикселей от 43,0 до 43,99999. Вот чертёж из статьи Пола:

Читать дальше →

ORM textures, а стоит ли оно того?

Время на прочтение3 мин
Охват и читатели21K
Недавно я читала статью и увидела описание процесса создания интересной текстурной карты, о которой пойдет речь далее…


Читать дальше →

Merge texture sets, или как делать один набор текстур в Substance Painter

Время на прочтение3 мин
Охват и читатели27K
Merge Texture Set быстро и без лишних усилий…



Доброго времени суток, меня зовут Julia, и сегодня я расскажу вам о том, как объединить Texture Sets в Substance Painter и экспортировать один набор текстур.
Читать дальше →

Unigine Engine — новый уникальный

Время на прочтение4 мин
Охват и читатели23K

Пролог


Не так давно я увидел showreel движка, который выглядит более чем конкурентно

showreel


В этой статье я максимально кратко расскажу об этом движке и косвенно сравню с прямыми конкурентами.

зарегестрироваться и скачать тут

Немного про историю


Все началось в 2004(!) году с Александра Запрягаева и его opensource проекта.

В 2010 году вышел Heaven Benchmark на основе Unigine.

В 2012 вышла спорная с точки зрения геймплея, но симпатичная OilRush.

OilRush

В 2017 вышла забавная индюшка

Sumoan

Текущее состояние


10 апреля 2020 вышла Community версия, которую можно, использовать если у вашей компании доход меньше 100к$ или для некоммерческого проекта.

OpenGL примитивы в стиле RAII

Время на прочтение4 мин
Охват и читатели4.3K
Добрый день, хабра юзеры. Я давно не писал и возможно кто-то заждался статей от меня — конечно же нет. Так как свободного времени стало чутка поболее, а мой GitHub совершенно пуст, я решил написать свой клон Mein kampf Minecraft. С большой вероятностью, я задокументирую это — следите за моими статьями на habr.com. Сегодня покажу как я обернул OpenGL примитивы в RAII стиле, если интересно — под кат.
Читать дальше →