This media is not supported in your browser
VIEW IN TELEGRAM
#rust #rendering #raytracing #sansara #rnd #github
Пишем многопоточный рэйтрейсер с блэкджеком и сферами завыходные 2 недели. (Но говорят, что можно за выходные 😢).
Есть такое упражнение - хочешь понять как работает твой язык напиши на нём рэйтрейсер. Пишем на мэйнстримовом
Итак, рендер
Исходный код проекта для погружения в детали:
https://github.com/alexwheezy/ray-tracing-in-one-weekend
Пишем многопоточный рэйтрейсер с блэкджеком и сферами за
Есть такое упражнение - хочешь понять как работает твой язык напиши на нём рэйтрейсер. Пишем на мэйнстримовом
Rust используя популярную книгу и наработки для такого: https://raytracing.github.io/books/RayTracingInOneWeekend.htmlИтак, рендер
Sansara умеет быстро и хорошо выполнять одну задачу - эффективно рендерить сферы с разными материалами в дефокусе, но хорошей задачей на будущее будет возможность дописать ещё рендер pighead.Исходный код проекта для погружения в детали:
https://github.com/alexwheezy/ray-tracing-in-one-weekend
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
#houdini #whatsnew #todayilearned #content #vexpressionmenu
Этот простой fix позволяет вернуть создание параметров в
Более формально, настройки хранятся в файле
Этот простой fix позволяет вернуть создание параметров в
AttribWrangle ниже окна сниппетов в H20, а не выше как происходит сейчас.Более формально, настройки хранятся в файле
vexpressionmenu.py которые можно локально заоверрайдить у пользователя положив этот файл к себе в домашнюю директорию с настройками ~/houdini20.0/python3.10libs. так же изменил права доступа у файла c read-only на read + write only поскольку файл находился в системной директории Houdini.👍1
#houdini #whatsnew #todayilearned #shading #render #rnd #github
В документации уже есть намёки на то, что в
Бумага описывающая новый стандарт есть тут:
https://github.com/AcademySoftwareFoundation/OpenPBR
В документации уже есть намёки на то, что в
Mtlx есть заметки о эволюции Standard Surface в новый über-шейдер, целью которого является создание представления материалов, способного точно моделировать подавляющее большинство материалов, используемых в практических визуальных эффектах и полнометражных анимационных проектах. Возможно, что он уже появится в H20.5.Бумага описывающая новый стандарт есть тут:
https://github.com/AcademySoftwareFoundation/OpenPBR
This media is not supported in your browser
VIEW IN TELEGRAM
#houdini #lifeblood #renderfarm #sim #wedging #pipeline
Продолжаем эксперименты с таск-менеджером
В этом сетапе сначала последовательно разделяем симуляцию на серию последовательных тасков для кэширования чтобы задачи не конкурировали за ресурсы в процессе симуляции друг с другом, а потом рендерим задачи уже параллельно используя все доступные имеющиеся ресурсы и собираем это в одну мозаику для сравнения вариантов.
Продолжаем эксперименты с таск-менеджером
Lifeblood.Lifeblood так же позволяет создавать Wedge-сетапы для задач связанных с получением различных вариантов.В этом сетапе сначала последовательно разделяем симуляцию на серию последовательных тасков для кэширования чтобы задачи не конкурировали за ресурсы в процессе симуляции друг с другом, а потом рендерим задачи уже параллельно используя все доступные имеющиеся ресурсы и собираем это в одну мозаику для сравнения вариантов.
😱1
https://help.autodesk.com/cloudhelp/ENU/AR-Core/images/ac-rn-7310-robotIPR_optixDenoising.gif
#houdini #arnold #rendering #htoa
HtoA 7.3.0.0 и 7.3.1.0 - Arnold for Houdini
Вышло очередное обновление HtoA.
Из наиболее ярких обновлений релиза:
- Прогрессивная выборка с затуханием:
- Улучшена поддержка
- Обновлён
Денойзер
Более полный список исправлений и улучшений:
https://help.autodesk.com/view/ARNOL/ENU/?guid=arnold_core_7300_html
https://help.autodesk.com/view/ARNOL/ENU/?guid=arnold_core_7310_html
#houdini #arnold #rendering #htoa
HtoA 7.3.0.0 и 7.3.1.0 - Arnold for Houdini
Вышло очередное обновление HtoA.
Из наиболее ярких обновлений релиза:
- Прогрессивная выборка с затуханием:
Arnold теперь поддерживает сэмплы с затуханием при прогрессивном и адаптивном рендеринге. Сглаживание обеспечивает более приятное распределение шума при низком количестве сэмплов AA. - Улучшена поддержка
MaterialX: Arnold теперь может отображать графы узлов MaterialX, смешивая узлы Arnold с узлами стандартной библиотеки MaterialX. DCC, загружающие определения узлов Arnold, получают преимущества от недавно добавленных метаданных пользовательского интерфейса и обеспечивают лучший пользовательский опыт. Arnold также теперь использует MaterialX 1.38.8. Это обновление привнесло новые узлы в стандартную библиотеку MaterialX, полный список изменений приведен в полном описании выпуска. - Обновлён
Intel Open Image Denoise (OIDN) до версии 2.2.2: Обновленный денойзер на 10 % производительнее на CPU, содержит ряд критических исправлений и лучше обрабатывает высокочастотные детали. Денойзер
OptiX теперь выполняет денойз на прогрессивных, негативных проходах низкого разрешения (рендеры с AA < 0). Это должно привести к повышению качества обратной связи в IPR.Более полный список исправлений и улучшений:
https://help.autodesk.com/view/ARNOL/ENU/?guid=arnold_core_7300_html
https://help.autodesk.com/view/ARNOL/ENU/?guid=arnold_core_7310_html
🔥2
#houdini #vex #quiz
Субботний квиз. Мы в VEXpression на Detail написали такой код. Корректен ли данный код и будет ли он работать?
Ответы:
1) Compile Error
2) Runtime Error
3) 4,3,2,1
4) 3,2,1,0
5) Infinite loop (блокировка интерфейса)
Правильный ответ: 4
Это не причудливый оператор стрелочка в VEX и даже не С, это просто 2 операции подряд "склеенные" в одну такие как операция пост-декремента и знака больше.
Т.е можно было бы написать (a-- > 0) и это тоже самое.
В каждой итерации цикла будем отнимать значение и проверять на равенство в нулём и так до тех пор пока равенство не станет соблюдаться.
Do I know VEX Language?Субботний квиз. Мы в VEXpression на Detail написали такой код. Корректен ли данный код и будет ли он работать?
#define false 0
#define true 1
void main(){
int a = 4;
while(a --> false){
printf("v:%d\n", a);
}
}
main();
Ответы:
1) Compile Error
2) Runtime Error
3) 4,3,2,1
4) 3,2,1,0
5) Infinite loop (блокировка интерфейса)
Это не причудливый оператор стрелочка в VEX и даже не С, это просто 2 операции подряд "склеенные" в одну такие как операция пост-декремента и знака больше.
Т.е можно было бы написать (a-- > 0) и это тоже самое.
В каждой итерации цикла будем отнимать значение и проверять на равенство в нулём и так до тех пор пока равенство не станет соблюдаться.
This media is not supported in your browser
VIEW IN TELEGRAM
#houdini #todayilearned #top #pdg #content
1)
2) Планировщик (
а) Локальный планировщик. Задачи выполняются локально используя доступные ресурсы, планировщик может перераспределять нагрузки задач используя собственные параметры.
б) Внешний планировщик по отношению к машине отправляет задачи на "удалённую" ферму и получает отчёт через
3) Сервер
a) связь между
б) связь между задачами в случае, если они связаны (например, разделенная симуляция)
в) веб-сервер для получения информации о состоянии задачи.
И это всё. 🙂
How does TOP/PDG work?1)
Houdini с графом PDG и нодами TOP должен запустить один инстанс Houdini, который открывает сцену и готовит граф PDG. Houdini в процессе создает множество файлов с информацией о выполнении каждой задачи. Каждая нода содержит список задач, которые должны быть выполнены. Задачи одной ноды могут зависеть от некоторых или всех задач родительской ноды.2) Планировщик (
Scheduler) отвечает за запуск сервера PDG и распределение самих задач. а) Локальный планировщик. Задачи выполняются локально используя доступные ресурсы, планировщик может перераспределять нагрузки задач используя собственные параметры.
б) Внешний планировщик по отношению к машине отправляет задачи на "удалённую" ферму и получает отчёт через
PDG Server.3) Сервер
PDG обеспечивает:a) связь между
Houdini и задачами.б) связь между задачами в случае, если они связаны (например, разделенная симуляция)
в) веб-сервер для получения информации о состоянии задачи.
И это всё. 🙂
🤔1
#pixar #renderman #release #rendering
- Усовершенствования XPU: XPU получил значительные обновления, улучшенную поддержку освещенения, управление камерой и возможности адаптивной выборки, что привело к ускорению рендера и повышению интерактивности.
- Интерактивный денойзинг: Появление интерактивной версии денойзера с машинным обучением революционизирует рабочие процессы рендера, сокращая время итераций и сохраняя качество изображения во время интерактивных сессий.
Кроме того, такие основные усовершенствования, как более быстрая инстансация и параллелизм чтения текстур, обеспечивают оптимальную производительность в различных сценариях рендера, а набор инструментов Stylized Looks™ получил значительные улучшения, обеспечивающие расширенный творческий контроль и более интуитивный пользовательский опыт.
https://vimeo.com/930406276
Pixar с гордостью объявляет о выпуске RenderMan 26 - значительном усовершенствовании основной технологии рендера. В этой последней версии представлены революционные функции, которые расширяют возможности рендере и упрощают рабочие процессы для художников.- Усовершенствования XPU: XPU получил значительные обновления, улучшенную поддержку освещенения, управление камерой и возможности адаптивной выборки, что привело к ускорению рендера и повышению интерактивности.
- Интерактивный денойзинг: Появление интерактивной версии денойзера с машинным обучением революционизирует рабочие процессы рендера, сокращая время итераций и сохраняя качество изображения во время интерактивных сессий.
Кроме того, такие основные усовершенствования, как более быстрая инстансация и параллелизм чтения текстур, обеспечивают оптимальную производительность в различных сценариях рендера, а набор инструментов Stylized Looks™ получил значительные улучшения, обеспечивающие расширенный творческий контроль и более интуитивный пользовательский опыт.
https://vimeo.com/930406276
Vimeo
RenderMan 26 Feature Reel
Showcasing the improvements for RenderMan 26, the latest in Pixar's flagship renderer!
👍1
#houdini #challenge #jams #tech
Подведены наконец-то итоги затянувшегося
По мне так победителями в категории
В категории
https://www.sidefx.com/community-main-menu/contests-jams/h20-tech-art-challenge
Подведены наконец-то итоги затянувшегося
Tech Art Challenge стартовавшего ещё в прошлом году. По мне так победителями в категории
Best Houdini Utility стали последние 2 инструмента: Find Center Line и AutoFix Intersection поскольку многим часто приходится именно с таким сталкиваться в повседневной работе. Достаточно интересно сделаны и выложены в открытый доступ по правилам конкурса. Первые 2 призовых места спорные на мой взгляд чтобы их рассматривать как лучшие инструменты, но SideFX конечно виднее.В категории
Best Game Art Asset: ассет Trebushet с крутой физикой. Выглядит классно.https://www.sidefx.com/community-main-menu/contests-jams/h20-tech-art-challenge
Sidefx
H20 Tech Art Challenge | SideFX
#houdini #vex #quiz
Субботний квиз. Что должен будет вывести этот код?
Ответы:
1) 1
2) 2
3) 3
4) Ничего
Правильный ответ: 4
При таком положении вещей у нас этот код никогда не выполняется. Дело в том, что else тут относится относится не к внешнему, согласованному оператору if, а к внутреннему оператору if и следующий кусок кода можно переписать эквивалентно
if(x == 0) {
if(y == 0) printf("%d\n", y + 1);
else {
int z = y + 2;
printf("%d\n", x);
}
}
Так становится более наглядно почему важно соблюдать синтаксическую особенность языка. Чтобы этот пример стал работать ожидаемым образом нужно всего лишь правильно переписать пример
if(x == 0) {
if(y == 0) printf("%d\n", y + 1);
} else {
int z = y + 2;
printf("%d\n", x);
}
Do I know VEX Language? Субботний квиз. Что должен будет вывести этот код?
int x = 3;
int y = 1;
if(x == 0)
if(y == 0) printf("%d\n", y + 1);
else {
int z = y + 2;
printf("%d\n", x);
}
Ответы:
1) 1
2) 2
3) 3
4) Ничего
При таком положении вещей у нас этот код никогда не выполняется. Дело в том, что else тут относится относится не к внешнему, согласованному оператору if, а к внутреннему оператору if и следующий кусок кода можно переписать эквивалентно
if(x == 0) {
if(y == 0) printf("%d\n", y + 1);
else {
int z = y + 2;
printf("%d\n", x);
}
}
Так становится более наглядно почему важно соблюдать синтаксическую особенность языка. Чтобы этот пример стал работать ожидаемым образом нужно всего лишь правильно переписать пример
if(x == 0) {
if(y == 0) printf("%d\n", y + 1);
} else {
int z = y + 2;
printf("%d\n", x);
}
This media is not supported in your browser
VIEW IN TELEGRAM
#houdini #content #research #undefined
На исследование этого вопроса меня "вдохновила" недавняя тема на форуме от создателя
Вот этот пост https://www.sidefx.com/forum/topic/95458
Мне стало интересно посмотреть на это глазами не просто пользователя который ловит баги от случая к случаю, случайно, а как тестировщик такой сложной системы который будет делать то, что вообще кажется иррациональным и контр-интуитивным в обычной работе. Справедливости ради все найденные баги есть и в
За основную тему я взял печально известную проблему арифтметического переполнения - специфичная для компьютерной арифметики ситуация, когда при арифметическом действии результат становится больше максимально возможного значения для переменной, использующейся для хранения результата это как правило приводит к неопределённому поведению...
Unsafe integer overflow!!! На исследование этого вопроса меня "вдохновила" недавняя тема на форуме от создателя
Modeler в Houdini где он мягко говоря прошёлся по разработчикам и высказал своё недовольство, что новый билд H20 стал не лучше, а даже хуже по сравнению с H19.5. Вот этот пост https://www.sidefx.com/forum/topic/95458
Мне стало интересно посмотреть на это глазами не просто пользователя который ловит баги от случая к случаю, случайно, а как тестировщик такой сложной системы который будет делать то, что вообще кажется иррациональным и контр-интуитивным в обычной работе. Справедливости ради все найденные баги есть и в
H19.5.За основную тему я взял печально известную проблему арифтметического переполнения - специфичная для компьютерной арифметики ситуация, когда при арифметическом действии результат становится больше максимально возможного значения для переменной, использующейся для хранения результата это как правило приводит к неопределённому поведению...
🔥1
#houdini #axiom #content #freeware #hip
Иногда вам нужны реальные файлы проекта чтобы изучать новое.
https://www.doublejumpacademy.com/community-files
Иногда вам нужны реальные файлы проекта чтобы изучать новое.
DoubleJump Academy начала бесплатно распространять такие учебные проекты. Их платформа так же позволяет вносить свой вклад в развитие обучающих материалов.https://www.doublejumpacademy.com/community-files
Doublejumpacademy
DoubleJump Academy - Free Resources
Become a part of the vibrant DoubleJump Community, where passionate VFX artists gather to share knowledge, inspiration, and creativity. Join the liveliest community on the internet dedicated to visual effects and CGI. Connect with fellow artists, access valuable…
#houdini #hnoscript #code #noscripts #env
Используем "древнейшие" технологии себе на пользу. 🧐 Несмотря на то что
Вы можете добавлять модификаторы в конец имен переменных, чтобы изменить возвращаемое значение. Эти модификаторы не изменяют значение, хранящееся в переменной, они изменяют только значение, возвращаемое ссылкой на переменную с модификатором.
Чтобы изменить значение переменной, добавьте
Мы будет смотреть на поведение модификаторов используя переменную
Нам доступны следующие коды:
Extension
Root
Search
Upper
Lower
Так же мы можем изменять поведение самих модификаторов кодов:
Global
All
Больше примеров:
К чему это я всё, некоторые вещи удобнее сделать
Variable modifiersИспользуем "древнейшие" технологии себе на пользу. 🧐 Несмотря на то что
HScript пророчат скорую кончину его всё равно ещё активно используют в выражениях параметров, ну и мы используем одну из таких необычных и экзотических способностей как модификаторы.Вы можете добавлять модификаторы в конец имен переменных, чтобы изменить возвращаемое значение. Эти модификаторы не изменяют значение, хранящееся в переменной, они изменяют только значение, возвращаемое ссылкой на переменную с модификатором.
Чтобы изменить значение переменной, добавьте
:code в конец имени переменной. Мы будет смотреть на поведение модификаторов используя переменную
$HIPFILE которая возвращает полный путь до сцены: /tmp/houdini_temp/example_v001.hip
Нам доступны следующие коды:
Head :h (Часть пути в имени пути (то есть путь до имени файла)
$HIPFILE:h == /tmp/houdini_temp
Tail :t (Только часть имени файла в имени пути)
$HIPFILE:t == example_v001.hipExtension
:e (Расширение в конце имени файла)
$HIPFILE:e == hipRoot
:r (Все части имени пути, кроме расширения)
$HIPFILE:r == /tmp/houdini_temp/example_v001Search
:s/ptrn/repl (Заменить вхождения шаблона ptrn на repl)
$HIPFILE:s/v001/v002 == /tmp/houdini_temp/example_v002.hipUpper
:u (Преобразование первого символа в верхний регистр)
$HIPFILE:u == /Tmp/houdini_temp/example_v001.hipLower
:l (Преобразование первого символа в нижний регистр)
$HIPFILE:l == /tmp/houdini_temp/example_v001.hipТак же мы можем изменять поведение самих модификаторов кодов:
Global
:g (Рассматривайте строку как список строк, разграниченных пробелами, и применяйте следующий код к каждому компоненту независимо)All
:a (Рекурсивно примените следующий код столько раз, сколько возможно)Больше примеров:
A = "foo1 foo2 foo3 foofoo4"
$A:u == "Foo1 foo2 foo3 foofoo4"
$A:u:u == "FOo1 foo2 foo3 foofoo4"
$A:gu == "Foo1 Foo2 Foo3 Foofoo4"
$A:gu:u == "FOo1 Foo2 Foo3 Foofoo4"
$A:au == "FOO1 FOO2 FOO3 FOOFOO4"
$A:al == "foo1 foo2 foo3 foofoo4"
$A:s/foo/bar/ == "bar1 foo2 foo3 foofoo4"
$A:s/foo/bar/:s/foo/bar/ == "bar1 bar2 foo3 foofoo4"
$A:gs/foo/bar/ == "bar1 bar2 bar3 barfoo4"
$A:as/foo/bar/ == "bar1 bar2 bar3 barbar4"К чему это я всё, некоторые вещи удобнее сделать
HScript чем Питоном 🙂🔥2
#pipeline #vfx #tools #rnd #development
В индустрии анимации и VFX как никогда высок спрос на эффективные, масштабируемые и гибкие конвейерные платформы.
Выпуск
https://beforesandafters.com/2024/04/17/introducing-ayon-advancing-creative-workflows-for-animation-and-vfx-pipelines/
В индустрии анимации и VFX как никогда высок спрос на эффективные, масштабируемые и гибкие конвейерные платформы.
AYON представляет собой следующий этап эволюции популярной платформы с открытым исходным кодом OpenPype, разработанной специалистами по конвейерным системам из компании Ynput. Эта платформа с открытым исходным кодом призвана оптимизировать рабочие процессы творческих студий, обеспечивая бесперебойную реализацию проектов от концепции до завершения.Выпуск
AYON 1.0 представляет облачный сервис, который обеспечивает масштабируемость и гибкость. Ранее ограниченная самостоятельными установками, возможность облачного хостинга полезна для студий, работающих с распределенными командами, упрощает управление инфраструктурой и позволяет художникам сосредоточиться на том, что у них получается лучше всего: создавать захватывающие визуальные эффекты без участия администратора.https://beforesandafters.com/2024/04/17/introducing-ayon-advancing-creative-workflows-for-animation-and-vfx-pipelines/
befores & afters
Introducing AYON: Advancing Creative Workflows for Animation and VFX Pipelines - befores & afters
How to get a demo of AYON, by the pipeline specialists at Ynput.
#houdini #github #rnd #hda #otls #assets
Первый релиз небольшой и представляет собой переделку ассетов, которые впервые опубликованы были на
- Небольшие гранулированные ноды, которые можно повторно использовать во многих настройках. Не монолитные ноды с полной настройкой.
- Больше VOPs, чем SOPs, потому что последние являются очень целевым контекстом (многие SOP ноды, которые создавались в течение многих лет, пересекаются с поставляемыми нодами).
- VOPs с сигнатурами массивов, чтобы уменьшить постоянную необходимость использовать цикл for для работы с массивами.
- Меню с информацией и скриптами колбэков, которые ускоряют настройку.
https://github.com/probiner/DASH
DASH - это пакет для Houdini, который предлагает небольшие улучшения качества жизни, стандартов и рабочих процессов через поставку нод, скриптов или настроек.Первый релиз небольшой и представляет собой переделку ассетов, которые впервые опубликованы были на
Orbolt. Он также представляет тип нод и принципы, к которым автор будет стремиться в дальнейших релизах:- Небольшие гранулированные ноды, которые можно повторно использовать во многих настройках. Не монолитные ноды с полной настройкой.
- Больше VOPs, чем SOPs, потому что последние являются очень целевым контекстом (многие SOP ноды, которые создавались в течение многих лет, пересекаются с поставляемыми нодами).
- VOPs с сигнатурами массивов, чтобы уменьшить постоянную необходимость использовать цикл for для работы с массивами.
- Меню с информацией и скриптами колбэков, которые ускоряют настройку.
https://github.com/probiner/DASH
GitHub
GitHub - probiner/DASH: Quality of Life utilities package for SideFX Houdini.
Quality of Life utilities package for SideFX Houdini. - probiner/DASH
#houdini #vex #quiz
Субботний квиз. Мы создаём 2 переменные подобным образом:
Какое значение будет у атрибутов
Ответы:
1) 42.0, 42
2) 42, 42.0
3) 0, 0.0
4) 0.0, 0
5) Compile Error
Правильный ответ: 4
Да, этот код не вызывает синтаксической ошибки и кроме того работает. Но почему значения атрибутов тогда равны нулю?
Здесь присваивание имеет отношение к идентификатору переменной, а не к привязке новой переменной использующий символ лигатуры, поэтому созданные атрибуты имеют дефолтное значние для своего типа.
Сама форма парсится синтаксическим анализатором на предмет валидности идентификаторов и не запрещает в имени использовать символ лигатуры как разделитесь, поэтому имя идентификатора float_chf@attr1 или int_chi@attr2 абсолютно валидны и могут быть присвоены другой переменной, но так конечно делать не рекомендуется.
Бонус: какое имя мы создадим из такой привязки?
#define ATTR #$%^&*()!
int @ATTR = 42;
Do I know VEX Language? Субботний квиз. Мы создаём 2 переменные подобным образом:
int float_chf@attr1 = 42.0;
float int_chi@attr2 = 42;
Какое значение будет у атрибутов
attr1 и attr2?Ответы:
1) 42.0, 42
2) 42, 42.0
3) 0, 0.0
4) 0.0, 0
5) Compile Error
Да, этот код не вызывает синтаксической ошибки и кроме того работает. Но почему значения атрибутов тогда равны нулю?
Здесь присваивание имеет отношение к идентификатору переменной, а не к привязке новой переменной использующий символ лигатуры, поэтому созданные атрибуты имеют дефолтное значние для своего типа.
Сама форма парсится синтаксическим анализатором на предмет валидности идентификаторов и не запрещает в имени использовать символ лигатуры как разделитесь, поэтому имя идентификатора float_chf@attr1 или int_chi@attr2 абсолютно валидны и могут быть присвоены другой переменной, но так конечно делать не рекомендуется.
int
#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