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

Different types of VEX programmers.
😁82🤔1
#houdini #endava #ai

SideFX partners with Endava

Компания Endava, партнер по предоставлению технологических услуг нового поколения, чей подход, основанный на AI, сочетает в себе передовые технологии и глубокий отраслевой опыт, объявляет о стратегическом партнерстве с SideFX, чтобы революционизировать создание и развертывание синтетических данных для приложений AI и ML в области Computer Vision.

Благодаря этому партнерству художники и разработчики получат выгоду от возможности генерировать очень разнообразные и реалистичные наборы данных в Houdini которые имитируют сложные среды реального мира.

Наверное, у вас будет вопрос, а где это можно использовать? Вот был отличный доклад на эту тему: Generating Synthetic Data in Unique Spectrums

Набор инструментов будет доступен Houdini через SideFX Labs. Вы также можете загрузить примерный файл из библиотеки контента, чтобы изучить рабочий пример.

https://www.sidefx.com/industries/synthetic-data/
👀5🤔2
#history #render #drawings

Задолго до Мантры.

Так 500 лет назад выглядели одни их первых "рендеров" без пассов (потому что сразу работали на финал) с использованием технологии которую в современном мире называют трассировкой луча.

На одной из иллюстраций 1525 года трактата (Underweysung der Messung) художник рисует портрет джентльмена, рисуя на листе стекла в рамке. Художник смотрит одним глазом, а положение его глаз фиксируется с помощью глазка в маске на регулируемой подставке. Расстояние между картинной плоскостью и художником строго ограничено расстоянием вытянутой руки: оно не может превышать 40 сантиметров.

Причина, по которой художник должен смотреть одним глазом, заключается в том, что перспективы, получаемые двумя глазами, немного различаются. Рисунок на стекле, выполненный левым глазом, будет слегка смещен относительно рисунка, выполненного правым глазом. Художник должен держать голову неподвижно, чтобы его открытый глаз оставался на месте, художник видит предмет и на котором он рисует.
6
#houdini #meme

Houdini moment.
😁14
This media is not supported in your browser
VIEW IN TELEGRAM
Когда долго спал, а потом случайно услышал старый трэк Fatboy Slim 2001 года..
😁16
#houdini #merch

SideFX снова взялся за продажу мерча. Может кому-нибудь нужны зимние подштаники с лого Houdini? Или майка с головой свиньи? Это абилка +20% к работе в SOP контексте. Я бы купил майку с вьюпортом на VK, но главное, что SideFX соблюдает все повестки и модели у них интернациональные.

http://sidefxhoudini.myshopify.com/
😁5
#siggraph #microsoft #render #neural #pipeline

Microsoft на Siggraph2025 презентовала новый конвейер нейро-рендеринга RenderFormer который напрямую рендерит изображение из триангулируемого представления сцены с полными эффектами глобального освещения и это не требует предварительной тренировки и тонкой настройки каждой сцены.

Традиционный графический конвейер рендера виртуальной сцены имитирует физические процессы "передачи света" (light transport) через всю сцену. Вместо этого рендер основаный на нейро-движках пропускает эти этапы и вместо этого учится предсказывать поведение передачи света. Однако большинство нейронных методов рендеринга часто достигают этой цели путем чрезмерной подгонки модели к фиксированной сцене.

В связи с этим возникает интригующий вопрос, можно ли обучить не модель рендеринга, а конвейер рендеринга?

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

И пока RenderFormer имеет органичение на количество источников света, положение камеры, поликаунт модели, его подход обобщается лучше чем предыдущие методы нейро-рендеринга.

Карма ВСЁ? Не сегодня.

https://microsoft.github.io/renderformer/
🔥42
#houdini #snippet #code #vex

Любите вексить как Йода?
if (5 == x){...}

Или любите взаимоисключающие, трудноуловимые баги?
if (x > 5 && 5 > x){...}

Будем c этим бороться, используя ментальные и эмперические способы создания программ.

Это небольшой перевод статьи про "Сравнительный анализ" операторов сравнения. Этим способом можно немного улучшить читаемоесть и упростить отладку даже там где написано всего 2 строчки кода.

Большинстов языков программирования предоставляют 6 операторов сравнения: <, <=, >, >=, =, !=

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

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

Числовая линия это отличный, интуитивный способ визуализировать сравнения, если вы упорядочеваете их от меньшего к большему: A B C D, вы получите интуитивное представление об упорядочивании без использования операторов сравнения. Вы также подключаете свою существующую интуицию как функция sort упорядочивает массивы в порядке возрастания.

Итак, в качестве правила первого порядка:
Отдавайте предпочтение < и <=, а не > и >=, а при использовании сравнений используйте интуицию числовой линии.

Некоторые примеры:

Проверяет, находится ли точка внутри интервала
lo <= x and x <= hi

Проверяет, находится ли точки за пределами интервала
x < lo or hi < x

Сегмент a находится внутри сегмента b:
b.start <= a.start и a.end <= b.end

Сегменты a и b непересекающиеся (либо a находится слева от b, либо a находится справа от b):
a.end < b.start or b.end < a.start

Особым случаем упорядоченных сравнений является проверка того, что индекс находится в границах массива. Здесь правило о числовой линии работает вместе с другим важным правилом:
Инварианты состояния положительны

Инвариант индексирования записывается следующим образом index < xs.len(), и вы должны предпочесть такую запись.

Конкретно,
if (index >= xs.len){...}
трудно сперва понять это правильно, потому что он пишет обратное инварианту и включает в себя дополнительное мысленное отрицание (это тонко - хотя и нет буквального оператора отрицания, вы абсолютно точно думаете об этом как об отрицании инварианта).

Если возможно, код следует переделать так:
if (index < xs.len){
} else {
}


Источник:
https://matklad.github.io/2023/09/13/comparative-analysis.html
3
#houdini #meme

Свежие туторы.

Я понимаю конечно, что в Гудини всё ещё существует высокий порог входа, но не настолько же..
😁10