Как стать автором
Обновить
0

CGI (графика) *

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

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

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

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


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

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

Содержание
Читать дальше →
Всего голосов 25: ↑23 и ↓2+21
Комментарии5

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

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

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


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

Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии50

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

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

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


image


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

Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии12

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

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

image
Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии3

Истории

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

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

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


Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии4

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

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

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

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

image

В общем случае, истинные смещения обеспечивают более чёткие результаты, но сильно увеличивают время рендеринга.
Всего голосов 19: ↑19 и ↓0+19
Комментарии4

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

Время на прочтение3 мин
Количество просмотров6.3K
Сегодня, когда всё популярнее становится трассировка лучей (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. Вот чертёж из статьи Пола:

Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии4

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

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


Читать дальше →
Всего голосов 1: ↑1 и ↓0+1
Комментарии3

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

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



Доброго времени суток, меня зовут Julia, и сегодня я расскажу вам о том, как объединить Texture Sets в Substance Painter и экспортировать один набор текстур.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии3

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

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

Пролог


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

showreel


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

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

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


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

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

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

OilRush

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

Sumoan

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


10 апреля 2020 вышла Community версия, которую можно, использовать если у вашей компании доход меньше 100к$ или для некоммерческого проекта.
Всего голосов 31: ↑28 и ↓3+25
Комментарии46

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

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

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

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


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

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

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



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

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

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

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


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

Всего голосов 7: ↑7 и ↓0+7
Комментарии3

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

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

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

Задача


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

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

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

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

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


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


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

Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии11

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

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

Всего голосов 20: ↑17 и ↓3+14
Комментарии2

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

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

Я уже представляю толпы людей, которые закидают меня тапками, ведь и так понятно “менеджер зло”, “убийца креатива” и вообще ненужное звено в процессе… Но это статья о том, как менялось мое воспринимание менеджерского состава на проекте, как я учился различать “свой-чужой” и главное, как я дорос до понимания роли Project manager.
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии0

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

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


Всего голосов 18: ↑17 и ↓1+16
Комментарии2

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

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


Всего голосов 17: ↑17 и ↓0+17
Комментарии17

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

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

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