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

Прямо перед новым годом я законтрибьютил на CGHub оригинальную статью Pedohorse на тему продвинутого и базового VEX'a, это тот самый труд который он выкладывал ещё в Google Docs, наверняка много кто про это помнит или слышал, видел.

Я перенёс эту статью полностью в формат Markdown и немного дополнил, то, что сам знал или являлось новым для VEX, например использование "структур на месте".

Теперь эту статью намного приятней читать прямо в браузере, она нисколько не потеряла в своей актуальности, такие вещи не устаревают, но самое главное, что теперь её расширять и исправлять стало удобней через PR на GitHub используя форк основного репозитория.

Так, что не стесняйтесь вносить свой вклад и наполнять хаб полезным контентом!

https://pedohorse.github.io/cg-community-hub/houdini/vex
11🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
#neovide #ide #fx #meme

Пижонство activated.

Когда хочешь свои дэйлизы вместе со всеми смотреть на большом экране.
😁62
Channel name was changed to «На CBB»
С праздником, дорогие подписчицы!

Будьте смелыми и не бойтесь трудностей!
3
#python #github #rust #uv #packagemanager

Всё ещё собираете проекты на Python и используете кучу разрозненных инструментов типа: pip,pipx,poetry,virtualenv и т.д?

Попробуйте этот чрезвычайно быстрый пакетный менеджер uv для проектов на языке Python, написанный на Blaaazziing Rust. Да, сейчас в трендах всё переписывать на Rust от системных утилит до драйверов в ядре Linux, но тут пока сложно.

Он заменяет все инструменты одним, подходит для написания простых скриптов до работы над крупными проектами, поддерживающими различные библиотечные зависимости, несколько версий и платформ Python. Подробные хайлайты в описании.
А, ну и да, этот проект от создателей Blaazzing линтера Ruff для Python.

https://github.com/astral-sh/uv
😁7🔥3🤡1
#houdin #hdk #cpp #github

Автор реализовал на HDK для H20.5 различные задачи прикладной математики: линейной алгебры, векторного анализа, уравнения в частных производных, вариационный принцип, оптимизация и численный анализ с помощью методов анимации для партиклов, твердых тел, упругих тел.

Задачи которые он решал:

- Implicit Time Integration
- Linear Momentum Conservation
- Acceleration of N-body Simulation
- Accelerated Nearest Search using Kd-Tree
- Gradient Descent for Mass-Spring Simulation
- Dynamic Mass-spring System using Variational Euler Time Integration
- Solving Laplace Equation with Gauss-Seidel Method
- Controlling Volume of a Mesh using Lagrange-Multiplier Method
- Rotation and Energy Minimization
- Simulation of Rigid Body Precession

На гите есть небольшая простая справка как скомпилировать эти плагины и поиграться с примерами сцен которые идут вместе с плагинами.

GitHub:
https://github.com/Xayah-Hina/Physics-based_Animation_2023S?tab=readme-ov-file
🔥5
#houdini #highlight #changelog

- Теперь можно дебажить функциональность ивентов клавиш Qt через метод hou.qt._setDebugKeyEvents(). Метод судя по всему не публичный, поэтому детали использования придётся искать в коде.

- Реализован <noscriptMenuStripDynamic> для XMLMenus, используемого в коде Qt/Python (например, панели Python). Это позволяет скрипту генерировать последовательность скриптовых записей в меню. <contentsnoscriptcode> оценивается, и, следовательно, записи генерируются при открытии меню, а не когда оно первоначально парсилось.

Для примера:
<subMenu id="mySubMenuId">
<label>Colors</label>
<noscriptMenuStripDynamic id="myUniqueDynamicStripId">
<contentsScriptCode><![CDATA[
menu_items = ["r", "R", "g", "G", "b", "B"]
return menu_items
]]></contentsScriptCode>
<noscriptCode><![CDATA[
import hou

token = kwargs["selectedtoken"]
label = kwargs["selectedlabel"]

hou.ui.displayMessage("%s (%s)" % (label, token))
]]></noscriptCode>
</noscriptMenuStripDynamic>
</subMenu>


Иными словами выполнение начинается сразу же, когда выбирается соответствующий пункт в меню. Чтобы отложить выполнение до тех пор, пока меню не закроется можно использовать hdefereval в секции <noscriptCode>.

<noscriptCode><![CDATA[
def runLater():
hou.ui.displayMessage("Hello World")

import hdefereval
hdefereval.executeDeferred(runLater)
]]>
</noscriptCode>


Из ограничений:
- В настоящее время нет возможности динамически включать и отключать пользовательские меню/пункты.
- Меню по умолчанию используют дополнительные теги, не определенные выше. Эти теги тесно связаны с внутренней реализацией Houdini и в настоящее время не пригодны для пользовательской настройки.

А так же исправляется большой пласт ошибок связанный с активным переходом на PyQt6/PySide6.

https://news.1rj.ru/str/houdini_main_changelogs/605
🔥2
#steam #nvidia #rtx #games

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

Half-Life 2 RTX uses the latest version of RTX Remix leveraging new RTX Neural Rendering technologies, cutting-edge full ray tracing, accelerated by NVIDIA DLSS 4 with Multi Frame Generation, and NVIDIA Reflex to bring one of the greatest video games of all time to life in a whole new light.

https://store.steampowered.com/app/2477290/HalfLife_2_RTX/
4
#blender #ai #opensource #cursor #videcoding

BlenderMCP интегрирует Claude AI, разработанный компанией Anthropic, в Blender через протокол Model Context Protocol (MCP), позволяя Claude напрямую взаимодействовать с Blender и управлять им.

Кажется это тот самый "Vibe Coding", но взятый на манер 3д когда мы можем в одной руке держать лавандовый раф, а другой рукой писать генерировать промты для сцены наслаждаясь видом на море из пляжной сторожевой башни. Так нам обещают маркетологи, но когда я впервые услышал про "вайб-кодинг" я подумал, что вообще ничего делать не надо..

"Вайб-кодинг" или "СДВГ-кодинг", он же "AI-assistant coding" - метод программирования, основанный на использовании больших языковых моделей (LLM) и искусственного интеллекта (AI) для генерации программного кода на основе описания задачи на естественном языке.

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

Есть уже забавные челенджи наполненные скепсисом как написать игру с помощью Curor AI за 7 дней используя технику "вайб-кодинга".

В Ars Technica описали "ироничный поворот в развитии вайб-кодинга": AI-ассистент отказался сгенерировать код для программиста, ответив: "Я не могу создать код за вас, так как это означало бы выполнение вашей работы" и добавил: "Вы должны самостоятельно разработать логику." 🙂

https://www.youtube.com/watch?v=DqgKuLYUv00
👍3😁1🤩1
#liquidgen #janga #odin #fx #sim

Попался мне на глаза последний билд Liquidgen версии 0.3.2-alpha и решил убедиться воочию на заявленный реалтайм и возможности.

Liquidgen на данный момент доcтупен для архитектуры x86_64 Windows и Linux и разрабатывается на довольно экзотической смеси языков Odin и C++. Где большую часть занимает именно Odin. У языка Odin согласно статистике GitHub всего 125 пользователей против 1 миллиона у C++, про Python вообще молчу и это только зарегистрированные пользователи.

Язык ещё достаточно молодой и разрабатывать на нём довольно рискованное дело, но JangaFX разрабатывает на нём все свои текущие и будет разрабатывать новые продукты. Спойлер: разработчики думают о создании VegeGen, инструмент для создания растительности со своим блэкджеком и рендером.

Для тех, кто не знаком, Odin - это язык системного программирования общего назначения, который более консервативен в своем дизайне, чем другие новые языки программирования, такие как Rust, Zig и Carbon.
Идеология дизайна вокруг Odin заключается в том, чтобы обеспечить некоторые крайне необходимые улучшения качества работы по сравнению с лингва-франка системных языков: C, оставаясь при этом таким же простым, как C. Это делает его действительно привлекательным языком для тех, кто недоволен возросшей сложностью, которую любят поощрять другие системные языки.

Как сказал один из разработчиков JangaFX: "Personal choice/freedom".

И ещё одно важное наблюдение несмотря на современные тенденции разрабатывать используя новые графические API; Liquidgen, Embergen и другие, большую часть симуляции выполняют на GPU используя OpenGL, по крайней мере, пока. Возможно, со временем они перейдут на D3D для Windows, Metal для macOS и Vulkan для Linux, но видимо не скоро.
👍1
Media is too big
VIEW IN TELEGRAM
#liquidgen #janga #odin #fx #sim

Продолжение..

Вопреки задачи по созданию красивой, демонстрационной симуляции с водой, я буду просто густо поливать макароны и хотдог, горячим сырным соусом (да, я могу, а что вы мне сделаете?), двигать коллайдеры и крутить параметры чтобы понять достаточно ли 25 нод c параметрами, вьюпорта и таймлайна чтобы считаться простым и удобным редактором для создания такого.

У меня была 3070 Ti 8GB для тестов и редактор почти сразу забрал себе почти 7GB даже не начав симулить, возможно нужно железо получше, но в минимальные требования вписался.
В редакторе действительно мало нод, мало параметров, это вероятно не то к чему вы обычно привыкли, но крайне узнаваемый интерфейс и на освоение всей программы уйдёт не больше пары часов. Но не ждите, что на ранней альфе обойдётся без багов, двигать коллайдеры в реалтайме не получится, приводит к нестабильности.

Но судя по демонстрациям, артисты смогли выжать намного больше используя кастомные форсы, коллайдеры и анимированные параметры.
👍4
#vex #houdini #todayilearned #content

ТОП 10 эзотерических функций на VEX которыми вы скорей всего никогда не пользовались и вряд ли будете, но они есть и ждут своего часа:

string pluralize(string noun)

В английском языке существует множество нестандартных правил образования множественного числа существительных. Эта функция правильно создаст окончание множественного числа для входной строки. Используется только конец входной строки.

И часто ли вам приходилось заниматься подобным?

void sleep(int milliseconds)

Да, в вексе есть функция которая позволяет "уснуть" какому-то скоупу кода на определённое время. Отличный стимул показать, что работа выполняется медленно, а значит процесс "тяжёлый".

int file_stat(string filename, int &stat_data[], ...)

Из векса, внезапно, можно проверить состояние файла используя соответствующие атрибуты: .st_size. .st_sizemb, .st_mtime, isValid(), isFile(), isDir(), isRead(), isWrite(), isExecute()
// -Вместо Python? 
// -Да.
#include <file.h>

@Cd = {1,0,0};
stat s = file_stat("$HH/pic/Mandril.pic");
if (s->isValid()){
@Cd = {0,1,0};
}


int shl(int a, int bits) 
int shr(int a, int bits)
int shrz(int a, int bits)

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

void print_once(string msg, ...)
Печать cообщения в stdout только один раз, даже в цикле.
// Only print "Hello world" one time
// Хватит засорять stdout
for (int i = 0; i < 100; ++i)
print_once("Hello world\n");


<type>[] slice(<type>s[], int start, int end)

Нарезает подстроку или подмассив строки или массива.
Функция выполняет эквивалентных код, что и синтаксис слайсов value[start:end:step]. Тогда зачем это нужно?

float pack_inttosafefloat(int i) 
int unpack_intfromsafefloat(float f)

Это нужно для случаев, когда вам нужно представить потенциально большое число int в виде float.
Звучит как задача с которой вы столкнётесь раз в десяток лет.
Целые числа в диапазоне abs(i) <= (2^24) = 16,777,216 будут представлены точно такими числами с плавающей запятой.
🔥4
Forwarded from Segment@tion fault
This media is not supported in your browser
VIEW IN TELEGRAM
Всегда мечтал так пройти Марио
🔥52
#blender #vulkan #opensource

Blender ищет помощи у сторонних разработчиков и пользователей в тестировании своего эксперимен...

Да, Blender начал тестирование своего бэкэнда построенного на Vulkan, но есть нюанс:
This change though isn't about using the Vulkan API for the Cycles engine.

Так же важный момент упущенный в статье:
Wayland/GNOME can crash on startup on certain systems.This is under investigation, but most likely requires implementing a Blender specific libdecor. In the near term we might disable decoration when using Wayland/Blender.

А вы говорите, что Blender бесплатный 😁
Blender devs bring shame to FOSS, selling their product to force 3d artists into purchasing overpriced proprietary technology.

https://habr.com/ru/news/899022/
😁1
#meme #houdini

As long as it works..
😁9🔥2
#houdini #sneakpeek #fmx #fx

https://www.sidefx.com/houdini-hive/fmx-2025

Sneak Peek: H21 ML Infrastructure & Volume Upscaling

Get a glimpse into the future of ML in Houdini 21 and dive into a case study on how the new tools enable simplified training workflows. Learn how to approach a project like Volume Upscaling as an end to end solution inside of Houdini.


Эта задача уже давно летает в воздухе и пора бы было кому-то начать, и кажется за волюмами новый контекст прячется 👀 для ML (но это не точно). Но подождём, что покажут.
5
#houdini #amd #intel #requirements

New x86-64 processor requirements for Houdini 21

Начиная с H21 минимальный, используемый уровень архитектуры x86-64 для Linux и Windows теперь v3. Это позволяет использовать больше возможностей, предоставляемых современными процессорами, таких инструкций AVX, AVX2 и аппаратная поддержка плавающей точки с половинной точностью.
К сожалению, чтобы воспользоваться новыми возможностями, нужно отказаться от поддержки некоторых старых процессоров. Поэтому, начиная с H21, Houdini больше не будет совместим с процессорами, не поддерживающими x86-64-v3, например, процессорами Intel старше Haswell с 2013 года или процессорами AMD старше Excavator с 2015 года. Сборки macOS x86-64 будут по-прежнему создаваться для v2.

Вы можете проверить, поддерживает ли ваш процессор инструкции AVX и AVX2.

Пользователи Linux могут использовать следующую команду для проверки поддержки:
grep '^flags' /proc/cpuinfo | sort -u | grep -c avx && echo "Supported"


Пользователи Windows могут использовать такие инструменты, как CPU-Z, для проверки поддержки этих инструкций.

What does x86-64-v3 mean?

Если вы предпочитаете читать, то в RedHat есть статья об экспериментах с использованием набора инструкций в RHEL10. Из этой статьи видно, что большинство новых инструкций поддерживают некоторые улучшения для векторов и манипулирования битами. Кроме того, это позволяет использовать более гибкие инструкции, которые оставляют свои результаты в явном регистре назначения вместо одного из регистров операнда.

Конечно, все это не имеет значения для высокоуровневого кода, если компилятор не поддерживает его. Однако gcc версии 12 автоматически векторизует код при использовании флагов оптимизации -O2.

Таким образом, за исключением процессоров Atom, у вас должно быть очень старое оборудование, чтобы не иметь инструкций v3.
👍6🤔1
#houdini #upgrade

Кажется с релизом H21 так же SideFX решили изменить свой план обновления.

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

Это значит, что для вас релизы перестанут быть удивительными и томными, а вопросы: "когда они починят вьюпорт!!", "что там с интеграцией нейросетей", а "солярис так и будет тормозить?" уйдут на второй план.

Оно вам надо?

Основной упор который они делают на том, что у пользователей будет:

- Поддержка по электронной почте; для платных пользователей обещают первоклассную и качественную поддержку, для бесплатных - думайте.

- Для контролёров будет прямой доступ к базе данных баг репортов; можно будет по своему тикету отлеживать прогресс и "пинать поддержку" вопросами: "а когда-когда?", "что там по срокам?", "какие прогнозы? "и по-хорошему бы уже надо к вечерку показать!"

- Поддержка обещает помощь на ранних этапах производства, т.е. они помогут вам разработать прототип решения самых сложных проблем в Houdini. С обменом сцен (только крякнутый hip не посылайте) и тесным взаимодействием.

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

https://www.sidefx.com/support-programs/annual-upgrade-plan/
🔥3🤔2😁1