На CBB – Telegram
На CBB
109 subscribers
98 photos
70 videos
5 files
181 links
Блог о развитии компьютерной графики.
Субъективные заметки, наблюдения, исследования.
Download Telegram
#houdini #materialx

Выше абстракции - проще использование?

ShadingLanguageX язык высокого уровня для написания комплексных шейдеров под MaterialX. Компилятор берет исходники написанные на языке и транслирует в формат .mtlx, а оттуда можно прямиком их переводить в Houdini нетворк.

SLX похож на другие Си-подобные языки, но более близок к GLSL, с функциями ориентированными на MaterialX. Поддерживает интересные вещи вроде: template func, auto types, inline func и другой, приятный синтаксический сахар.

Ключевые особенности:
- предоставляет пользователям более удобный способ написания шейдеров чем разработка шейдеров MaterialX на С++ или Python API.
- существующий код на GLSL может быть легко портирован на SLX
- шейдеры могут быть импортированы и настроены "на лету", разрешая переиспользование кода

Так же есть свой декомпилятор позволяющий преобразовать код из MaterialX в SLX. Из ограничений, не все возможно создать, что может MaterialX.

Github:
https://github.com/jakethorn/ShadingLanguageX
6
#houdini #pipeline

Ладно, а как вам идея, что работу со сторонними DCC приложениями в пайплайне можно представить как граф последовательных задач которые можно выполнять распределенно, переиспользовать этот граф и всё это с рендер-фермой, например Афоней?

Но где-то мы уже это видели или нет? Может Houdini TOP? LB?

Ребята из студии Rise предлагают такую идею с помощью своего легковесного фрэймворка Flowpipe.

Как это работает?

- Создаем граф с нодами
- Соединяем связями
- Граф и ноды сериализуем в централизованное хранилище такое как база данных (любую подходящую под ваши требования)
- Во время кукинга каждая нода по запросу запрашивает данные из хранилища (кэширование), апдейтит граф и возвращает нисходящим потоком данные обратно. Вкусно ли это звучит?
- И все это со своим кастомным экзекутором графа! *если кастомный экзекутором не назвать кастомным то ничего не получится
- Изи!

И да, студия Rise это те немногочисленные ценители Афони со скином Kitty.

Github:
https://github.com/PaulSchweizer/flowpipe
2
#houdini #vk

Кажется, что автор плагина "Моделер для Houdini" после релиза не собирается хвалить Vulkan за качество "продакшен риди" с такой заставкой 🙂

https://www.youtube.com/watch?v=ocL9YCw6tJU
😁2😱2👎1
#houdini #whatsnew

Breaking bad change. Часть 1.

Ну что, эйфория ещё не прошла от увиденного?

Давайте посмотрим на то, что не пишут в официальных релизах и What's New и то, что всегда остаётся на задворках исходных файлов, комментариев и логов.

О "ломающих изменениях" при переходе на новый билд.

- Самое значительное это конечно переход на Qt6 создающих проблему для студий использующих предыдущий фрэймворк, но не всё так плохо, H21 продолжает поддерживать Qt5 чтобы этот переход был мягче.

- Улучшена поддержка Launcher для дистрибутивов Linux, таких как Arch Linux, которые не имеют init.d каталогов. Линуксоиды будут довольны, что запуск и настройка служб теперь происходит автоматически при установке!

- Говорят, что документация теперь поддерживает Dark Theme избавляя от проблемы "Flash Light Page" при переходам по гиперссылкам, не знаю, не заметил, поскольку итак всегда использовал Dark Reader для браузера, но может вам это поможет.

- Сайды обещали, что старый дизайн Node Info лишь временная мера чтобы привыкнуть к новому, поэтому переменная окружения HOUDINI_USE_OLD_INFO_WINDOW начиная с H21 более не работает, внутренний код удалён. Но зато теперь есть возможность кастомизации этого окна под свои нужды.

- Удалена поддержка переменной окружения HOUDINI_NEW_HOTKEY_SYSTEM, как обещано в документах H20.5. В дальнейшем будет поддерживаться только новая система горячих клавиш.

- Починили Help Examples для внешней справки заданной через переменную HOUDINI_EXTERNAL_HELP_BROWSER, теперь это работает!

- Старый контекст Hide Other Objects был переименован в Hide Other Objects (Local Space) и добавлен новый контекст Hide Other Objects который скрывает другие объекты при сохранении в World Space. Это кстати решило известный баг когда находясь даже в SOP контексте мы видели геометрию с World Space.

- Pretty Print для матриц и словарей в GeometrySpeadsheet по атрибуту через меню Inspect или наведении курсора на атрибут, теперь это не одна большая строка.

- Возможно вы уже заметили, но автокомплит в текстовых полях VEX,Python,OpenCL и параметров работает теперь немного по-другому, это fuzzy поиск по шаблону в котором искомый и найденный шаблон не обязан соответствовать строго по префиксу. Один вариант опции доступен в Preferences/Scripting для изменения этого поведения.

- Функция atoi() в VEX не поддерживает больше экспоненциальную запись, но зато правильно работает с 64-битными числами.

- Удалены функции VEX osd_limitpartial{u,v}, так как функциональность теперь покрывается osd_limit-

Поля телеги слишком малы чтобы уместить всё, поэтому может вернусь ещё со второй частью...
👍133
#houdini #whatsnew

Breaking bad change. Часть 2.

- Была так же добавлена поддержка хоткеев для Display группы, таких как (Point Markers, Numbers, Normal, Boundaries, Materials и т.д.) Почти всё, что вы видели в панели вьюпорта справа, теперь хоткеи можно назначать и на эти параметры. На группу Tear Off, Fullscreen для окон которые можно было отрывать от основного вьюпорта и у Handle Size тоже теперь есть свои хоткеи чтобы не залезать в настройки всё время.

На мой вкус главная киллер-фича это возможность создавать Key Sequence для хоткеев, это когда вы нажимаете последовательно клавиши для включения какой-то функциональности, а не через одновременно нажатие нескольких клавиш. Очень удобно сделать себе какой-то <leader> key и сочетать его с другими клавишами, например сделать <Space>gn и включать отображение нумерации точек на гео и так же выключать, это прям Vim-like получается.

- Сделали более приятные, пастельные тона для параметров Animated Tuple Parms и для USDLocation

- Вау, можно теперь использую механизмы Гудини создавать свои файлы настроек используя методы: hou.createPreferenceRegistry(), hou.refreshPreferenceRegistry() и хранить, их в своём HOUDINI_USER_PREF_DIR, обновлять и загружать. Это может пригодится если вы не хотите придумывать свою систему записи, а так можно в Json можно даже сохраняться и читать при старте

- Новые PY-классы и энамы для работы с COPernicus:
hou.CopCableStructure, hou.CopNode, hou.CopVerb, hou.ImageLayer, hou.NanoVDB, hou.imageLayerBorder, hou.imageLayerProjection, hou.imageLayerStorageType, hou.imageLayerTypeInfo, hou.volumeStorageType, а так же добавили Python COP, это ж какую дичь ещё можно вытворять если туда ещё и код на питоне можно встраивать..

- Сделали человеческое описание класса hou.InterruptableOperation в документации позволяющее отменять по <Esc> операции во вложенных блоках и по таймингу

Более значительные вещи коснулись конечно APEX, Solaris, Karma, но это не то, что можно показывать с наскоку.
7
#cg #pbr #rendering

Я обожаю интерактивные учебники в вебе, объясняющие сложные концепции почти простыми словами (если бы хелп по Гудини был бы такой же), но обещаю, что математики немного.

В этой интерактивной статье рассмотрят физические явления, создающие свет, и фундаментальные законы регулирующие его взаимодействие с материей. Мы узнаем, как наши глаза ловят свет и как наш мозг интерпретирует его как визуальную информацию.
Затем мы будем моделировать приближения этих физических взаимодействий чтобы научиться лучше процесс создания физически корректных изображений различных материалов, что вы наверняка уже много раз слышали и читали, но здесь "Базовый Минимум".
Статья подкупает своей простотой и не перегружает читателя, кстати у автора есть другие статьи на тему объяснений рэймаршинга, кватернионов и т.д.

Автор пишет, что вдохновлялся другим блогером Bartosz Ciechanowski, его статьи просто доставляют эстетическое удовольствие при чтении. Категорически рекомендую.

https://imadr.me/pbr/
6
#meme

Пля, ну пацаны то куда..
😁4
#houdini #python #todayilearned

Обычно параметры нод вроде Operator List выглядят просто сплошным, сухим текстом среди остальных элементов интерфейса и кажется, что ничего нельзя с этим сделать когда мы создаём интерфейс ассета.
Но нет, мы можем всё таки немного декорировать интерфейс если вы предпочитаете больше визуального шума.

Поэтому перед именем метки элемента списка можно указать определённый префикс и Houdini по этому префиксу/каталогу будет добавлять ещё и иконку в элемент.

А где взять этот префикс?

Достаточно открыть локальный браузер, именно локальный и добавить эндпоинт на allicons, тогда откроется страница со всеми иконками и названиями, что-то типа такого:
http://127.0.0.1:41401/allicons

Кстати это можно также заскриптовать для динамического Python Menu который будет брать список значений и создавать новый массив элементов, например:

new_menu = []
for item in base_list:
label = '![SCENEGRAPH_primtype_'
label += item.lower()
label += f']{item}'


А что так можно было? Да, c H19
👍7🤯41🔥1
#blender #malware

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

У Блендера есть возможность блокировать автоматический запуск скриптов сцены просто выключив это в настройках Auto Run Python Scripts принуждая пользователя самому выбирать запускать ли сцену из достоверных источников или нет, а вот в Гудини например такой возможности нет, по крайней мере в настройках Warn Diaglogs нет ничего подобного.

Гудини так же позволяет встраивать в свои сцены питон-скрипты при запуске сцены, например сохраняя сцену вместе с содержимым Python Source Editor и потом открыв в другой сессии и тихо запускать их, пользователь даже может не заметит их присутствия, если они не делают что-то очень ресурсоёмкое.

Гудини хранит эти данные в определённой секции в самом hip-файле, это не сложно заметить если вы знаете где искать:
HouNC 1033600ba0068d36b740e36d4a36.hou.session import thisHouNC 1033600ba0068d36b7408029b1f6.OPlibraries HouNC 1033600ba2068d36b7406c0e60b2.OPpreferences HouNC 1033600bbd068d36b74093af9ae7expression.func # 0 bytes
Здесь после hou.session я просто импортирую модуль this который печатает основные принципы разработки на питоне.

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

Кстати, после этого появился как минимум один онлайн-сервис который проверяет блендер-сцены на зловред:
https://minimalefforttech.github.io/blend_file_checker

p.s: помню времена когда в одной Майской сцене нашли следы китайского малваря, антивирусы не помогли, сцена широко разошлась по некоторым студиям и потом писали скрипты уже вычищающее это, уже точно не помню, что он делал, но настройки Майки он отравлял.

Stay tuned!

https://80.lv/articles/warning-malware-discovered-in-blender-file-circulating-online
😱5👍2
😁10💯1
#houdini #equinox

Как сказали сайды на последнем выступлении Equinox, старый мем гулявший по инету 10-15 лет уже давно перестал быть правдой. Как можно заметить на графике в определённой момент времени даже Майку сложнее освоить..
Думайте.
😁5🤔2
#opencl #gpu

Сейчас в Питере идёт неплохой, очный курс по "GPU-архитектуре и вычислениям на видеокарте".

Подойдёт тем кто хочет разобраться с синтаксисом и архитектурой GPU-кода (CUDA, OpenCL, Vulkan) или углубить свои знания в этой теме, а так же сформировать мышление в парадигме массового параллелизма для прикладных задач.

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

https://csspace.io/course/2025fall-gpu
🔥8