Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование игр для компьютеров > BlitzMax > 3D-программирование

3D-программирование miniB3D, OpenGL

Ответ
 
Опции темы
Старый 08.07.2009, 18:57   #1
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,693 пользователей)
xLoadMesh и xLoadAnimMesh

Играюсь с Анимациями на ксорсе.
Есть тип, в нем модель.
Заметил, если я делаю модели анимацию ( гружу с помощью xLoadAnimMesh, все прибомбасы) , то уже при 100 объектах 20 фпс!
А если просто модель загружаю, то на 20 фпсах - держит 500-700 объектов.

ЭТо нормальным считается, или у меня руки кривые и я что-то не так делаю?
Type T_Entity
Field X:Int
Field Z:Int
Field Model:Int
End Type

Function CreateUnit:T_Entity()
Local Entity:T_Entity = New T_Entity
Entity.X = Rand(- 250, 250)
Entity.Z = Rand(- 250, 250)
Entity.Model:Int = xLoadAnimMesh("TestUnitBone.b3d")
xExtractAnimSeq Entity.Model, 0, 19
xExtractAnimSeq Entity.Model, 20, 30
xExtractAnimSeq Entity.Model, 31, 60
xExtractAnimSeq Entity.Model, 61, 70


xUpdateNormals Entity.Model

xEntityColor Entity.Model, 90, 90, 90
xAnimate Entity.model, 1, 0.9, 2
xEntityPickMode Entity.Model, 2
xPositionEntity Entity.Model, Entity.X, 0, Entity.Z
ListAddLast (EntityList, Entity)
Return Entity
End Function
(Offline)
 
Ответить с цитированием
Старый 08.07.2009, 19:02   #2
Knightmare
Дэвелопер
 
Регистрация: 13.02.2007
Сообщений: 1,438
Написано 773 полезных сообщений
(для 2,790 пользователей)
Ответ: xLoadMesh и xLoadAnimMesh

Все нормально. Скелетка дорогое удовольствие. Скорость можно поднять за счет хардварного скиннинга.
(Offline)
 
Ответить с цитированием
Старый 08.07.2009, 19:04   #3
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,693 пользователей)
Ответ: xLoadMesh и xLoadAnimMesh

По-подробнее можно.
И еще - была бы не скелетная анимация - не такая разница была бы?
(Offline)
 
Ответить с цитированием
Старый 08.07.2009, 19:07   #4
Knightmare
Дэвелопер
 
Регистрация: 13.02.2007
Сообщений: 1,438
Написано 773 полезных сообщений
(для 2,790 пользователей)
Ответ: xLoadMesh и xLoadAnimMesh

В примерах должен быть хардварный скиннинг. Если нет - залью пример.
И еще - была бы не скелетная анимация - не такая разница была бы?
А других вариантов и нет по сути. Ну морфинг еще, но он не поддерживается да и быстрее только за счет того, что не нужно пересчитывать иерархию костей. Но например такие вещи как рэгдолл им не сделать.
З.Ы. Еще есть вариант пообъектной анимации, но выглядит не очень и подходит для каких-нить роботов скорее.
(Offline)
 
Ответить с цитированием
Старый 08.07.2009, 19:17   #5
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,693 пользователей)
Ответ: xLoadMesh и xLoadAnimMesh

т.е. делать 500 скелетных монстров в 3д - не вариант? ну как-то ведь делают это? или на ксорс - это проблема?
(Offline)
 
Ответить с цитированием
Старый 08.07.2009, 19:20   #6
Knightmare
Дэвелопер
 
Регистрация: 13.02.2007
Сообщений: 1,438
Написано 773 полезных сообщений
(для 2,790 пользователей)
Ответ: xLoadMesh и xLoadAnimMesh

Сделать можно. Но все не так просто как хотелось бы, поэтому пока можешь считать лимитом 50 скиненых объектов в кадре.
(Offline)
 
Ответить с цитированием
Старый 08.07.2009, 21:18   #7
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,693 пользователей)
Ответ: xLoadMesh и xLoadAnimMesh

Knightmare, в принципе, ты прав. 50 - это даже много на экран. 10 хватает)...

а так - разбросать повсей карте эти 500 скелетов - норм работает
(Offline)
 
Ответить с цитированием
Старый 08.07.2009, 21:21   #8
Knightmare
Дэвелопер
 
Регистрация: 13.02.2007
Сообщений: 1,438
Написано 773 полезных сообщений
(для 2,790 пользователей)
Ответ: xLoadMesh и xLoadAnimMesh

В мясных стратегиях и играх аля АлиенШутер (но там не 3Д) может быть столько. В принципе можно сделать инстансинг скелетов (в 2 раза повысится скорость где-то, из минусов - все инстансы будут в одном положении, для мяса в прочем не критично и не до того будет).
(Offline)
 
Ответить с цитированием
Старый 08.07.2009, 23:34   #9
moka
.
 
Регистрация: 04.08.2006
Сообщений: 10,403
Написано 3,426 полезных сообщений
(для 6,762 пользователей)
Ответ: xLoadMesh и xLoadAnimMesh

Смотрим StarCraft II и поражаемся анимации которую он рендерит в экране, когда орды зергов нападают на людишек..
Оптимизации. Сейчас ЛоДов на уровне движка нету. Если их делать - то это уже будет предрасчёт под First/Third Person вид.
А ЛоД должен быть полностью объекта и т.п.
Например в Half-Life 2, там на скелете лод есть, и на моделе отдельно при этом. И разницы играя не видишь, а производительность вырастает весьма и весьма..
(Offline)
 
Ответить с цитированием
Старый 09.07.2009, 05:36   #10
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,701
Написано 294 полезных сообщений
(для 561 пользователей)
Ответ: xLoadMesh и xLoadAnimMesh

Все дружно переходим на ДХ10, там есть инстансинг анимаций
http://www.youtube.com/watch?v=JB2kkWkfJtw
http://www.youtube.com/watch?v=C9i5HLANhbs
(Offline)
 
Ответить с цитированием
Старый 09.07.2009, 08:13   #11
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,693 пользователей)
Ответ: xLoadMesh и xLoadAnimMesh

блин, мне бы то, что в 1 и во 2 видяхе очень даже бы не помешало...

за собой заметил, что я всю крдерскюу жизнь делаю алиен шутеры о_О все ,обречен

Последний раз редактировалось Данил, 09.07.2009 в 08:23.
(Offline)
 
Ответить с цитированием
Эти 5 пользователя(ей) сказали Спасибо Данил за это полезное сообщение:
ABTOMAT (09.07.2009), Arles (27.01.2010), h1dd3n (11.07.2009), Randomize (09.07.2009), Taugeshtu (09.07.2009)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 20:04.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com