Сообщения на форуме пользователя Andrey (118 стр.)
Скелетная анимация. Проблема в экспортере или в коде обновления? | 18 янв. 2008 | 14:35 | #4 |
---|
0r@ngE
я тоже так пробовал как у тебя
но GetObjTMAfterWSM и GetNodeTM это совсем разные веши.
Слушая я сначала сохраняю полигоны меша из узла, оставляю пустыми пока в формате вершин
а потом уже из списка модификаторов выцепляю кости и веса, потом создание уникальных вершин и запись в файл может
это совмещать?
хм... нормали попробуй переверни тоже
а ты иерархию матриц расчитываешь?
я тоже так пробовал как у тебя
но GetObjTMAfterWSM и GetNodeTM это совсем разные веши.
Слушая я сначала сохраняю полигоны меша из узла, оставляю пустыми пока в формате вершин
unsigned char boneIndex[NUM_BONES_VERTEX]; float vertexWeight[NUM_BONES_VERTEX];
это совмещать?
хм... нормали попробуй переверни тоже
std::swap(normal.z, normal.y);
Скелетная анимация. Проблема в экспортере или в коде обновления? | 18 янв. 2008 | 14:07 | #2 |
---|
0r@ngE
круто!!
а ты можешь сказать что у меня не так с экспортом матриц?
можешь показать как у тебя? или ты используешь IGame или Max Script ?
>с моделькой правда все гут
дак у меня тоже все гут или нет? она то рендерится корректно.
круто!!
а ты можешь сказать что у меня не так с экспортом матриц?
можешь показать как у тебя? или ты используешь IGame или Max Script ?
>с моделькой правда все гут
дак у меня тоже все гут или нет? она то рендерится корректно.
Консоль? | 18 янв. 2008 | 14:00 | #7 |
---|
Smrad
класс команд имеет преимущество в нем я храню указатели на методы классов. эти методы выполняют 2 задачи основную и служат для консольной команды
твоя реализация возможно предполагает отдельное написание функции для консольной команды. и тем более функция глобальна. В моей можно забиндить практически любой метод любого класса и это будет консольной камандой, не писав ничего лишнего. А так как вызов ConsoleCommand::Exec(...) вирутальный нужно выделение памяти. и и избавляемся от delete применив boost::shader_ptr.
>Попробуй разобраться с бустом.
и причем тут то что ты разобрался с boost'ом ? это типа считается круто ?
мне хватает 2 классов остальное не нужно.
класс команд имеет преимущество в нем я храню указатели на методы классов. эти методы выполняют 2 задачи основную и служат для консольной команды
твоя реализация возможно предполагает отдельное написание функции для консольной команды. и тем более функция глобальна. В моей можно забиндить практически любой метод любого класса и это будет консольной камандой, не писав ничего лишнего. А так как вызов ConsoleCommand::Exec(...) вирутальный нужно выделение памяти. и и избавляемся от delete применив boost::shader_ptr.
>Попробуй разобраться с бустом.
и причем тут то что ты разобрался с boost'ом ? это типа считается круто ?
мне хватает 2 классов остальное не нужно.
Консоль? | 18 янв. 2008 | 13:42 | #4 |
---|
Smrad
Smrad
>Да... команды в куче ето мощно ^^
Да... трепаться на форуме не написав консоль это мощно ^^
>boost::function<void()>
Да... мощная гибкая реализация зато модный boost во всех дырках.
Smrad
>Да... команды в куче ето мощно ^^
Да... трепаться на форуме не написав консоль это мощно ^^
>boost::function<void()>
Да... мощная гибкая реализация зато модный boost во всех дырках.
Консоль? | 18 янв. 2008 | 13:23 | #1 |
---|
std::vector<boost::shared_ptr<ConsoleCommand> > либо std::map<std::string, boost::shared_ptr<ConsoleCommand> >
во втором std::map::find
остальные вопросы надобно подробней расписать.
Правка действительно шейдеры не причем boost::shader_ptr -> boost::shared_ptr
Правка: 18 янв. 2008 14:39
Скелетная анимация. Проблема в экспортере или в коде обновления? | 18 янв. 2008 | 13:16 | #0 |
---|
Привет! всем.
наконец добрался до скелетной анимации. Написал экспортер на C++ из 3DS Max использую голый MAX API. И рендеринг анимированных моделей.
экспортер писал на основе ранее написанного экспортера статической геометрии. просто в конец файла добавляю иерархию костей и список кадров,
в котором список матриц ввиде виде вкатернион + позиция костей с стартовым времени кадра. Ну и расширил формат вершины добавив индекс кости и вес.
Думаю данная схема стандартна.
на скриншоте показана отрисовка анимированной модели. Но она неправильно двигается. И почему-то кости показаны в другом месте.
В чем может быть дело в экспорте из Max либо в самом коде
обновления?
Приведу код экспорта анимации думаю проблема в нем экспорт анимации выглядит так: вот скриншот
вот демка показывающая проблему
http://www.gamedev.ru/download/?id=6657
что я делаю не так?
Спасибо всем заранее с Уважением Андрей.
наконец добрался до скелетной анимации. Написал экспортер на C++ из 3DS Max использую голый MAX API. И рендеринг анимированных моделей.
экспортер писал на основе ранее написанного экспортера статической геометрии. просто в конец файла добавляю иерархию костей и список кадров,
в котором список матриц ввиде виде вкатернион + позиция костей с стартовым времени кадра. Ну и расширил формат вершины добавив индекс кости и вес.
Думаю данная схема стандартна.
на скриншоте показана отрисовка анимированной модели. Но она неправильно двигается. И почему-то кости показаны в другом месте.
В чем может быть дело в экспорте из Max либо в самом коде
обновления?
Приведу код экспорта анимации думаю проблема в нем экспорт анимации выглядит так: вот скриншот

вот демка показывающая проблему
http://www.gamedev.ru/download/?id=6657
что я делаю не так?
Спасибо всем заранее с Уважением Андрей.
Правка: 18 янв. 2008 13:19
PSM на OpenGL | 18 янв. 2008 | 10:54 | #5 |
---|
Exelents
>у меня тоже float32 текстура не работает. Заюзал float16
мдя... а карта какая?
>у меня тоже float32 текстура не работает. Заюзал float16
мдя... а карта какая?
Каких ключевых слов нет в ваших С++ проектах? :). | 18 янв. 2008 | 10:51 | #256 |
---|
Zeux
+1 за *_cast и
Долго иногда я пытаюсь некоторым специалистам по C++ что старый стиль преобразования опасен(объяснения типа долго писать и неудобно, не катят т.к. можно напороться на серьезные ошибки, особенно если мегабайты кода движка, а не казуалка с использованием HGE), а исключения это большой тормоз.
Об это неоднократно говорят авторитеты по C++ (к примеру Майерс "Наиболее эффективное С++ 35 рекомендаций", стр. 25, Правило 2; стр. 91, правило 15).
+1 за *_cast и
try/throw/catch
Об это неоднократно говорят авторитеты по C++ (к примеру Майерс "Наиболее эффективное С++ 35 рекомендаций", стр. 25, Правило 2; стр. 91, правило 15).
Где ускорение от VBO (OpenGL)? | 18 янв. 2008 | 10:35 | #8 |
---|
Lion007
а как-же страшная синхронизация с CPU когда вершины берутся из RAM ????
а как-же страшная синхронизация с CPU когда вершины берутся из RAM ????
Vista glut.dll | 18 янв. 2008 | 10:33 | #3 |
---|
Mogol
glClear != NULL ?
glFlush != NULL ?
glutSwapBuffers != NULL ?
бери исходники glut компиль и проверяй в Debug по шагам.
http://www.opengl.org/resources/libraries/glut/glut37.zip
glClear != NULL ?
glFlush != NULL ?
glutSwapBuffers != NULL ?
бери исходники glut компиль и проверяй в Debug по шагам.
http://www.opengl.org/resources/libraries/glut/glut37.zip
PSM на OpenGL | 18 янв. 2008 | 10:30 | #3 |
---|
_Coll_
может поможешь мою проблему решить?
может поможешь мою проблему решить?
PSM на OpenGL | 17 янв. 2008 | 18:18 | #1 |
---|
_Coll_
я к примеру не смог еще вообще простые тени перенести с Direct3D на OpenGL (просто рендер в текстуру с передчаей мтрицы источника света ну) сдается что проблема в построении текстурной матрицы. FBO + F32 текстура не хочет работать. что на ATI что на nVidia
я к примеру не смог еще вообще простые тени перенести с Direct3D на OpenGL (просто рендер в текстуру с передчаей мтрицы источника света ну) сдается что проблема в построении текстурной матрицы. FBO + F32 текстура не хочет работать. что на ATI что на nVidia
Vista glut.dll | 17 янв. 2008 | 17:02 | #1 |
---|
Mogol
а Debug и подробное указание строчки кода откуда сваливается в блок кода __except уже отменили?
а Debug и подробное указание строчки кода откуда сваливается в блок кода __except уже отменили?
Вода и шейдер | 17 янв. 2008 | 12:51 | #75 |
---|
Osiris
6600
Не хочет работать. аналогичная ситуация как и раньше
Компиль в DEBUG версии с флагом D3D_DEBUG_INFO
DX Debug Level выкручивай на полную и проверяй все предупреждения и ошибки.
на nVidia не работает рендер в текстуру если отрубить запись в буфер цвета на ATI работает так что что-то всетаки с очисткой.
6600
Не хочет работать. аналогичная ситуация как и раньше
Компиль в DEBUG версии с флагом D3D_DEBUG_INFO
DX Debug Level выкручивай на полную и проверяй все предупреждения и ошибки.
на nVidia не работает рендер в текстуру если отрубить запись в буфер цвета на ATI работает так что что-то всетаки с очисткой.
Вода и шейдер | 17 янв. 2008 | 12:15 | #72 |
---|
Osiris
1) да
2) нет нужен флаг D3DCLEAR_STENCIL. только зачем тебе это, ты что используешь тест трафарета?? это вроде нужно чистить только тогда когда используется Stencil Test.
3) не знаю.
1) да
2) нет нужен флаг D3DCLEAR_STENCIL. только зачем тебе это, ты что используешь тест трафарета?? это вроде нужно чистить только тогда когда используется Stencil Test.
3) не знаю.