06-12-2018, 10:29 PM
Насчет ландшафта да, я хочу сделать ручное редактирование BmpHDS - по сути, рисование карты высот. Это можно сделать методами TBitmap.
Встроенного GUI пока нет, и я не уверен, что удастся его сделать - обычно интерфейс делают путем назначения действий неким событиям (нажата кнопка - выполняется функция). Назначить событию из DLL функцию среды, которая вызывает DLL, можно только при помощи указателей на функции, но с динамическими языками типа GML или Python это практически невозможно (во всяком случае, не с таким простым API, как в Xtreme3D). Всеми событиями и действиями проще управлять в вызывающей среде - а это означает, что нет большого смысла в каких-то дополнительных объектах GUI поверх спрайтов и объектов текста, если ими все равно придется управлять вручную.
Raycast есть - функции ObjectRaycast и ObjectSceneRaycast, они возвращают ID объекта. ObjectGetCollisionPosition и ObjectGetCollisionNormal возвращают точку и нормаль пересечения последней проверки.
Насчет редактора я и сам подумываю, но это очень уж грандиозная затея. Да и не факт, что получившийся редактор будет универсальным - у меня, конечно, есть определенное понятие о том, каким он должен быть для моих собственных задач, и сделать такое я мог бы, но аналог Unity написать в одиночку, думаю, нереально.
Текстуры можно менять, если модель состоит из нескольких мешей/фейсгрупп. Можно фейсгруппе назначить отдельный материал функцией ActorFaceGroupSetMaterial.
FBX вот на днях только начал разбирать. Думаю реализовать сначала ASCII-версию формата. Бинарную пока не обещаю, потому что так и не нашел к ней полную спецификацию, но, в принципе, можно покопаться в экспортере из Blender.
Встроенного GUI пока нет, и я не уверен, что удастся его сделать - обычно интерфейс делают путем назначения действий неким событиям (нажата кнопка - выполняется функция). Назначить событию из DLL функцию среды, которая вызывает DLL, можно только при помощи указателей на функции, но с динамическими языками типа GML или Python это практически невозможно (во всяком случае, не с таким простым API, как в Xtreme3D). Всеми событиями и действиями проще управлять в вызывающей среде - а это означает, что нет большого смысла в каких-то дополнительных объектах GUI поверх спрайтов и объектов текста, если ими все равно придется управлять вручную.
Raycast есть - функции ObjectRaycast и ObjectSceneRaycast, они возвращают ID объекта. ObjectGetCollisionPosition и ObjectGetCollisionNormal возвращают точку и нормаль пересечения последней проверки.
Насчет редактора я и сам подумываю, но это очень уж грандиозная затея. Да и не факт, что получившийся редактор будет универсальным - у меня, конечно, есть определенное понятие о том, каким он должен быть для моих собственных задач, и сделать такое я мог бы, но аналог Unity написать в одиночку, думаю, нереально.
Текстуры можно менять, если модель состоит из нескольких мешей/фейсгрупп. Можно фейсгруппе назначить отдельный материал функцией ActorFaceGroupSetMaterial.
FBX вот на днях только начал разбирать. Думаю реализовать сначала ASCII-версию формата. Бинарную пока не обещаю, потому что так и не нашел к ней полную спецификацию, но, в принципе, можно покопаться в экспортере из Blender.