#vex #python #programming
Пост вдохновлённый небольшой статьёй A list of ternary operators о разнообразии тернарных операторов.
В
Посмотрим на простую запись ветвления с помощью
Ассемблер (LLVM IR ) у этого куска кода такой:
Глазам с непривычки может быть тяжело здесь увидеть осмысленный код, но он не сложный.
Здесь мы видим в основном метки, базовые инструкции и вызов
Но есть ли разница в том, что делает тернарный оператор или это будет тот же самый код? Оказывается, что нет.
Быстрее ли этот работает? Возможно, но как обычно всегда нужно делать тесты профилирования на производительность. Удобнее ли это? Однозначно да, особенно когда нужно результат присвоить тут же переменной.
Однако, если покопаться в документации по функциям
Которая будет генерить точно такой же код как и выше при использовании тернарника.
Разница между
Мне кажется подход с
Пост вдохновлённый небольшой статьёй A list of ternary operators о разнообразии тернарных операторов.
В
VEX или Python наш тернарный оператор ? : называется тернарным потому что принимает 3 аргумента и право называться так стало монопольным поскольку других операторов такого плана не было, но VEX так же имеет ещё один непопулярный способ записать тернарное выражение и мне кажется он проще. Посмотрим на простую запись ветвления с помощью
if:int res;
if(10 > 5){
res = 42;
}else{
res = 123;
}
Ассемблер (LLVM IR ) у этого куска кода такой:
; Function Attrs: alwaysinline nounwind
define private void @__vex_snippet() #0 {
__llvm_entry:
%return = call i64 @"gt@III"(i64 10, i64 5)
%0 = icmp ne i64 %return, 0
br i1 %0, label %true, label %false
true:
store i64 42, i64* %_bound_res
br label %end
false:
store i64 123, i64* %_bound_res
br label %end
end:
ret void
}
Глазам с непривычки может быть тяжело здесь увидеть осмысленный код, но он не сложный.
Здесь мы видим в основном метки, базовые инструкции и вызов
call, функция сравнения чисел на больше call i64 @"gt@III"(i64 10, i64 5), а ниже идёт просто выбор бранча в зависимости от результата.Но есть ли разница в том, что делает тернарный оператор или это будет тот же самый код? Оказывается, что нет.
int res = 10 > 5 ? 42 : 123;
; Function Attrs: alwaysinline nounwindЗдесь мы уже не прыгаем по бранчам, а используем инструкцию
define private void @__vex_snippet() #0 {
__llvm_entry:
%return = call i64 @"gt@III"(i64 10, i64 5)
%0 = icmp ne i64 %return, 0
%. = select i1 %0, i64 42, i64 123
store i64 %., i64* %_bound_res
ret void
}
select, она используется для выбора одного значения на основе условия, без ветвления на уровне IR.Быстрее ли этот работает? Возможно, но как обычно всегда нужно делать тесты профилирования на производительность. Удобнее ли это? Однозначно да, особенно когда нужно результат присвоить тут же переменной.
Однако, если покопаться в документации по функциям
VEX, а так же коде стандартной библиотеки окажется, что мы так же можем вызывать эту функцию select прямо из сниппета самого Wrangle:int res = select(10 > 5, 42, 123);
Которая будет генерить точно такой же код как и выше при использовании тернарника.
Разница между
select и утвержением if заключается в том, что select оценивает свои аргументы независимо от значения условия. Разумное использование select позволяет избежать сравнений, что позволяет преобразовывать большие участки кода в нативный код.Мне кажется подход с
select может быть легче для восприятия и допускает меньше ошибок при написании кода поскольку это выглядит как ещё одна функция, а не какой-то особый синтаксический сахар который нужно запоминать, ну а выбор всегда остаётся за пользователем.Buttondown
A list of ternary operators
Why let conditionals keep hogging the spotlight?
🔥4👍2
Forwarded from Nord3DНИОКР
boosty.to
НЕ МАТЕМАТИКА от НЕ МАТЕМАТИКА для НЕ МАТЕМАТИКОВ - Alexey Gorelov
Приветствую, дорогие потенциальные слушатели!
Небольшой анонс учебного курса по основам математики и программирования в контексте компьютерной графики.
Моя дикция, увы, неидеальна, как и условия аудиозаписи. В дальнейшем, видео-лекции будут снабжены…
Небольшой анонс учебного курса по основам математики и программирования в контексте компьютерной графики.
Моя дикция, увы, неидеальна, как и условия аудиозаписи. В дальнейшем, видео-лекции будут снабжены…
🔥11
#gameengine #opensource #github
Кто хотел потестить какой-то другой движок кроме
Теперь
https://habr.com/en/companies/nau_engine/news/861316/
Кто хотел потестить какой-то другой движок кроме
Unity или UE с плотной поддержкой USD в том числе? Теперь
Nau Engine вышел в бету с открытыми исходниками. И это отличный повод покопаться в структуре кода.https://habr.com/en/companies/nau_engine/news/861316/
Habr
Nau Engine Beta
Друзья, свершилось! Мы рады объявить о том, что beta-версия Nau Engine доступна для всех разработчиков без исключения. Nau Engine — open source-проект под лицензией 3-clause BSD, что значит, что без...
🔥2
#houdini #apex #rigging
Ресурс пока конечно суховат, но можно прочитать про общие концепции, идеи, более простыми словами для артиста чем документация и не сильно углубляясь в детали чтобы сложилось представление об этом контексте.
https://tokeru.com/cgwiki/HoudiniApex.html
( )
( )\ ) ( /(
)\ (()/(( )\())
((((_)( /(_))\ ((_)\
)\ _ )\(_))((_)__((_)
(_)_\(_) _ \ __\ \/ /
/ _ \ | _/ _| > <
/_/ \_\|_| |___/_/\_\Matt Estela выложил WIP по APEX на своём ресурсе это взгляд дженералиста на APEX, а не как профессионального сетапщика, но и тем более интересно прочитать про этот взгляд со стороны. Ресурс пока конечно суховат, но можно прочитать про общие концепции, идеи, более простыми словами для артиста чем документация и не сильно углубляясь в детали чтобы сложилось представление об этом контексте.
https://tokeru.com/cgwiki/HoudiniApex.html
Tokeru
Apex - Houdini and CG tips
Houdini and CG tips and stuff by Matt Estela
👍3
#pipeline #ffmpeg #opensource
Иногда из какого-то шота или видео требуется сделать нарезку для превью через определённое количество кадров чтобы по нему можно было понять всё содержимое от начала до конца.
В очень короткой и наглядной статье показано как это сделать без шума и пыли всего лишь с помощью
https://steelcm.com/blog/generating-video-sprites-using-ffmpeg/
Иногда из какого-то шота или видео требуется сделать нарезку для превью через определённое количество кадров чтобы по нему можно было понять всё содержимое от начала до конца.
В очень короткой и наглядной статье показано как это сделать без шума и пыли всего лишь с помощью
ffmpeg и кстати это хороший кандидат на то чтобы этот скрипт можно было обернуть в TOP ассет, например с помощью Generic Generator или украсть параметры и вставить в аналогичную ноду ffmpeg и пользоваться прямо из Houdini.https://steelcm.com/blog/generating-video-sprites-using-ffmpeg/
👍2
#openusd #maya #animation
Мм, что-то вкусное и альтернативное наконец-то для майки выкатили.
Разработанный на базе нашей новой платформы приложений
Мы полностью привержены поддержке индустрии визуальных эффектов и анимации с помощью
https://shapefx.app/
Мм, что-то вкусное и альтернативное наконец-то для майки выкатили.
ShapeFX Loki - это наше приложение для создания контента нового поколения DCC, созданное специально для OpenUSD. Думайте об этом как о USDView на стероидах - расширенном наборе инструментов, разработанном для того, чтобы выходить за рамки простого просмотра и предлагать мощные функции для оптимизации рабочих процессов с OpenUSD.Разработанный на базе нашей новой платформы приложений
OpenDCC (более подробная информация будет представлена в ближайшее время), ShapeFX Loki обладает функциями и адаптивностью необходимыми для решения сложных задач современных производственных конвейеров.ShapeFX Loki доступен для публичного скачивания с сегодняшнего дня! Запуск с поддержкой Windows, скоро появятся версии для macOS и Linux!Мы полностью привержены поддержке индустрии визуальных эффектов и анимации с помощью
ShapeFX Loki. https://shapefx.app/
🔥1💩1
#aoc #day01 #challenge #contest #vex
Декабрь начался, а значит время попрактиковаться в решении паззлов на AoC ⚡️. Никогда не участвовал в них на
Первый день довольно простой должен быть и не сложный на самом деле, но на всякий решение кинул на гист если будет кому интересно и захочет сравнить со своим.
GitHub Gist:
https://gist.github.com/alexwheezy/690f31912e752ca1da89f38b7d8bb861
▄▄▄ ▒█████ ▄████▄
▒████▄ ▒██▒ ██▒▒██▀ ▀█
▒██ ▀█▄ ▒██░ ██▒▒▓█ ▄
░██▄▄▄▄██ ▒██ ██░▒▓▓▄ ▄██▒
▓█ ▓██▒░ ████▓▒░▒ ▓███▀ ░
▒▒ ▓▒█░░ ▒░▒░▒░ ░ ░▒ ▒ ░
▒ ▒▒ ░ ░ ▒ ▒░ ░ ▒
░ ▒ ░ ░ ░ ▒ ░
░ ░ ░ ░ ░ ░
░ Декабрь начался, а значит время попрактиковаться в решении паззлов на AoC ⚡️. Никогда не участвовал в них на
VEX, но это может быть довольно забавный и интересный опыт учитывая, что в VEX у нас ограниченный набор структур данных и готовых алгоритмов. Первый день довольно простой должен быть и не сложный на самом деле, но на всякий решение кинул на гист если будет кому интересно и захочет сравнить со своим.
GitHub Gist:
https://gist.github.com/alexwheezy/690f31912e752ca1da89f38b7d8bb861
👍1😁1
#aoc #day02 #challenge #contest #vex
Второй день зашёл уже с говнолина 🙂 Однако самая полезная часть этого дня в этом контесте функция, итератор
GitHub Gist:
https://gist.github.com/alexwheezy/c8cd4af3bbd86fcd20a5fa520739d770
▄▄▄ ▒█████ ▄████▄
▒████▄ ▒██▒ ██▒▒██▀ ▀█
▒██ ▀█▄ ▒██░ ██▒▒▓█ ▄
░██▄▄▄▄██ ▒██ ██░▒▓▓▄ ▄██▒
▓█ ▓██▒░ ████▓▒░▒ ▓███▀ ░
▒▒ ▓▒█░░ ▒░▒░▒░ ░ ░▒ ▒ ░
▒ ▒▒ ░ ░ ▒ ▒░ ░ ▒
░ ▒ ░ ░ ░ ▒ ░
░ ░ ░ ░ ░ ░
░ Второй день зашёл уже с говнолина 🙂 Однако самая полезная часть этого дня в этом контесте функция, итератор
window которая пишется легко и бывает частенько нужна когда требует плотно поработать с парами соседних элементов в буфере. Она возвращает слайс со "скользящим окном" из буфера. "Скользящее окно" имеет длину size и на каждой итерации перемещается вперед на величину advance. Возможно будет кому-то она будет полезна, адаптировать её не только под строки не сложно, перегрузить по параметру функции можно на int[].void window(string input; int size, advance){
if(size < 1 || advance < 1){
error("Assert, size or advance must be greater zero");
return;
}
if(len(input) < size){
// Maybe return the whole string?
// Or something else
return;
}
int l = 0;
int r = len(input);
while(l < r){
string slice = slice(input, l, l + size);
// something code
if(r - l <= size) break;
l += advance;
}
}
// Tests
// Size
// window("abcdefg", 1, 1); // a, b, c, d, e, f, g
// window("abcdefg", 2, 1); // ab, bc, cd, de, ef, fg
// window("abcdefg", 3, 1); // abc, bcd, cde, def, efg
// window("abcdefg", 4, 1); // abcd bcde cdef defg
// window("abcdefg", 5, 1); // abcde bcdef cdefg
// window("abcdefg", 6, 1); // abcdef bcdefg
// Advance
// window("abcdefg", 2, 3); // ab de g
// window("abcdefg", 3, 3); // abc, def, g
// window("abcdefg", 1, 2); // a, c, e, g
// window("abcdefg", 1, 3); // a, d, gGitHub Gist:
https://gist.github.com/alexwheezy/c8cd4af3bbd86fcd20a5fa520739d770
Gist
AoC 2024 VEX Language
AoC 2024 VEX Language . GitHub Gist: instantly share code, notes, and snippets.
#3december #meme #houdini
С праздником!
Да, в
Вот и думайте! 🙂
С праздником!
Да, в
Houdini на данный момент 10 отдельных маленьких и не очень ЯП на которых можно что-то программировать, некоторые мёртвые или почти мёртвые, Hnoscript Lang и Hnoscript Expression имеют разный синтаксис, многие не считают Hnoscript Expression как таковым языком, а больше языком выражений в духе $FF > 10, однако у него тоже есть control flow: {float out = 0; for (i = 0; i < 10; i++) {out += i;} return out;}, место есть и для джаваскрипта, APEX Script похож на Python, но со статической, строгой типизацией, но вообще учитывая любовь сайдам к С-подобным языкам он не последний..или последний(?)Вот и думайте! 🙂
🎉3❤2
#houdini #python #qt #beta
Да, так получилось, что
Поэтому в
Одна из проблем решалась с помощью отключения песочницы
Однако, я всё равно не понял почему они решили всех предупредить об этом вместо того чтобы тихо допилить всё к
Тестирование продукта становится всё более открытым 🙂
Да, так получилось, что
SideFX из-за более короткого цикла разработки в 20.5 (в чём они сами признались, а иначе бы 20.5 пришлось бы двигать намного дальше от релиза) не успели перейти на следующей стандарт библиотеки PyQt6 вместе с VFX Reference Platform. Поэтому в
Houdini 20.5 мы видим достаточно много ошибок в Python Panels и других инструментах. Одна из проблем решалась с помощью отключения песочницы
QTWEBENGINE_CHROMIUM_FLAGS='--no-sandbox' для хрома, но на свой страх и риск и вот теперь они анонсировали новую бету с PyQt6 в которой будут решать все потенциальные проблемы. Однако, я всё равно не понял почему они решили всех предупредить об этом вместо того чтобы тихо допилить всё к
H21 когда всех и так злит, что H20.5 оказалась намного менее стабильная чем 20.0 и 19.5, а тут ещё и заявления, что может всё равно что-то не работать 🤡Тестирование продукта становится всё более открытым 🙂
👍2👌2😁1😢1🤡1
This media is not supported in your browser
VIEW IN TELEGRAM
#houdini #meme #python #noscripting
- Хорошо, я подниму тебе зарплату вдвое, но только если в Network Editor когда-нибудь пойдёт управляемый снег..
- Ни слова больше!
- Хорошо, я подниму тебе зарплату вдвое, но только если в Network Editor когда-нибудь пойдёт управляемый снег..
- Ни слова больше!
😁10🔥2💯1
Media is too big
VIEW IN TELEGRAM
#houdini #help #patching #estereggs
Начиная с
Но раньше ведь это работало...
Исследуем проблему. При нажатии на кнопку
Дело в том, что согласно стандарту
Не будем ждать пока они доберутся до этого тикета и сами "пропатчим" методы запроса в роутере и загрузчике и надо изменить лишь метод запроса на
p.s: в конце видео есть пасхалка, пока разбирался с роутингом, увидел, что там есть эндпоинт (
Начиная с
H20.5 сломалась загрузка примеров через внешний браузер устанавливаемый переменной HOUDINI_EXTERNAL_HELP_BROWSER, наверняка с этим кто-то так же сталкивался. Но раньше ведь это работало...
Исследуем проблему. При нажатии на кнопку
Load из документации мы посылаем на веб-сервер запрос PUT https:/127.0.0.1:xxxx/_load_example к нашему эндпоинту _load_example, однако он стабильно возвращает 404 Not Found. Дело в том, что согласно стандарту
HTML единственные допустимые значения для атрибута method - get и post, соответствующие HTTP-методам GET и POST, поэтому PUT не будет работать с атрибутом метода HTML.Не будем ждать пока они доберутся до этого тикета и сами "пропатчим" методы запроса в роутере и загрузчике и надо изменить лишь метод запроса на
POST и всё! p.s: в конце видео есть пасхалка, пока разбирался с роутингом, увидел, что там есть эндпоинт (
allicons) ведущий на все иконки в H. Кому не хватало иконок для своих инструментов в noscript? 🙂🎉4🙏1
#gaffer #katana #usd #opensource #foundry
Хотя проект
Новое из отчёта:
-
-
Какой у этого может быть use case? В отчёте они показывают как с помощью операторов можно в исходном изображении на примере шота из фильма Interstellar плашки по глубине расставить для композа в автоматическом режиме.
А так же большое количество манипуляций для фильтрации изображений, стилизации и т.д.
Так же вчера релизнулась Katana 8.0, теперь она поставляется с полной поддержкой - к
Теперь артисты могут легко конвертировать данные
Это означает, что артисты могут использовать инструменты которые они любят в
Вообще любопытно конечно насколько быстро происходит конвертация данных туда и обратно и конечно каким функционалом теперь обладает
Хотя проект
Gaffer и опенсорсный тем не менее к своим пользователям разработчики активно прислушиваются и в последнем отчёте Gaffer User Group - December 2024 показали много обновлений по части UI/UX, стало местами намного удобней и практичней. Новое из отчёта:
-
Gaffer RenderMan, да, потихоньку начали интеграцию ещё одного рендера для своего приложения помимо: 3Delight, Arnold, Cycles, работы предстоит ещё много, однако какие-то базовые вещи уже сделаны.-
Gaffer ML. Ещё одна современная гонка в технологиях это поддержка ML (Machine Learning) операторов для работы. Сделали небольшие примеры на ONNX модели. Какой у этого может быть use case? В отчёте они показывают как с помощью операторов можно в исходном изображении на примере шота из фильма Interstellar плашки по глубине расставить для композа в автоматическом режиме.
А так же большое количество манипуляций для фильтрации изображений, стилизации и т.д.
Так же вчера релизнулась Katana 8.0, теперь она поставляется с полной поддержкой - к
USD и обратно - внутри приложения.Теперь артисты могут легко конвертировать данные
Katana в родные данные USD с помощью новой ноды KatanaToUsd. Это означает, что артисты могут использовать инструменты которые они любят в
Katana и применять их к данным в USD. Без необходимости переписывать инструменты конкретно для USD. Вообще любопытно конечно насколько быстро происходит конвертация данных туда и обратно и конечно каким функционалом теперь обладает
Katana для работы с USD.🔥1
#aoc #houdini #contest #vex #hdk #python #top #expression #solaris #dop
Увидел очень прикольный, японский ресурс, где пользователи уже который год соревнуются в решении задач
https://qiita.com/advent-calendar/2024/houdini
Увидел очень прикольный, японский ресурс, где пользователи уже который год соревнуются в решении задач
Advent of Code используя Houdini. Можно почерпнуть много новых, приёмов работы и подходов для самых разных контекстов. Автопереводчики в целом справляются, поэтому проблем с пониманием быть не должно.https://qiita.com/advent-calendar/2024/houdini
Qiita
Houdini - Qiita Advent Calendar 2024 - Qiita
Calendar page for Qiita Advent Calendar 2024 regarding Houdini.
🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
#houdini #vex #formatter #noscripting #python #devlog
Концепт этого маленького проекта возник давно, когда я увидел, что артисты пишут в "сниппетах" в очень разном стиле, как удобно им, однако визуально выглядит хорошо когда код "ровный" и выдержанный в едином стиле везде. Я недолюбливаю внешние редакторы кода для этого поскольку это выглядит громоздко и окна сниппета мне всегда хватало.
В
Короче говоря, мы хотим из такого:
Сделать такое:
В первой итерации проекта просто "прикрепим" фоном clang-format с гугловским стилем форматирования (по умолчанию) кода на языке C к сниппету и с колбэком на обновление сниппета, когда он меняется - код форматируется, по демонстрации видно, что уже неплохой результат получается.
Концепт этого маленького проекта возник давно, когда я увидел, что артисты пишут в "сниппетах" в очень разном стиле, как удобно им, однако визуально выглядит хорошо когда код "ровный" и выдержанный в едином стиле везде. Я недолюбливаю внешние редакторы кода для этого поскольку это выглядит громоздко и окна сниппета мне всегда хватало.
В
VEX к сожалению нет встроенного авто-форматирования кода, а SideFX не оставила спецификаций или стандартов которых можно придерживаться, поэтому все пишут по-разному. Короче говоря, мы хотим из такого:
if(1)
{
doSomething(1);
}
else if(2)
{
doSomething(1, 2);
}
Сделать такое:
if (1) {
doSomething(1);
} else if (2) {
doSomething(1, 2);
}В первой итерации проекта просто "прикрепим" фоном clang-format с гугловским стилем форматирования (по умолчанию) кода на языке C к сниппету и с колбэком на обновление сниппета, когда он меняется - код форматируется, по демонстрации видно, что уже неплохой результат получается.
🔥1🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
#houdini #meme
Ну чё, народ!? Погнали, нахуй! (c)
Посылаю баф, на то чтобы читатели перестали смотреть базу по VEX обновлять постоянно драйвера, стебать мпм солвер за скорость и разобрались чем саблейер отличается от референса.
Не боялись прыгать в новом году в неизведанное, неосвоенное, новое, всё равно кому-то из вас придётся 🙂..и конечно быть/стать первооткрывателями и ведущими специалистами в своих областях. И да прибудет с вами Джефф Вагнер.
Ну чё, народ!? Погнали, нахуй! (c)
Посылаю баф, на то чтобы читатели перестали
Не боялись прыгать в новом году в неизведанное, неосвоенное, новое, всё равно кому-то из вас придётся 🙂..и конечно быть/стать первооткрывателями и ведущими специалистами в своих областях. И да прибудет с вами Джефф Вагнер.
❤14🎉5👍2
#houdini #meme
На тему модных сейчас "ред флагов", но на рабочих Гудиньщиков, поехали:
- он серьёзно относится к дизайну рабочего окружения: меняет тёмную тему оформления на белую, а лучше Pro, кастомизирует дефолтные шрифты с панелями, меняет рабочий воркспэйс с
- "по-сеньорски" сохраняет сцену (для усиления эффекта иногда с матом) несколько раз подряд чтобы точно наверняка
- считает, что перезагрузка ПК реально всегда помогает
- назначает своей приоритетной задачей написать (обязательно кастомный) "коллект для сцены" которого ещё никто не написал
- коллекционирует платные курсы, а смотрит только бесплатные
- умышленно и сильно прибедняется: показывает красивый результат, но просит не судить строго потому что он на "коленке набросал" его за пару вечеров (а на самом деле 3 месяца его пилил..)
- умышленно добивается снисхождения: показывает очень хреновый результат, но просит не судить строго потому что он на "коленке набросал" его за пару вечеров (а на самом деле 3 месяца его пилил..)
- любит всё резюмировать словами "там писать короче надо..."
- поддерживает разговор на тему, что "
- заводит свой блог чтобы всем показывать незаконченные тесты
Вот и думайте.. 🙂
На тему модных сейчас "ред флагов", но на рабочих Гудиньщиков, поехали:
- он серьёзно относится к дизайну рабочего окружения: меняет тёмную тему оформления на белую, а лучше Pro, кастомизирует дефолтные шрифты с панелями, меняет рабочий воркспэйс с
Build на Technical, потому что там есть слово Technical, а это как бы сразу всем намекает, что ты не джун еб?ный..- "по-сеньорски" сохраняет сцену (для усиления эффекта иногда с матом) несколько раз подряд чтобы точно наверняка
- считает, что перезагрузка ПК реально всегда помогает
- назначает своей приоритетной задачей написать (обязательно кастомный) "коллект для сцены" которого ещё никто не написал
- коллекционирует платные курсы, а смотрит только бесплатные
- умышленно и сильно прибедняется: показывает красивый результат, но просит не судить строго потому что он на "коленке набросал" его за пару вечеров (а на самом деле 3 месяца его пилил..)
- умышленно добивается снисхождения: показывает очень хреновый результат, но просит не судить строго потому что он на "коленке набросал" его за пару вечеров (а на самом деле 3 месяца его пилил..)
- любит всё резюмировать словами "там писать короче надо..."
- поддерживает разговор на тему, что "
SideFX уже как бы кал", но не cможет объяснить почему- заводит свой блог чтобы всем показывать незаконченные тесты
Вот и думайте.. 🙂
😁15🤡3
#houdini #vex #cghub #opensource #github
Прямо перед новым годом я законтрибьютил на CGHub оригинальную статью
Я перенёс эту статью полностью в формат
Теперь эту статью намного приятней читать прямо в браузере, она нисколько не потеряла в своей актуальности, такие вещи не устаревают, но самое главное, что теперь её расширять и исправлять стало удобней через PR на
Так, что не стесняйтесь вносить свой вклад и наполнять хаб полезным контентом!
https://pedohorse.github.io/cg-community-hub/houdini/vex
Прямо перед новым годом я законтрибьютил на CGHub оригинальную статью
Pedohorse на тему продвинутого и базового VEX'a, это тот самый труд который он выкладывал ещё в Google Docs, наверняка много кто про это помнит или слышал, видел.Я перенёс эту статью полностью в формат
Markdown и немного дополнил, то, что сам знал или являлось новым для VEX, например использование "структур на месте". Теперь эту статью намного приятней читать прямо в браузере, она нисколько не потеряла в своей актуальности, такие вещи не устаревают, но самое главное, что теперь её расширять и исправлять стало удобней через PR на
GitHub используя форк основного репозитория.Так, что не стесняйтесь вносить свой вклад и наполнять хаб полезным контентом!
https://pedohorse.github.io/cg-community-hub/houdini/vex
❤11🔥4