[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум Panda3D - по русски » Panda3D » Для начинающих » Вопросы, вопросы, вопросы... (Вращение, перемещение и т.д.)
Вопросы, вопросы, вопросы...
ninthДата: Четверг, 30.09.2010, 18:54 | Сообщение # 61
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Quote (Michman)
Желаю удачи. А цели какие?

Спасибо. Целей несколько:
* Расширить сообщество за счёт тех, кто ищет именно конструктор (по аналоги с CMS - ты собираешь сайт из нужных модулей, которые пишут разные люди со всего света, а когда тебе начинает не хватать возможностей какого-то модуля, то ты садишься и переделываешь его или пишешь новый)
* Конечно же использовать полученный конструктор в своих разработках )
* Увеличить возможность распределённой работы над проектами - когда программеры каждый занимается своим модулем при этом не мешая другим и не оказываясь в ситуации, когда все ждут одного.

Удачи в разработке ) Будем ждать WIP тему )

 
BlackCatДата: Пятница, 01.10.2010, 04:59 | Сообщение # 62
Подполковник
Группа: Проверенные
Сообщений: 144
Награды: 0
Репутация: 1
Статус: Offline
Quote (BVOG)
QuoteРекомендую установить более новые драйвера. Уже ставил - видеокарта своё поведение не изменила.

Таки есть ешё вариант. Я его всегда для себя применяю. Беру несколько разных драйверов. Делаю образ системы предварительно. После чего начинаю эти самые драйвера устанавливать и смотреть как они себя ведут. Обычно нужно перебрать 6-8 разных версий драйверов, пока найдёшь нормальные. Встречались такие случаи, когда отлично идёт видео, а игры тормозят. Есть такие, когда игры летают просто, а обычное видео тормозит, заодно со всей виндой. Но в конечном итоге находятся драйвера, которые нормально тянут и то и другое. Вот потом на этих драйверах я и "сижу" до посинения, не меняя их на другие. Так что можно попробовать и такой вариант. Хоть он и более напряжный и требует некоторого времени на установку и тестирование.


http://alphahole.do.am - версия 0.015 вышла 22.02.10
 
BVOGДата: Пятница, 01.10.2010, 08:16 | Сообщение # 63
Полковник
Группа: Проверенные
Сообщений: 184
Награды: 0
Репутация: 4
Статус: Offline
BlackCat, можно будет попробывать, или перейти в другую комнату и сесть за нормальный комп.

Skype: thebvog
 
fateДата: Четверг, 14.10.2010, 00:05 | Сообщение # 64
Рядовой
Группа: Пользователи
Сообщений: 10
Награды: 0
Репутация: 0
Статус: Offline
а как устанавливать экспортер chicken в блендер расскажите пожалуйста
 
BVOGДата: Четверг, 14.10.2010, 15:59 | Сообщение # 65
Полковник
Группа: Проверенные
Сообщений: 184
Награды: 0
Репутация: 4
Статус: Offline
Скачиваешь. Разархивируешь. И копируешь в папку с модулями на питоне Blender-а.

Skype: thebvog
 
ninthДата: Четверг, 14.10.2010, 23:06 | Сообщение # 66
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Там, кстати, инструкция есть.
 
MichmanДата: Вторник, 18.01.2011, 16:20 | Сообщение # 67
Лейтенант
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Статус: Offline
Снова Здарова Всем! Пропал я с этой работой. Совсем времени не хватает... Вот появилось немного времени...
Есть проблемка связанная с ограниченностью то ли Панды, то ли видеокарты моей(маловероятно). При попытке отрисовать более 1000 объектов в сцене fps падает ниже 30. Кто-то скажет: куда больше? А если подумать, то, к примеру, в RTS стратегии количество моделек нередко переваливает за эту 1000. Но это касается именно одновременного отображения всех моделек на экране монитора. И это без "костей" и анимации. А если, скажем, модельки состят из нескольких частей, например, из 5-ти каждая, то всего 200 моделек получается. И неважно сколько полигонов в модельках, хоть по 1-му полигону. Загружал полигон, множил его до 1000 и... менее 30 fps обеспечено. Шейдеры отключены, модели без текстур, источник света - один Spotlight. На DirectX получше, но всё равно не то - 1200-1300 объектов. В коде ничего лишнего нет, никакой логики ещё не програмировал, только то, что отвечает за вывод на экран моделек.

Непонятно почему именно такая Ф... получается? Опять пресловутая скриптовость Python? Дело в том, что в некоторых других движках ограниченность в производительности(если убрать шейдеры и прочие примочки) связано с общим количеством полигонов в сцене(напрмер, OGRE). Напомню, речь идет о статичных обектах.

Добавлено (18.01.2011, 16:20)
---------------------------------------------
Еще один немаловажный вопрос.
Как покрыть текстурой большой объект и при этом качество было приемлемо? В смыле, есть поверхность земли(грунта под ногами) скажем 1000 на 1000 единиц или более и на нее надо наложить текстуру. Если брать текстуру 8192 на 8192 точек, то размер файла великоват и не всякая видеокарта "проглотит". А если "распилить" текстуру на 8 частей, то как "сказать" Панде чтобы она клеила её и накладывала на модель, особо не сопротивляясь?

 
ninthДата: Среда, 19.01.2011, 13:29 | Сообщение # 68
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Для начала - я не видел стратегий, где на экране бы одновременно находились тысячи трёхмерных моделей ) Самые массовые, наверно казаки - но тут полное 2d и различные тотал вары - но в них заднеплановые юниты заменяются спрайтами.
В основном количество в пределах сотни юнитов. Хотя конечно я мог и не видеть чего-то действительно массового.
Ближе к сути - в данном случае у тебя проблема не с количеством полигонов, а с количеством узлов/моделей, т.к. вся эта пачка регулярно посылается в память видеокарты - каждый узел отдельно. Для решения подобного рода проблемы в панде есть Rigid Body Combiner. Чем больше отдельных объектов, тем сильнее будет заметно влияние. У меня например без RBC 10000 (десять тысяч) кубиков показывают 2-3 fps, а с ним - 30 fps.
Code
from panda3d.core import loadPrcFileData
loadPrcFileData("editor-startup", "sync-video #f")
loadPrcFileData("", "show-frame-rate-meter #t")

from direct.directbase.DirectStart import *
from pandac.PandaModules import RigidBodyCombiner, NodePath, Vec3
import random
   
rbc = RigidBodyCombiner("rbc")
rbcnp = NodePath(rbc)
rbcnp.reparentTo(render)
   
for i in range(10000):
     pos = Vec3(random.uniform(-100, 100),
                random.uniform(-100, 100),
                random.uniform(-100, 100))
   
     f = loader.loadModel("box")
     f.setPos(pos)
     f.reparentTo(rbcnp)
   
rbc.collect()

run()

Ещё один момент - вероятно, у тебя включена вертикальная синхронизация, т.е. частота кадров будет синхронизироваться с частоттой обновления экрана. На современных жк мониторах это обычно 60 герц. Если реальные фпс не дотягивают до 60, то будет соответственно 30 фпс - один кадр в два обновления монитора, затем 20 ну и т.д.

------------------------------------------------------

По текстурам: обычно большую территорию затайливают гораздо меньшей текстуркой, т.е. укладывают её несколько раз по вертикали и горизонтали. Если нужны разные тайлы на разных участках, то это в трёхмерном редакторе делается - большинство позволяют полигону или группе полигонов назначить персональную текстуру. Впрочем, затайливание тоже обычно в редакторе выполняетя чтоб не писать лишний код.

 
MichmanДата: Среда, 19.01.2011, 16:02 | Сообщение # 69
Лейтенант
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Статус: Offline
Ясно. За Rigid Body Combiner отдельное спасибо, не знал. Я видел только лишь один выход из данной ситуации - обьединение в редакторе множества статичных обьектов в один меш, но тогда есть проблемы с текстурами.

На вертикальную синхронизацию в данном случае обращать внимание невижу смысла поскольку fps еле дотягивает до 30. К тому же она у меня отключена в настройках видекарты.

-----------------------------------------------

С тайлами знаком, мне хотелось просто узнать если у Панды какие-нибудь методы по склейке и наложении подобных текстур, в доках не нашёл. Тайловый метод не дает разнообразия. Через минуту путешествия по карте вся эта "кусочность" бросается в глаза, а если залезть на возвышенность посмотреть в даль, то "туши свет, бросай гранату" - слишком однообразно, как шахматная доска. Незнаю как в других редакторах, но после экспорта из Max'а подобные фокусы с назначением нескольких карт на разные участки объекта "пролетают, как фанера над Парижем". На весь объект проецируется одна карта, которая назначена в 1-ом канале, а остальные каналы куда пропадают после экспорта. Возможно я недостаточно "пошаманил" в данном направлении, но чувствуется, что неудастся как-то реализовать большие карты максовскими методами.

Добавлено (19.01.2011, 15:57)
---------------------------------------------

Quote (ninth)
Хотя конечно я мог и не видеть чего-то действительно массового

Если даже не брать что-то из реализованного, а просто прикинуть сколько объектов может одновременно отображаться в сцене, то это различная статика - деревья, трава, дома, части инфраструктуры(разная мелочь вроде оградок, дорожных указателей, если баталии проходят в черте городских построек...). Даже не считая юнитов количество объектов уже может составить приличное количество. Но всё это так..., просто размышления.

P.S. Из реализованного могу припомнить из последних - Command & Conquer: Tiberium Wars. Конечно, здесь движок "вилизан до безобразия" и с Пандой сравнивать его не стоит, но тем не менее. К тому же в этой игре лимита на количесво произведенных игроком юнитов нет, возможно я просто не дошел до этого лимита biggrin , незнаю.

Добавлено (19.01.2011, 16:02)
---------------------------------------------
Пардон за оффтоп. Почему WIP запаролен? Секрктные разработки? Бойтесь! Бойтесь!!!

 
ninthДата: Среда, 19.01.2011, 16:10 | Сообщение # 70
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Ну я говорил, что с 3ds не сильно знаком, поэтому конкретики дать не могу, но вот пример из блендера - на один меш назначены 4 разные текстуры - на разные полигоны. Можно и разные текстурные каналы использовать.
Ещё есть вариант с шейдерами - но это довольно сложный вариант.

Присмотрись внимательно - во многих играх приём затайливания использован. Всё дело в том, что в них поверх затайленной поверхности накидано множество объектов - растительность, постройки, которые скрывают это всё.

Прикрепления: multitexture.7z (33.4 Kb)
 
MichmanДата: Среда, 19.01.2011, 19:37 | Сообщение # 71
Лейтенант
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Статус: Offline
Quote (ninth)
Присмотрись внимательно - во многих играх приём затайливания использован

Согласен. Просто пытаюсь разнообразить поверхности за счет текстур.
Quote (ninth)
но вот пример из блендера - на один меш назначены 4 разные текстуры - на разные полигоны. Можно и разные текстурные каналы использовать.

Увы, из макса экспортировать бодобное не удается. В EGG файле ссылка только на одну текстуру, хотя в максе полигонам разные текстуры назначить непроблема и спомощью каналов тоже, но... не экспортируется.
 
ninthДата: Четверг, 20.01.2011, 08:39 | Сообщение # 72
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Хм, а от какой версии панды у тебя экспортёр? Если старый, то попробуй поставь из 1.7.1 (из снапшотов, т.к. официально пока версия 1.7.0)

Ещё чел на оффоруме накидал самопальный экспортёр в виде максовского скрипта - можно попробовать его - во вложении. Только вероятно придётся пути править вручную внутри скрипта.

Прикрепления: EGGExporter.zip (4.8 Kb)
 
MichmanДата: Четверг, 20.01.2011, 13:20 | Сообщение # 73
Лейтенант
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Статус: Offline
Quote (ninth)
Хм, а от какой версии панды у тебя экспортёр?

Тот что в пакете Panda3D 1.7.0.

ОК. Попробую из 1.7.1. За EGGExporter тоже спасибо, посмотрю.

 
MichmanДата: Четверг, 20.01.2011, 21:16 | Сообщение # 74
Лейтенант
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Статус: Offline
Ох, как же я забыл про экспорт всей сцены, хм?!! Всю статику можно ведь создать в редакторе расставить по своим местам и экспортнуть всю сцену одним файлом, используя Export Entire Scene(речь идет о Max'овском экспортере). В таком случае количество объектов может быть достаточно большИм. Я тут провёл небольшой тест, может кому-нибудь будет интересно: соорудил куб из маленьких кубов. Каждый маленький куб отдельный меш. Количество кубиков 27000. Число граней в сцене 324000. Весь объем куба занят маленькими кубиками, хотя этого невидно на скрине. И при этом fps приличный. Конечно нет ткстур и шейдеров, но тем не менее цифра хорошая. Размер ".egg" файла около 90 мб. Грузилась сцена в Панде около 20 сек. Большие обьекты думаю "пилить" на куски, текстурировать их и вновь совмещать в редакторе в единую модель.

P.S. Кстати, Max 8 после 15000 кубиков вылетел, видимо оперативы не хватило :). Пришлось Hide'ить блоки кубов, чтобы накопировать 27000.
Железо: Intel Core Duo 2,66(неразогнанный), Nvidia GeForсe 8800 GTS 512(неразогнанная), 2 Гб оперативы. Софт: Windows Pro SP2, OpenGL и видеодрайвер последние на сегодняшний день.
Прикрепления: 7646613.jpg (216.1 Kb)


Сообщение отредактировал Michman - Четверг, 20.01.2011, 21:19
 
ninthДата: Пятница, 21.01.2011, 08:09 | Сообщение # 75
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Можно после загрузки модели ещё попробовать применить на неё flatten - возможно выжмет ещё немного фпсов, хотя операция сама по себе ресурсоёмкая. если конвертнуть egg в bam, то грузиться будет шустрее, хотя это актуально только для первой загрузки после изменения, т.к. панда автоматом кэширует egg, перегоняя при первом запуске в bam.
Кста, полезный совет - при загрузке лучше вообще не указывать расширение файла - панда сама разберётся. Это избавит от проблем в дальнейшем, если потребуется конвертнуть модели в bam или egg.pz (особенно актуально при распространении игры)
 
Форум Panda3D - по русски » Panda3D » Для начинающих » Вопросы, вопросы, вопросы... (Вращение, перемещение и т.д.)
Поиск: