Как стать автором
Поиск
Написать публикацию
Обновить
5.25

CGI (графика) *

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

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

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

Время на прочтение8 мин
Количество просмотров8K

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


image


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

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

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

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

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

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

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

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


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

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

Время на прочтение12 мин
Количество просмотров22K
image

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

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

image

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

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

Время на прочтение3 мин
Количество просмотров6.5K
Сегодня, когда всё популярнее становится трассировка лучей (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 мин
Количество просмотров17K
Недавно я читала статью и увидела описание процесса создания интересной текстурной карты, о которой пойдет речь далее…


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

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

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



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

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

Время на прочтение4 мин
Количество просмотров22K

Пролог


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

showreel


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

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

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


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

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

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

OilRush

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

Sumoan

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


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

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

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

Ray Casting Visual Search (RCVS). Простой и быстрый алгоритм поиска схожих по геометрии 3D моделей

Время на прочтение8 мин
Количество просмотров5.4K


Для меня эти две модели очень похожи, однако у них нет очевидных характеристик, по которым можно было бы измерить их сходство. У этих моделей разное количество вершин, рёбер и полигонов, они разного размера, к тому же по-разному повёрнуты в пространстве, и у обеих одинаковые трансформации (Положение = [0,0,0], Вращение в радианах = [0,0,0], Масштаб = [1,1,1]). Как определить их подобие?

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

Время на прочтение6 мин
Количество просмотров14K
Привет, Хабр! Представляю вашему вниманию перевод статьи «5 Reasons Motion Graphics Help You Connect With People» автора Katy French.



Оригинал статьи: Katy French | Перевод статьи сделал моушн дизайнер Игорь Царёв

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

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

Хорошо, но что такое моушн дизайн?


Касательного этого формата может возникнуть некоторая путаница. Это что, видео? Это что, мультики? В основном, моушн дизайн – это термин нашей индустрии для анимированного видео. Это могут быть 2D-анимации, 3D-рендеринги или GIF-файлы.

Вывод внутриигровых сообщений с помощью Particle System

Время на прочтение8 мин
Количество просмотров9K
image

Задача


При разработке нашей игры The Unliving, мы поставили перед собой задачу по отображению различных сообщений, таких, как нанесенный урон, нехватка здоровья или энергии, величина награды, количество восстановленных очков здоровья и т.д., с помощью Particle System. Это было решено сделать для того, чтобы получить больше возможностей для кастомизации эффектов появления и дальнейшего поведения таких сообщений, что проблематично при использовании стандартных элементов UI-системы Unity.

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

Панель корреляции на QtQML/Quick

Время на прочтение5 мин
Количество просмотров4.6K

Всем привет! Я — тимлид команды по разработке десктопных приложений в компании Роджии Европа. Мы разрабатываем программные решения для нефтегазовой отрасли.


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


Обходя вопросы наследия кодовой базы — о нём я упомяну в статье — был один фундаментальный вопрос — с помощью какой технологии делать? Однозначно нам был нужен OpenGL — который уже применяется в MapView и 3d view на базе OpenSceneGraph — но очевидно, что не голый, и с элементами графического интерфейса. OSG отвалился =(. Технологию, удовлетворяющую двум требованиям — граф сцены и GUI на OpenGL — я знал только одну — Qt QML/Quick. О том, что же у нас получилось и чем нам есть поделиться — внутри.

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

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

Мохнатики захватывают рынок игровой индустрии! Peregrine Labs объявили о коллаборации с Epic Games

Время на прочтение4 мин
Количество просмотров6.5K
Не одними волосами едины. Теперь перьевые персонажи доступны не только в синематеках! Да-да, не плашки, а натуральные динамические перья! 26 ноября 2019 года на официальном сайте Peregrine Labs объявили о том, что их продукт, плагин Yeti версии 3.5.4, состоит в официальных “отношениях” с Unreal Engine версии 4.24.

Project manager — миф или реальность? Или зачем он нужен в сфере визуальных эффектов?

Время на прочтение13 мин
Количество просмотров5.6K
Я очень долго думал, нужно ли писать статью на столь банальную тему. Но так сложилось в жизни, что за очень короткое время мне попадалось быть участником настоящих холи варов на эту тему. Как я понимаю тема больная, по большой части из-за горького опыта работы с псевдо “специалистами” и глобального непонимания комьюнити роли ПМа на проекте.

Я уже представляю толпы людей, которые закидают меня тапками, ведь и так понятно “менеджер зло”, “убийца креатива” и вообще ненужное звено в процессе… Но это статья о том, как менялось мое воспринимание менеджерского состава на проекте, как я учился различать “свой-чужой” и главное, как я дорос до понимания роли Project manager.
Читать дальше →

Shader — это не магия. Написание шейдеров в Unity. Вертексные шейдеры

Время на прочтение8 мин
Количество просмотров16K
Всем привет! Меня зовут Дядиченко Григорий, и я основатель и CTO студии Foxsys. Сегодня мы поговорим про вершинные шейдеры. В статье будет разбираться практика с точки зрения Unity, очень простые примеры, а также приведено множество ссылок для изучения информации про шейдеры в Unity. Если вы разбираетесь в написании шейдеров, то вы не найдёте для себя ничего нового. Всем же кто хочет начать писать шейдеры в Unity, добро пожаловать под кат.


Shader — это не магия. Написание шейдеров в Unity. Введение

Время на прочтение5 мин
Количество просмотров43K
Всем привет! Меня зовут Дядиченко Григорий, и я основатель и CTO студии Foxsys. Сегодня хочется поговорить про шейдеры. Умение писать шейдеры (и в целом работать с рендером) очень важно при разработке под мобильные платформы или AR/VR, если хочется добиться крутой графики. Многие разработчики считают, что шейдеры — это магия. Что по ним мало хорошей информации, и что чтобы их писать нужно иметь, как мимимум, звание кандидата наук. Да, разработка шейдеров по своим принципам сильно отличается от клиентской разработки. Но основное понимать базовые принципы работы шейдеров, а так же знать их суть, чтобы в этом не было ничего магического и поиск информации по этой теме был простой задачей. Данная серия статей рассчитана на новичков, так что если вы разбираетесь в программировании шейдеров, данная серия вам не будет интересна. Всем же кто хочет разобраться в этой теме — добро пожаловать под кат!


Прикладные технологии на руинах блокчейн-лихорадки или о практической пользе распределения ресурсов

Время на прочтение6 мин
Количество просмотров3.1K
В последние годы новостные ленты наводнили сообщения о появляющихся буквально из ниоткуда распределенных вычислительных сетях нового типа, решающих (точнее, пытающихся решить) самые разнообразные задачи — сделать город умным, спасти мир от нарушителей авторских прав или наоборот, тайно передать информацию или ресурсы, сбежать из-под контроля государства в той или иной сфере. Вне зависимости от сферы, все они обладают рядом общих черт, обусловленных тем, что топливом для их роста явились алгоритмы и методики, вышедшие в широкие массы во время недавнего бума криптовалют и связанных с ними технологий. Наверное, каждая третья статья на профильных ресурсах в то время в названии имела слово “блокчейн” — обсуждение новых программных решений и экономических моделей некоторое время стало доминирующим трендом, на фоне которого иные сферы применения систем распределенных вычислений были отодвинуты на второй план.

В то же время визионеры и профессионалы увидели основную суть явления: массовые распределенные вычисления, связанные с построением сетей из большого числа разрозненных и разнородных участников, вышли на новый уровень развития. Достаточно выбросить из головы хайповые темы и взглянуть на предмет с другой стороны: все эти сети, собранные из огромных пулов, в которых состоят тысячи обособленных разнородных участников, появились не сами по себе. Энтузиасты крипто-движения смогли разрешить в новом ключе сложные проблемы синхронизации данных и распределения ресурсов и задач, что и позволило собрать воедино подобную массу оборудования и создать новую экосистему, предназначенную для решения одной узконаправленной задачи.
Читать дальше →

Autodesk Maya: полезные базовые функции для работы с 3Д моделями и их тестирования

Время на прочтение10 мин
Количество просмотров96K

Недавно я столкнулся лицом к лицу с таким зверем как Autodesk Maya. За плечами у меня не было опыта в работе с 3Д моделированием и пришлось в экстренном порядке прокачиваться, начиная с основ, а также ознакомится с функциональностью данного ПО, чтобы проверить работу плагина (QA), который экспортил всё содержимое сцены в определенный формат. Эта статья рассчитана на людей без опыта либо с минимальным в Autodesk Maya и призвана познакомить вас с полезными функциями и редакторах, которые можно в ней найти. Если же вы не нашли функцию/редактор, который считаете полезным, то либо я с ним еще не работал, либо он не пригодился для моих нужд. Расскажите о них и о реальных случаях их применения в комментариях :-)


Статья разделена на секции, каждая из которых относится к одному из аспектов 3Д модели:


  1. Общие инструменты
  2. Работа с геометрией (полигональной сеткой)
  3. Работа с текстурами
  4. Работа с анимацией
  5. Shelf Editor, Shelves и немного о MEL (Maya Embedded Language)

image

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

Суперсовременный OpenGL. Часть 2

Время на прочтение7 мин
Количество просмотров20K


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

Возможно повезет и я смогу весь оставшийся материал впихнуть в эту статью, это не точно…
Читать дальше →