назад

FAQ

Как оправить отчет об ошибке в Houdini

Cбор подробной информации о проблеме

Предоставление подробной информации об ошибке помогает разработчикам Houdini быстрее и точнее ее диагностировать и исправить. Чем больше информации вы дадите, тем быстрее будет найдено решение.

Информация, необходимая для отчета об ошибке:

Houdini about

Как запустить Houdini из консоли:

В этом случае Houdini будет выводить всю информацию о работе программы в консоль (stdout).

Использование HOUDINI_DSO_ERROR:

Установите переменную среды HOUDINI_DSO_ERROR=1 перед запуском Houdini. Это приведет к сохранению подробной информации об ошибках DSO в файл dso_error.log.

Использование HOUDINI_ERRORLOG_FILENAME:

Установите переменную среды HOUDINI_ERRORLOG_FILENAME=<имя_файла> перед запуском Houdini. Это приведет к сохранению журнала ошибок Houdini в файл с указанным именем.

Задать все переменные среды можно перед запуском Houdini в непсредственно в терминале выполнив последовательно команды:

Linux / MacOS:

  1. Откройте терминал.
  2. Перейдите в каталог с установленным Houdini.
  3. Установите переменную среды. Например, чтобы установить HOUDINI_DSO_ERROR=1, введите:
export HOUDINI_DSO_ERROR=1
export HOUDINI_ERRORLOG_FILENAME="~/houdini_error.log"
  1. Запустите Houdini:
# Linux
./houdini

#MacOS
/Applications/Houdini/HoudiniXX.XX/Houdini FX XX.XX.app/Contents/MacOS/houdini

Windows:

  1. Откройте командную строку.
  2. Перейдите в каталог с установленным Houdini.
  3. Установите переменную среды. Например, чтобы установить HOUDINI_DSO_ERROR=1, введите:
set HOUDINI_DSO_ERROR=1
set HOUDINI_ERRORLOG_FILENAME="C:/houdini_error.log"
  1. Запустите Houdini:
houdini.exe

Примечания:

Предоставление информации:

После сбора информации об ошибке вы можете предоставить ее разработчикам Houdini на форуме поддержки или через систему отслеживания ошибок.

Помните: Чем больше информации вы дадите, тем быстрее будет найдено решение.


Полезные экспрешны


FLIP: потеря объёма

Эта статья не завершена, помогите расширить её

В симуляциях жидкости FLIP-ом в резервуарах, определяемых коллайдерами, например жижа в стакане, порой возникают ситуации потери объема жидкости по мере симуляции. Существует ряд типичных причин, которые стоит проверить в первую очередь

Пример случая потери объема, связанного с не корректной настройкой grid scale описан в cgwiki

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


Группы, Как написать группу, чтобы то и сё

Всё и подробно описано в мануале, ничего не упущено, и нечего добавить. Здесь лишь приведены несколько примеров.

Например, группа, выделающая по маске строкового атрибута path:

@path==/smth/foo/*/hand?/

Это выделит:

но НЕ выделит:

Объединение условий:

@foo==1 @name==piece*

выделит примитивы, у который атрибут foo равен 1 ИЛИ у которых значение name имеет формат piece* (piece1 piece12 piecececece), т.е. это объединение двух групп

Если же нужно пересечение, т.е. выделить только примитивы, у которых оба условия верны одновременно:

логика: выделить все (*), кроме (^) тех, у которых foo НЕ равен 1, и кроме (^) тех, для которых условие @name==piece* НЕ выполняется (!)

Обратите внимание, синтаксис вида @foo=123 напоминает VEX, но никакого отношения к VEX не имеет. Этот факт часто путает новичков.

Еще раз: всё это описано в мануале, здесь просто приведены примеры


О конвертации hipnc в hip

Введение

В общем и целом, hipnc и hiplc (а так же hdanc и hdalc) - особые “ограниченные” подформаты hiphda) файлов, в которые сохраняются сцены гудини, работающего с некоммерческой и инди лицензией соответственно.

Данные форматы применяют ряд мер по усложнению прямой конвертации их в полноценные (hip и hda) форматы, однако в самом гудини имеется достаточно инструментов, чтобы эти самые ограничения частично или даже полностью обходить, по этому изначальная задумка авторов не совсем понятна.

Конвертация

Известно несколько методов

Полноценные методы:

Orbolt (hda)

Загрузка hdanc/hdalc на орболт автоматически конвертит ассеты в коммерческие

3rd party

Был найден тор-сайт, конвертящий любые некоммерческие хипфайлы или ассеты целиком и полноценно, без каких-либо ограничений: onion сайт

(доступ только через тор-броузер)

Частичные методы:

Гудини имеет функционал по генерации питон или хскрипт кода, воссоздающего заданный граф нод.

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

Самый простой способ использовать этот функционал - перетягивание нод на шелф:

этот способ ограниченный, например ассеты он никак не перегоняет, и в принципе гарантированно работать не будет.

Тот же самый трюк, но через hscript файл вместо шелфа:

В temp.cmd сохраняются хскрипт команды для создания нод сцены, затем эти команды выполняются в другой сессии гудини, воссоздавая в итоге исходную сцену

Ограничения:


Как работает houdini.env

Все строчки, начинающиеся с # являются комментариями и на работу файла не влияют. В остальном файл состоит из объявлений переменных в синтаксисе, схожем с set из csh, или объявлении переменных в bash.

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

синтаксис записи прост: Переменная=Значение
При этом между переменной и знаком =, знаком = и значением может быть сколько угодно пробелов (в отличии от bash и csh), значение будет считаться начинающимся с первого непробельного символа

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

Eсли в значении встречаются слова вида $SOMETHING - это команда интерпретатору подставить на место $SOMETHING значение переменной SOMETHING или пустоту, если такая переменная не задана. Это может быть или переменная заданная в одной из строк выше, или переменная среды системы. Заметьте, что все замены происходят ДО присвоения, так что в значении может встречаться и задаваемая переменная, которая будет замененая на текущее значение переменной. т.е.

DOG =cat
DOG=  $DOG is not a dog

в итоге значение DOG будет cat is not a dog

Чтобы отделить название заменяемой переменной от остальных слов - можно поместить название переменной в фигурные скобки: ${VARNAME}
Таким образом значение ${DOG}GINS для примера выше превратится в cat is not a dogGINS

Совет - всегда использовать фигурные скобки на всякий случай, чтобы случайно не упустить потенциальные проблемы типа $DOG_CAT - вы хотели подставить значение переменной DOG, но _ считается текстовым символом, а значит интерпретатор видит это как замену переменной DOG_CAT. если же всегда использовать скобки - ${DOG}_CAT - будет интерпретировано именно так, как вы ожидали

символ & в специализированных переменных среды гудини будут заменены на дефолтное значение этой конкретной переменной при запуске гудини.

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

добавлять этот символ несколько раз не имеет смысла, классическая ошибка:

SOME_PATH1= c:\my\fancy\path1;&
SOME_PATH2= c:\my\fancy\path2;&
HOUDINI_PATH=$SOME_PATH1;$SOME_PATH2;&

тогда финальное значение HOUDINI_PATH будет c:\my\fancy\path1;&;c:\my\fancy\path2;&;&, где каждый & будет заменен на набор стандартных путей.

Обычно проблем это может даже и не вызвать, но так как пути слева имеют приоритет перед путями справа - если в c:\my\fancy\path2 есть что-то, что должно оверрайдить какой-то стандартный файл, тот & перед c:\my\fancy\path2 теперь будет иметь приоритет, и оверрайд не сработает.

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


Инстансы, Пакеды, Пакед диск, Делейед Лоад Процедурал

в мануале отлично описано

сюда следует добавить примеров


© 2024 Illithid Collective   •  Theme forked from  Moonwalk