FAQ по MaxSDK, Архитектура, понятия, методы, примеры и т.д. |
Home· Статьи · Вакансии · Чертежи · 3D Галерея · 2D Галерея · Форум · Форум Realtime | Реклама |  Конкурсы | RAR Award | Правила |
Здравствуйте, гость ( Вход | Регистрация )
FAQ по MaxSDK, Архитектура, понятия, методы, примеры и т.д. |
30/10/2009, 16:11
Сообщение
#16
|
|
Мастер Группа: Участник Сообщений: 1 431 Регистрация: 09/11/2004 Из: SPb Пользователь №: 8 229 |
2 Madias
По поводу визарта. Он там какие-то html или java скрипты использует в своем диалоге. Точно не скажу - но windows частенько их блокирует. Поищи в интернете я там нашел ответ. Сделал и забыл сам. |
|
|
30/10/2009, 19:52
Сообщение
#17
|
|
Учитель Группа: Участник Сообщений: 322 Регистрация: 18/06/2002 Из: Москва Пользователь №: 72 |
VG а у тебя SDK 2010? визард работает? У меня 2009 SDK и студия 2008, с визардом вроде сделал всё как в инструкции написано, создаю новый проект, выбираю 3дмах апликейшн и ничего не происходит подскажите чё не так может быть? Ну, для начала, почему бы не посмотреть 3ds Max SDK Help - Development Platform Requirements: 3ds Max Release Date - March 2008 3ds Max Version - 2009 Target Operating System - Windows Vista (32 and 64 bit) Windows XP Pro SP2 (32 and 64 bit) 3ds Max SDK version to build plug-ins with - 2009 Microsoft Visual C++ Compiler Version - Visual C++ 8.0 (Visual Studio 2005) Service Pack 1. Сообщение отредактировал Lastjedi - 30/10/2009, 19:53 |
|
|
30/10/2009, 20:10
Сообщение
#18
|
|
Знаток Группа: Пользователи Сообщений: 259 Регистрация: 25/11/2005 Пользователь №: 18 441 |
VaniaVania параметр ноды visibility, в скрипте так node.visibiliti=off или on работает по NOTIFY_RENDER_PREEVAL по моему то что тебе надо
|
|
|
02/11/2009, 17:45
Сообщение
#19
|
|
Знаток Группа: Пользователи Сообщений: 259 Регистрация: 25/11/2005 Пользователь №: 18 441 |
Про Wizard надо всё сделать как в инструкции + в файле 3dsmaxPluginWizard.vsz в строке Wizard=VsWizard.VsWizardEngine.X.0, где Х заменить на цифру студии, т.е. для 2008 это 9(по умолчанию 8 (2005)).
После этого визард работает правдо проекты создаются для 2005 студии, и не открываются сразу после создания, а опять открывается окно создать проект.Жмём отмена.Открываем в ручную созданный визардом проект. |
|
|
03/11/2009, 14:18
Сообщение
#20
|
|
Уже не новичок Группа: Пользователи Сообщений: 21 Регистрация: 10/09/2009 Пользователь №: 72 690 |
VaniaVania параметр ноды visibility, в скрипте так node.visibiliti=off или on работает по NOTIFY_RENDER_PREEVAL по моему то что тебе надо Дело в том, что флаг Renderable, параметр Visibility влияют на то, будет ли объект браться в расчёт при рендеринге или нет. Но при этом объект БУДЕТ В ПАМЯТИ КОМПЬЮТЕРА. Я уверен, что МАКС достаточно продвинут, чтобы внутри себя отбрасывать те объекты, которые не попадают в камеру и не влияют на сцену. Однако присутствие этих объектов расходует память, которая в случае дефолтного рендеринга очень ограничена. Моя идея состояла в том, чтобы создавать впринципе в памяти только те объекты, которые необходимы для рендеринга. Пусть, например, мой плагин рассадил 100 000 деревьев. Понятно, что добавить их все в сцену, даже невидимыми и нерендерящимися не получится. Но если камера движется, и каждый раз захватывает в своё поле зрения только 1000 из них, то можно перед рендерингом конкретного кадра высчитывать эти деревья, создавать в памяти компьютера только их, а сразу после рендеринга удалять. Таким образом рендеринг даже такой увесистой сцены будет возможен. |
|
|
03/11/2009, 14:31
Сообщение
#21
|
|
Знаток Группа: Пользователи Сообщений: 259 Регистрация: 25/11/2005 Пользователь №: 18 441 |
Я когда это тестил создал 100 сфер со 100 сегментами, в камеру попадала только одна, и время рендера, сильно отличалась,при включении визибилити=офф для всех кроме этой сферы.По-этому я не уверен , МАКС достаточно продвинут, чтобы внутри себя отбрасывать те объекты, которые не попадают в камеру.
|
|
|
20/11/2009, 12:17
Сообщение
#22
|
|
Creator Группа: AWARD Сообщений: 3 749 Регистрация: 08/12/2002 Пользователь №: 1 252 |
А кто нибудь знает, как на командной панели в интерфейсе програмно двигать диалоговые елементы уже во время работы макса? Например спиннер подвинуть ниже или выше. Проблемы возникают именно со спиннером. Пробовал его двигать через SetWindowPos и через MoveWindow. Он становится неактивным и ничего с ним больше не сделать.
Сообщение отредактировал Karba - 20/11/2009, 12:18 |
|
|
20/11/2009, 14:01
Сообщение
#23
|
|
Уже не новичок Группа: Пользователи Сообщений: 21 Регистрация: 10/09/2009 Пользователь №: 72 690 |
А кто нибудь знает, как на командной панели в интерфейсе програмно двигать диалоговые елементы уже во время работы макса? Например спиннер подвинуть ниже или выше. Проблемы возникают именно со спиннером. Пробовал его двигать через SetWindowPos и через MoveWindow. Он становится неактивным и ничего с ним больше не сделать. В лоб залез в MSDN и с первого раза заработал вот такой код: ::SetWindowPos( ::GetDlgItem(hDlgWnd, IDC_SEED_INDEX_SPIN), // hDlgWnd - хэндл диалога, IDC_SEED_INDEX_SPIN - ID спинера на диалоге, NULL, 0, // желаемая х-координата 50, // желаемая y-координата 0, 0, SWP_NOSIZE | SWP_SHOWWINDOW ); |
|
|
20/11/2009, 14:13
Сообщение
#24
|
|
Creator Группа: AWARD Сообщений: 3 749 Регистрация: 08/12/2002 Пользователь №: 1 252 |
А кто нибудь знает, как на командной панели в интерфейсе програмно двигать диалоговые елементы уже во время работы макса? Например спиннер подвинуть ниже или выше. Проблемы возникают именно со спиннером. Пробовал его двигать через SetWindowPos и через MoveWindow. Он становится неактивным и ничего с ним больше не сделать. В лоб залез в MSDN и с первого раза заработал вот такой код: ::SetWindowPos( ::GetDlgItem(hDlgWnd, IDC_SEED_INDEX_SPIN), // hDlgWnd - хэндл диалога, IDC_SEED_INDEX_SPIN - ID спинера на диалоге, NULL, 0, // желаемая х-координата 50, // желаемая y-координата 0, 0, SWP_NOSIZE | SWP_SHOWWINDOW ); Читать умеем? Мое сообщение прочитал? |
|
|
20/11/2009, 15:16
Сообщение
#25
|
|
Уже не новичок Группа: Пользователи Сообщений: 21 Регистрация: 10/09/2009 Пользователь №: 72 690 |
А кто нибудь знает, как на командной панели в интерфейсе програмно двигать диалоговые елементы уже во время работы макса? Например спиннер подвинуть ниже или выше. Проблемы возникают именно со спиннером. Пробовал его двигать через SetWindowPos и через MoveWindow. Он становится неактивным и ничего с ним больше не сделать. В лоб залез в MSDN и с первого раза заработал вот такой код: ::SetWindowPos( ::GetDlgItem(hDlgWnd, IDC_SEED_INDEX_SPIN), // hDlgWnd - хэндл диалога, IDC_SEED_INDEX_SPIN - ID спинера на диалоге, NULL, 0, // желаемая х-координата 50, // желаемая y-координата 0, 0, SWP_NOSIZE | SWP_SHOWWINDOW ); Читать умеем? Мое сообщение прочитал? что за наезды, молодой человек? Имейте уважение! У меня приведённый код работает (MAX 2010, VS 2008), и спинер программно передвигается в любую точку и продолжает работать, как надо. |
|
|
20/11/2009, 18:10
Сообщение
#26
|
|
Уже не новичок Группа: Пользователи Сообщений: 21 Регистрация: 10/09/2009 Пользователь №: 72 690 |
Всем привет ещё раз. У меня проблемы с VRay SDK - мне нужно программным образом экспортировать обычный максовский геометрический объект в .vrmesh. При этом создание файла .vrmesh совершенно необязательно, главное получить MeshInterface. Это нужно для того, чтобы управлять VRay-рендерингом обычных максовских обхектов. Заранее спасибо.
|
|
|
24/11/2009, 13:52
Сообщение
#27
|
|
Уже не новичок Группа: Пользователи Сообщений: 21 Регистрация: 10/09/2009 Пользователь №: 72 690 |
Всем привет ещё раз. У меня проблемы с VRay SDK - мне нужно программным образом экспортировать обычный максовский геометрический объект в .vrmesh. При этом создание файла .vrmesh совершенно необязательно, главное получить MeshInterface. Это нужно для того, чтобы управлять VRay-рендерингом обычных максовских обхектов. Заранее спасибо. Вопрос не актуален - я нашёл способ получить MeshInterface |
|
|
24/11/2009, 18:15
Сообщение
#28
|
|
Советчик Группа: Пользователи Сообщений: 87 Регистрация: 22/04/2008 Пользователь №: 63 568 |
А кто нибудь знает, как на командной панели в интерфейсе програмно двигать диалоговые елементы уже во время работы макса? Например спиннер подвинуть ниже или выше. Проблемы возникают именно со спиннером. Пробовал его двигать через SetWindowPos и через MoveWindow. Он становится неактивным и ничего с ним больше не сделать. Тоже решил проверить SetWindowPos для спинеров, все работает нормально! (Пробовал на VS2005 3dsMax2008.) |
|
|
25/11/2009, 11:11
Сообщение
#29
|
|
-.-.-.-.-.-.-.-.-.-.-.- Группа: Модераторы Сообщений: 3 915 Регистрация: 21/06/2002 Из: Нерезиновая Пользователь №: 128 |
Всем привет ещё раз. У меня проблемы с VRay SDK - мне нужно программным образом экспортировать обычный максовский геометрический объект в .vrmesh. При этом создание файла .vrmesh совершенно необязательно, главное получить MeshInterface. Это нужно для того, чтобы управлять VRay-рендерингом обычных максовских обхектов. Заранее спасибо. Вопрос не актуален - я нашёл способ получить MeshInterface Так дело не пойдёт, парни. Давайте сразу договоримся: если вопрос прозвучал и ответ на него был найден самостоятельно - он должен быть изложен тут. Монологи здесь никому не интересны, думаю. |
|
|
25/11/2009, 14:17
Сообщение
#30
|
|
Уже не новичок Группа: Пользователи Сообщений: 21 Регистрация: 10/09/2009 Пользователь №: 72 690 |
Всем привет ещё раз. У меня проблемы с VRay SDK - мне нужно программным образом экспортировать обычный максовский геометрический объект в .vrmesh. При этом создание файла .vrmesh совершенно необязательно, главное получить MeshInterface. Это нужно для того, чтобы управлять VRay-рендерингом обычных максовских обхектов. Заранее спасибо. Вопрос не актуален - я нашёл способ получить MeshInterface Хорошо, исправлюсь. Каких-либо стандартных методов получить MeshInterface из обычного максовского геометрического объекта в VRay SDK я не нашёл. Но можно унаследоваться от MeshInterface и перегрузить чисто виртуальные методы getVoxel(...) и releaseVoxel(...). Эти метод возвращают и удаляют некие Voxel-объекты. Voxel - по сути та же мешь, можно весь объект запихать в один Voxel, но если треугольников будет слишком много, тогда рендериться всё будет ооочень медленно. Поэтому нужно просто руками поделить треугольники на группы по несколько тысяч и каждую группу запихать в отдельный Voxel. И выдать этот Voxel по его номеру в функции getVoxel(...). |
|
|
Bots |
Системное сообщение
|
|
|
|
|
Текстовая версия | Сейчас: 25/04/2024 - 09:28 |