#houdini #github #lpe #lighting #render
Архивные проекты, но актуальные и на сегодняшний день. Эту книгу рецептов я создавал достаточно давно состоящую из
Это была неплохая тренировка чтобы разобраться с тем как работают шаблонные, подстановочные выражения. С помощью
Сами выражения
https://github.com/alexwheezy/Mantra-LPE-Cookbook
Архивные проекты, но актуальные и на сегодняшний день. Эту книгу рецептов я создавал достаточно давно состоящую из
LPE рецептов для выведения своих AOV пассов для рендера Мантры. LPE у каждого рендера свой и как правило он не полностью совместим с другим рендером, во многом вы найдёте сходство, но не сможете использовать в другом рендере поскольку он банально может не поддерживать тот набор выражений который вы хотите использовать.Это была неплохая тренировка чтобы разобраться с тем как работают шаблонные, подстановочные выражения. С помощью
LPE невозможно покрыть все кейсы для AOV, но для очень многих тем не менее можно получить ту самую "хитрую" маску для композа, например получить глубину индиректных "отскоков" от поверхности материала, или убрать из пасса какой-то источник освещения который не хотелось бы, чтобы он был в этом пассе.Сами выражения
LPE Мантры совместимы с Кармой поэтому это будет вполне работать и для неё, но с той небольшой разницей, что теперь LPE поддерживает и вывод B - Background (only supported in Karma and not in Mantra). Этот кейс тут не покрыт, но вы сможете разобраться самостоятельно.https://github.com/alexwheezy/Mantra-LPE-Cookbook
GitHub
GitHub - alexwheezy/Mantra-LPE-Cookbook: Contains recipes for making commonly used render passes using LPE.
Contains recipes for making commonly used render passes using LPE. - alexwheezy/Mantra-LPE-Cookbook
#houdini #github #gaea #hda #assets
Открыто бета-тестирование
Судя по демонстрациям которые я видел это ещё одна прослойка для создания такой сущности как
https://github.com/QuadSpinner/Gaea2Houdini_beta
Открыто бета-тестирование
Gaea 2.0 с интеграцией в H20. Что такое Gaea 2.0?Gaea 2.0 - это следующая крупная версия индустриального инструмента для проектирования и создания поверхности земли от QuadSpinner.Судя по демонстрациям которые я видел это ещё одна прослойка для создания такой сущности как
HeightField. Инструмент расширяет стандартные SOP операторы для работы с поверхностями элегантно встраиваясь в текущий нетворк. Обещается значительный прирост производительности по сравнению с Gaea 1.0 за счёт использования GPU и переработанных алгоритмов для CPU. Значит изрядная доля кода использует OpenCL, что очень хорошо конечно.https://github.com/QuadSpinner/Gaea2Houdini_beta
GitHub
GitHub - QuadSpinner/Gaea2Houdini_beta
Contribute to QuadSpinner/Gaea2Houdini_beta development by creating an account on GitHub.
#houdini #github #vex #opencl #parser #rnd
Это замена vexpressionmenu.py из
Что это такое в самом простом понимании?
Для примера возьмём такой код:
Здесь после комментариев можно задать спецификацию создания параметров не изменяя их вручную в
https://github.com/toby5001/ADL-Parameter-Parser
ADL Parameter ParserЭто замена vexpressionmenu.py из
Houdini, которая добавляет поддержку простой (и сложной!) спецификации параметров в строке (подобно OSL). Скрипт совместим с VEX и OpenCL благодаря переопределению внутренней функции, используемой для заполнения параметров фрагмента кода. Поскольку эта функция заменяет основную функцию в Houdini, одним из главных приоритетов этого проекта было обеспечение того, чтобы поведение по умолчанию оставалось нетронутым.Что это такое в самом простом понимании?
Для примера возьмём такой код:
v@P += chv('offset1'); // adlParm[[ default=2 ]]
v@P += chv('offset2'); // adlParm[[ default=(1,2,3) ]]
v@P.y += chf('offset2'); // adlParm[[ default=1.5, min=-2, max=2, minlock=1 ]]Здесь после комментариев можно задать спецификацию создания параметров не изменяя их вручную в
Edit Properties после создания параметров. Мы можем сразу создать нужные дефолты, баунды или вообще заблочить параметры. Полный список спецификации есть на гитхабе плагина. Помойму вещь довольно любопытная.https://github.com/toby5001/ADL-Parameter-Parser
GitHub
GitHub - toby5001/ADL-Parameter-Parser: Expanded featureset for Houdini's vexpressionmenu.py. Compatible with VEX and OpenCL.
Expanded featureset for Houdini's vexpressionmenu.py. Compatible with VEX and OpenCL. - toby5001/ADL-Parameter-Parser
🔥3
DEMO_EXEMPLE_GIF.gif
19.3 MB
#houdini #hda #assets #rnd #slate
Обычно у каждой студии свой уникальный слэйт под проекты и шоты, но вдруг
кому-то может пригодиться: Slate Overlay 0.2 (у разраба видимо нет гитхаба поэтому да - гугл драйв)
Цель этого инструмента иметь компактный и понятный пользовательский интерфейс для отображения необходимой информации из камеры вьюпорта
Особенности:
- Data: Основная информация о проекте: название, этап работы, версия
- Custom Tags: Тэги соответствующие этапу работы
- Layout: Размещение и настройка элементов отображения
- Framing: Компоновка кадра с помощью правила третей, сэйфа полей и спирали Фибоначчи
- Notes: Дополнительные комментарии о сиквенсе
- Simulation Support: Данные о симуляции из солвера
- Custom Parameters: Произвольные параметры из сетапа
- References: Миниатюры изображений или ссылки на сиквенцию
- Responsive UI: Автоматическая адаптация к разрешению камеры
- Font & Colors: Кастомизация цвета и шрифт наложения
- Save & Share: Сохранение, загрузка и шаринг с настройками в одном файле
Обычно у каждой студии свой уникальный слэйт под проекты и шоты, но вдруг
кому-то может пригодиться: Slate Overlay 0.2 (у разраба видимо нет гитхаба поэтому да - гугл драйв)
Цель этого инструмента иметь компактный и понятный пользовательский интерфейс для отображения необходимой информации из камеры вьюпорта
Особенности:
- Data: Основная информация о проекте: название, этап работы, версия
- Custom Tags: Тэги соответствующие этапу работы
- Layout: Размещение и настройка элементов отображения
- Framing: Компоновка кадра с помощью правила третей, сэйфа полей и спирали Фибоначчи
- Notes: Дополнительные комментарии о сиквенсе
- Simulation Support: Данные о симуляции из солвера
- Custom Parameters: Произвольные параметры из сетапа
- References: Миниатюры изображений или ссылки на сиквенцию
- Responsive UI: Автоматическая адаптация к разрешению камеры
- Font & Colors: Кастомизация цвета и шрифт наложения
- Save & Share: Сохранение, загрузка и шаринг с настройками в одном файле
🔥2
#houdini #vop #hda #assets #rnd #content
Автор и разработчик инструментов Dash сделал небольшой вводный курс о том как ими пользоваться и где применять.
Ссылка на предыдущий пост о Dash: https://news.1rj.ru/str/copystamp/174
https://www.youtube.com/watch?v=I1n2JEWlyNc
Автор и разработчик инструментов Dash сделал небольшой вводный курс о том как ими пользоваться и где применять.
Ссылка на предыдущий пост о Dash: https://news.1rj.ru/str/copystamp/174
https://www.youtube.com/watch?v=I1n2JEWlyNc
YouTube
DASH::package Introduction
Introduction to DASH, a package for SideFX Houdini. Access the project at: https://github.com/probiner/DASH
A user mentioned the discord link is broken, here is the link: https://discord.gg/tBfZxDFesT
#sidefx #houdini #github #repository #3rdparty
A user mentioned the discord link is broken, here is the link: https://discord.gg/tBfZxDFesT
#sidefx #houdini #github #repository #3rdparty
🔥3
#pipeline #prims #rnd #python
"Горячий доклад" с
В этой презентации покажут различные рабочие процессы с использованием
Если кто ещё не слышал о них, если коротко, то они предлагают решение пайплайна для студии "из коробки" где уже написаны соответствующие коннекторы для разных DCC приложений, сабмитеры, ассет-менеджер для полноценной работы в том числе и с набирающим популярность форматом USD.
https://www.youtube.com/watch?v=sFb8A6f8McI&ab_channel=PrismPipeline
"Горячий доклад" с
FMX2024 о Prims Pipeline. В этой презентации покажут различные рабочие процессы с использованием
Prism Pipeline и последние достижения и новые возможности.Если кто ещё не слышал о них, если коротко, то они предлагают решение пайплайна для студии "из коробки" где уже написаны соответствующие коннекторы для разных DCC приложений, сабмитеры, ассет-менеджер для полноценной работы в том числе и с набирающим популярность форматом USD.
https://www.youtube.com/watch?v=sFb8A6f8McI&ab_channel=PrismPipeline
YouTube
FMX 2024: Artist centric (USD-) Workflows with Prism Pipeline
In this presentation, we explore various workflows using Prism Pipeline, highlighting recent advancements and upcoming features.
Join us to discover how Prism Pipeline can streamline your projects and boost your productivity!
https://prism-pipeline.com
…
Join us to discover how Prism Pipeline can streamline your projects and boost your productivity!
https://prism-pipeline.com
…
🔥3👍1
#houdini #github #opencl #rnd #substance
Не проверял их работоспособность, но по превьюхе выглядит как интересный, опенсорсный проект.
https://github.com/kabushPasha/HoudiniSD
Substance Designer операторы для Houdini. Переписаны в основном на OpenCL и работают над хайтфилдами в контексте SOP.Не проверял их работоспособность, но по превьюхе выглядит как интересный, опенсорсный проект.
https://github.com/kabushPasha/HoudiniSD
GitHub
GitHub - kabushPasha/HoudiniSD: SubstanceDesigner Nodes for Houdini
SubstanceDesigner Nodes for Houdini. Contribute to kabushPasha/HoudiniSD development by creating an account on GitHub.
🔥6
#houdini #github #rnd #webgl #python
Цель этого проекта - позволить любому устройству, подключенному к локальному веб-серверу, рендерить превью-геометрию, выполнять ROP таски и взаимодействовать с нод-графом в
Этот проект сочетает в себе докеризованную реализацию
Напоминает уже довольно давно существующий проект HoudiniBlueprints который в браузере позволял пререндеривать простейший граф и делиться им в онлайне. Сам проект может быть не так интересен как изучение отдельных отдельных абстракций и подходов.
Адрес проекта:
https://github.com/mushyfruit/houdini-web-rendering-interface
https://www.youtube.com/watch?v=2bLyKjdpkfg
Цель этого проекта - позволить любому устройству, подключенному к локальному веб-серверу, рендерить превью-геометрию, выполнять ROP таски и взаимодействовать с нод-графом в
Houdini.Этот проект сочетает в себе докеризованную реализацию
Houdini с веб-интерфейсом.Напоминает уже довольно давно существующий проект HoudiniBlueprints который в браузере позволял пререндеривать простейший граф и делиться им в онлайне. Сам проект может быть не так интересен как изучение отдельных отдельных абстракций и подходов.
Адрес проекта:
https://github.com/mushyfruit/houdini-web-rendering-interface
https://www.youtube.com/watch?v=2bLyKjdpkfg
GitHub
GitHub - mushyfruit/houdini-web-rendering-interface: A dockerized SideFX Houdini web app for exploring, rendering, and displaying…
A dockerized SideFX Houdini web app for exploring, rendering, and displaying nodes in a hip file. - mushyfruit/houdini-web-rendering-interface
#houdini #github #sneak_peek #next_release
🔥 Для любителей неторопливого чтения всех изменений в следующем релизе.
https://github.com/alexwheezy/houdini/blob/main/h20.5_sneak_peek.md
🔥 Для любителей неторопливого чтения всех изменений в следующем релизе.
https://github.com/alexwheezy/houdini/blob/main/h20.5_sneak_peek.md
GitHub
houdini/h20.5_sneak_peek.md at main · alexwheezy/houdini
Contribute to alexwheezy/houdini development by creating an account on GitHub.
🔥2
#houdini #github #rust #rnd #utility
Несколько забавных и серьёзных проектов написанных на
Работаете ли вы в студии с ограниченным количеством лицензий на
Вам надоело ждать, пока кто-то закроет свою сессию
Больше не ждите! Обмани! Это маленькое приложение будет пинговать сервер лицензий
https://github.com/alexxbb/houdini-license-chaser
Несколько забавных и серьёзных проектов написанных на
Rust для Houdini.Работаете ли вы в студии с ограниченным количеством лицензий на
Houdini?Вам надоело ждать, пока кто-то закроет свою сессию
Houdini, чтобы украсть его лицензию?Больше не ждите! Обмани! Это маленькое приложение будет пинговать сервер лицензий
Houdini каждые 2 секунды и запустит Houdini в тот момент, когда свободная лицензия станет доступна.https://github.com/alexxbb/houdini-license-chaser
GitHub
GitHub - alexxbb/houdini-license-chaser: A tool which periodically pings the Houdini license server and launches Houdini as soon…
A tool which periodically pings the Houdini license server and launches Houdini as soon as a license becomes available. - alexxbb/houdini-license-chaser
#houdini #github #rust #rnd #bindgen
Биндинги на
https://github.com/alexxbb/hapi-rs
Биндинги на
Rust для Houdini Engine API. В теории должно быть "поприятней" писать на Rust чем на С :) https://github.com/alexxbb/hapi-rs
GitHub
GitHub - alexxbb/hapi-rs: Idiomatic Rust bindings to Houdini Engine C API
Idiomatic Rust bindings to Houdini Engine C API. Contribute to alexxbb/hapi-rs development by creating an account on GitHub.
#houdini #github #rust #rnd #utility #cli
API и утилита командной строки для загрузки сборок
Можно написать свой шел-скрипт который будет обновлять дэйли-билды каждый день в определённый час и день.
https://github.com/alexxbb/houdini-downloader
API и утилита командной строки для загрузки сборок
Houdini из SideFX. Базируется на SideFX Web API.Можно написать свой шел-скрипт который будет обновлять дэйли-билды каждый день в определённый час и день.
https://github.com/alexxbb/houdini-downloader
GitHub
GitHub - alexxbb/houdini-downloader: Houdini Installer Downloader
Houdini Installer Downloader. Contribute to alexxbb/houdini-downloader development by creating an account on GitHub.
О чём доклад?
Чёт угарнул) Никакой информации: начиная от фотки заканчивая самой темой доклада. Просто человек (или Чеширский кот?) ниоткуда читает доклад на рандомную тему.
https://eue-reconnect.com/speakers2024/
Чёт угарнул) Никакой информации: начиная от фотки заканчивая самой темой доклада. Просто человек (или Чеширский кот?) ниоткуда читает доклад на рандомную тему.
https://eue-reconnect.com/speakers2024/
😁4👍1
#houdini #github #scenes #hda #otls #projects
Гитхаб по каким-то законченным пет-проект, в основном посвящённых Genshin Impact. Но тем не менее это может быть стать полезным источником информации чтобы изучить другие подходы в работе и DCC приложения. У автора весь процесс построен на TOP контексте, вплоть до того, что из TOP - Нюк перерендеривает скрипт в конце финальный композ.
https://github.com/0x384c0/HoudiniProjects
Гитхаб по каким-то законченным пет-проект, в основном посвящённых Genshin Impact. Но тем не менее это может быть стать полезным источником информации чтобы изучить другие подходы в работе и DCC приложения. У автора весь процесс построен на TOP контексте, вплоть до того, что из TOP - Нюк перерендеривает скрипт в конце финальный композ.
https://github.com/0x384c0/HoudiniProjects
GitHub
GitHub - 0x384c0/HoudiniProjects: Houdini Projects
Houdini Projects. Contribute to 0x384c0/HoudiniProjects development by creating an account on GitHub.
#houdini #developers #forum #content #users
В преддверии
Эти люди в большинстве своём не выступают на официальных презентациях новых релизов, (не) записывают мастер-классы, некоторые ведут свои блоги, но с радостьюили несчастьем постараются ответить на ваши вопросы. Наш бэкэнд в
Их часто можно встретить на официальном форуме среди других юзеров и зная это я использовал их профиля как стартовую точку для поиска ответов.
Было бы конечно классно иметь дискорд с dev team напрямую как это есть у некоторых языков программирования, но это мечты конечно.
Зачем нужны профиля когда есть уже сгруппированные темы по категориям? 😐
Обычно сначала искал ответы у тех людей кто разбирается в нужном контексте и если не находил то искал у экспертов более широкого профиля, затем уже у юзеров с богатым опытом в
В конце концов их профиля это тоже своеобразный блог бывает с очень полезными ответами которые ты не искал.
Чтобы легче было ориентироваться я буду писать категорию экспертизы или в каком разделе обычно отвечает, может пересекаться с другими категориями.
APEX/Rigging:
- Esther Trilsch впервые презентовала новый фрэймворк для оценки графов
- edward девелопер с богатым опытом в очень разных аспектах
Crowd:
- Cameron White достаточно плотно работает с краудами
Technical Discussion (HDK/HEngine):
- Seelan Vamatheva часто отвечает по вопросам коннекта с
- edward алсо помогает и в вопросах
- Jeff Lait не побоюсь этого слова, "отец" микросолверов в
- John Mather в основном отвечает на вопросы связанные с коннекторами между
LOP/Karma/Solaris/MaterialX:
- Mark Tucker пишет очень развёрнутые и полезные ответы о том как работает
- rafal в основном много консультировал по вопросам интеграции и развития
- brians я подозреваю, что участвует в разработке самого ядра
- Rob Pieké один из ведущих девелоперов
- malexander в основном вопросы взаимодействия
- edward
- Cameron White вопросы интеграции краудов в
- Chris Rydalch переключился на Solaris. Ответы максимально подробные и полезные🔥.
Technical Discussion (VEX/OpenCL/Math):
- Jeff Lait написал довольно много интересных пояснений по поводу того как и что работает в
Technical Discussion (General/OpenGL/Vulkan):
- malexander здесь на канале делал выдержки из его постов о новом вьюпорте на
- edward
Technical Discussion (General/Feather/Shading):
- Kai Stavginski достаточно известная личность. В
- Chris Rydalch тоже своего рода "легенда" уже, помню его за серию уроков в
General:
- Robert Magee старший менеджер по маркетингу продуктов, просто приятный человек готовый помочь разобраться в "почти" любых вопросах
- Jeff Lait
- edward
- malexander
PDG/TOPs:
- Brooke Amaranth
- Seelan Vamatheva
- Taylor Petrick пишет очень ёмкие ответы решающие проблему, часто даже с кодом решения или подсказками
- Chris Grebeldinger как и предыдущий девелопер пишет ёмкие ответы с ссылками на доку
Muscle/Tissue:
- Liesbeth Levick новый девелопер в команде по вопросам мышц, тканей, мускулов.
Надеюсь, вы найдёте их ответы полезными и для себя.
В преддверии
H20.5 Keynote решил сделать пост о людях.Эти люди в большинстве своём не выступают на официальных презентациях новых релизов, (не) записывают мастер-классы, некоторые ведут свои блоги, но с радостью
H - это разработчики. Их часто можно встретить на официальном форуме среди других юзеров и зная это я использовал их профиля как стартовую точку для поиска ответов.
Было бы конечно классно иметь дискорд с dev team напрямую как это есть у некоторых языков программирования, но это мечты конечно.
Зачем нужны профиля когда есть уже сгруппированные темы по категориям? 😐
Обычно сначала искал ответы у тех людей кто разбирается в нужном контексте и если не находил то искал у экспертов более широкого профиля, затем уже у юзеров с богатым опытом в
H. Это как бинарный поиск почти. В конце концов их профиля это тоже своеобразный блог бывает с очень полезными ответами которые ты не искал.
Чтобы легче было ориентироваться я буду писать категорию экспертизы или в каком разделе обычно отвечает, может пересекаться с другими категориями.
APEX/Rigging:
- Esther Trilsch впервые презентовала новый фрэймворк для оценки графов
APEX в H20.0. Очень охотно помогает и идёт на контакт.- edward девелопер с богатым опытом в очень разных аспектах
H, отвечать может почти везде и на любой вопрос.Crowd:
- Cameron White достаточно плотно работает с краудами
Technical Discussion (HDK/HEngine):
- Seelan Vamatheva часто отвечает по вопросам коннекта с
Unity так и по TOP контексту- edward алсо помогает и в вопросах
HDK, Unity, Unreal- Jeff Lait не побоюсь этого слова, "отец" микросолверов в
DOP контексте, автор For Loop, Compiled Blocks, Grains, Heighfield, OpenCL в SOP и конечно Vellum🔥- John Mather в основном отвечает на вопросы связанные с коннекторами между
H и другими приложениями, но часто помогает и с HDKLOP/Karma/Solaris/MaterialX:
- Mark Tucker пишет очень развёрнутые и полезные ответы о том как работает
USD в Solaris. Наверное один из лучших источников информации дальше хелпа, что я читал. 🔥- rafal в основном много консультировал по вопросам интеграции и развития
MaterialX в Karma.- brians я подозреваю, что участвует в разработке самого ядра
Karma, помойму он выступал с докладом как раз на прошлом ивенте- Rob Pieké один из ведущих девелоперов
Solaris, бывало незамедлительно создавал тикеты на баги прямо на форуме без формальностей в виде подробного общения с суппортом- malexander в основном вопросы взаимодействия
Vulkan, OpenGL в Solaris- edward
- Cameron White вопросы интеграции краудов в
Solaris- Chris Rydalch переключился на Solaris. Ответы максимально подробные и полезные🔥.
Technical Discussion (VEX/OpenCL/Math):
- Jeff Lait написал довольно много интересных пояснений по поводу того как и что работает в
H на самом глубоком уровнеTechnical Discussion (General/OpenGL/Vulkan):
- malexander здесь на канале делал выдержки из его постов о новом вьюпорте на
Vulkan появившемся в H20- edward
Technical Discussion (General/Feather/Shading):
- Kai Stavginski достаточно известная личность. В
H16 показал как создание шейдеров было перенесено в новый единый Material контекст. Сейчас активно развивает тему перьев.- Chris Rydalch тоже своего рода "легенда" уже, помню его за серию уроков в
H16: как заинстансить лайты в Mantra, как использовать IFD Workflow, как настроить HQueue под линуксом и т.д.General:
- Robert Magee старший менеджер по маркетингу продуктов, просто приятный человек готовый помочь разобраться в "почти" любых вопросах
- Jeff Lait
- edward
- malexander
PDG/TOPs:
- Brooke Amaranth
- Seelan Vamatheva
- Taylor Petrick пишет очень ёмкие ответы решающие проблему, часто даже с кодом решения или подсказками
- Chris Grebeldinger как и предыдущий девелопер пишет ёмкие ответы с ссылками на доку
Muscle/Tissue:
- Liesbeth Levick новый девелопер в команде по вопросам мышц, тканей, мускулов.
Надеюсь, вы найдёте их ответы полезными и для себя.
Sidefx
esttri | SideFX
🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
#houdini #python #noscripts #tools #hotkey #savetime
Переиспользуем стандартную библиотеку и пишем фокус на дисплэй ноде на изи. Это удобно бывает когда открываешь большой проект и селект ноды оказывается не на диплэй ноде, а так же если нужно часто держать фокус нетворка в этой области, это работает хорошо в связке со стандартным букмаркингом. Работает это там где это имеет смысл, а именно там где можно однозначно определить этот флаг: SOP, LOP, TOP.
Переиспользуем стандартную библиотеку и пишем фокус на дисплэй ноде на изи. Это удобно бывает когда открываешь большой проект и селект ноды оказывается не на диплэй ноде, а так же если нужно часто держать фокус нетворка в этой области, это работает хорошо в связке со стандартным букмаркингом. Работает это там где это имеет смысл, а именно там где можно однозначно определить этот флаг: SOP, LOP, TOP.
import hou
import nodegraphview
def focusDispayNode():
editors = [pane for pane in hou.ui.paneTabs() \
if isinstance(pane, hou.NetworkEditor) and pane.isCurrentTab()]
if not editors:
return None
for editor in editors:
pwd = editor.pwd()
if hasattr(pwd, "displayNode"):
nodegraphview.frameItems(editor, (pwd.displayNode(),))
focusDispayNode()
#houdini #vex #learning #contents
Хей! VEX-патруль на связи. Исправляем ошибки в коде, переизобретаем существующее и учимся.
Пришёл такой вопрос: как соединить точки с рандомными номерами в пространстве по возрастанию координаты Y используя VEX? И вот такой код который делает это некорректно.
Хей! VEX-патруль на связи. Исправляем ошибки в коде, переизобретаем существующее и учимся.
Пришёл такой вопрос: как соединить точки с рандомными номерами в пространстве по возрастанию координаты Y используя VEX? И вот такой код который делает это некорректно.
// Run Over: Detail
int roots[] = expandpointgroup(0, "roots");
int newTrunkPts[] = {};
for (int i = 0; i < len(roots); i++) {
vector vb = set(3e+38,3e+38,3e+38);
vector minV = 0;
int minID = 0;
for (int j = 0; j < len(roots); j++) {
vector va = point(0,"P", roots[j]);
if (va.y < vb.y) {
minID = roots[i];
}
vb = va;
}
append(newTrunkPts, minID);
removevalue(roots, minID);
}
addprim(geoself(),"polyline", newTrunkPts);
printf("roots: %d\n",newTrunkPts);
#houdini #vex #learning #contents
Наивное решение в 4 ноды: AttribWrangle: id = ptnum, Sort by Y, нодой Add by Group соединяем точки, и другой нодой восстанавливаем нумерацию по id: Sort by Id. Но нам это не интересно, мы хотим одним вранглом. 😢
Очевидно нужна какая-то сортировка. Но какая? В коде выше есть попытка написать что-то очень похожее на
Но просто сортировки тут мало, после сортировки точек по высоте нам нужно получить правильный ордеринг точек чтобы знать в каком порядке их соединять поэтому мы создаём новый массив и с помощью ещё одной полезной функции
Итак,
До:
После:
Многие наверное увидят, что я тут велосипед изобретаю, ведь уже есть готовая функция которая сразу возвращает правильный ордеринг после сортировки и это
Результат функции
Таким образом мы исправили код и разобрались как написать похожую функцию
Всем шашлыков!
Очевидно нужна какая-то сортировка. Но какая? В коде выше есть попытка написать что-то очень похожее на
Bubble Sort она же пузырьковая сортировка в простонародье, но мы её писать не будем с нуля, хотя можете попробовать она самая простая, а возьмём просто стандартную VEX-функцию sort которая как то это эффективно делает за нас.function int[] c_argsort(float arr[]){
if(len(arr) < 1) return {};
int ordering[];
int size = len(arr);
resize(ordering, size);
float coords[] = sort(arr);
for(int i = 0; i < size; ++i){
int f = find(arr, coords[i]);
if(f) ordering[i] = f;
}
return ordering;
}
int roots[] = expandpointgroup(0, "roots");
float y_coords[];
int size = len(roots);
resize(y_coords, size);
for(int i = 0; i < size; ++i){
y_coords[i] = vector(point(0, "P", i)).y;
}
int ordering[] = c_argsort(y_coords);
addprim(geoself(),"polyline", ordering);Но просто сортировки тут мало, после сортировки точек по высоте нам нужно получить правильный ордеринг точек чтобы знать в каком порядке их соединять поэтому мы создаём новый массив и с помощью ещё одной полезной функции
find находим нужный индекс и добавляем в массив. Но в этом куске кода есть одна бага которая не мешает работать правильно сейчас, но может не работать в другой ситуации. Видите какая? (бонусное задание для самых терпеливых 🙂)Итак,
До:
[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]После:
[ 0, 1, 3, 2, 6, 8, 7, 5, 4, 10, 9 ]Многие наверное увидят, что я тут велосипед изобретаю, ведь уже есть готовая функция которая сразу возвращает правильный ордеринг после сортировки и это
argsort. int roots[] = expandpointgroup(0, "roots");
float y_coords[];
int size = len(roots);
resize(y_coords, size);
for(int i = 0; i < size; ++i){
y_coords[i] = vector(point(0, "P", i)).y;
}
int ordering[] = argsort(y_coords);
addprim(geoself(),"polyline", ordering);
Результат функции
argsort будет аналогичный тому, что мы сами написали с нуля и собранному сетапу на нодах.Таким образом мы исправили код и разобрались как написать похожую функцию
argsort самостоятельно.Всем шашлыков!
🔥4
#houdini #release #mpm #contents
На реддите активно обсуждают, что представляет из себя новый солвер. Один из пользователей знает что-то больше об этом чем просто название
Это небольшая выдержка. Его полные, интересный ответы можно прочитать в посте.
"
Теперь с помощью
Кроме того, в некоторых случаях, таких как накопление снега и т.д.,
Короче говоря, он сможет сочетать в себе решения основанные на Лагранжевых и Эйлеровых солверах.
https://www.reddit.com/r/Houdini/comments/1dqfcbk/houdini_205_mpm_what_is_that/
На реддите активно обсуждают, что представляет из себя новый солвер. Один из пользователей знает что-то больше об этом чем просто название
MPM. Интересные мысли были и относительно того почему в презентации MPM выглядел не очень в деформациях и при разрушении здание.Это небольшая выдержка. Его полные, интересный ответы можно прочитать в посте.
"
MPM - это своего рода гибридный солвер. Он был создан как расширение FLIP solver'а. В то время как FLIP очень хорошо справляется с поведением жидкостей, не допуская divergence free. MPM - это скорее универсальное решение, которое намного лучше справляется с растяжением, деформацией и гранулированными моделями, однако оно также может работать с жидкостями.Теперь с помощью
MPM вы можете эффективно взаимодействовать с различными материалами, чего раньше не было, например, с тканью и жидкостью, зерном и текучей средой и т.д. Кроме того, в некоторых случаях, таких как накопление снега и т.д.,
MPM может дать гораздо лучшие результаты, чем решения на основе PBD, такие как vellum. Однако одним из недостатков является то, что с MPM вам придется создавать ограничивающие баунды, такие как FLIP или Pyro solver, которые не всегда могут быть очень эффективными с точки зрения памяти."Короче говоря, он сможет сочетать в себе решения основанные на Лагранжевых и Эйлеровых солверах.
https://www.reddit.com/r/Houdini/comments/1dqfcbk/houdini_205_mpm_what_is_that/
Reddit
From the Houdini community on Reddit
Explore this post and more from the Houdini community
🔥1