![]() |
3DCoat
3D-COAT 4.9.xx
3DCoat is the one application that has all the tools you need to take your 3D idea from a block of digital clay all the way to a production ready, fully textured organic or hard surface model.
|
Допустим, надо разобраться в работе чего-то видимого на экране: меню или инструмента. Это легко сделать, зная, как работает UI 3DCoat.
Когда необходимо найти нечто невидимое, самый простой способ обнаружить видимое, а дальше... ставим в коде точку останова и работаем с 3DCoat в режиме отладки.
Можно выполнить свой код на любом этапе работы 3DCoat. Для этого регистрируем блок кода с помощью одного из макросов:
__onstartup__afterinit__preprocess__prerender__postprocess__postrender__thumbnail__aftersettingsНазвания говорят сами за себя, да и в коде есть их описание.
Пример:
Если нам нужно работать более гибко, используем класс CallItLater. Например, если хотим выполнить код после инициализации UI, шейдеров и всего что только может быть инициализировано в 3DCoat, пишем:
Вместо TEST_SUIT можем использовать также
NUM_START_EXTSVOX_EXTENSIONBASIC_TOOLPRE_PROCESSPOST_PROCESSPRE_RENDERPOST_RENDERDRAW_THUMBNAILSAOPPOPT_READYКаждый из перечисленных выше defin'ов выполняется на определённом этапе работы приложения.
По сути, макросы вначале этой заметки, являются обёрткой для нашей функции и класса CallItLater.
CallItLater в отдельную группу? Или переписать через enum class?Без обхода слоёв всю работу за нас делает метод VolumeObject::ToRawMesh(). Например, если хотим забросить выделенный в Скульпт-комнате слой, пишем:
VoxTreeBranch.