[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум Panda3D - по русски » Panda3D » Для начинающих » Вопросы, вопросы, вопросы... (Вращение, перемещение и т.д.)
Вопросы, вопросы, вопросы...
BVOGДата: Пятница, 24.09.2010, 14:33 | Сообщение # 46
Полковник
Группа: Проверенные
Сообщений: 184
Награды: 0
Репутация: 4
Статус: Offline
Quote
Рекомендую установить более новые драйвера.

Уже ставил - видеокарта своё поведение не изменила.


Skype: thebvog
 
ninthДата: Пятница, 24.09.2010, 20:10 | Сообщение # 47
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Я специально семёрку, да ещё и x64 ставил, чтобы тестить на проблемы совместимости )) Но получается как в том анекдоте "всё работает и ничего не падает - может я что-то не так делаю?"
 
BVOGДата: Пятница, 24.09.2010, 20:17 | Сообщение # 48
Полковник
Группа: Проверенные
Сообщений: 184
Награды: 0
Репутация: 4
Статус: Offline
Это был бы хорошо, если ошибся я, но увы видеокарта - идёт в отказ)

Skype: thebvog
 
MichmanДата: Пятница, 24.09.2010, 21:17 | Сообщение # 49
Лейтенант
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Статус: Offline
Quote (BVOG)
Это был бы хорошо, если ошибся я, но увы видеокарта - идёт в отказ)

Скорее всего и впраду дрова. На не которые модели видеокарт обновления дров даже под XP раз в полгода и то не дождёшься, а на некоторые аж каждый месяц выходят. А уж под семёрку дрова не под всякое железо найти можно. Я потому на ХР и сижу, что ещё не под всё железо имеются дрова для семерки.

 
BVOGДата: Понедельник, 27.09.2010, 11:46 | Сообщение # 50
Полковник
Группа: Проверенные
Сообщений: 184
Награды: 0
Репутация: 4
Статус: Offline
Возможно...

Skype: thebvog
 
MichmanДата: Понедельник, 27.09.2010, 15:09 | Сообщение # 51
Лейтенант
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Статус: Offline
Никто не подскажет, как лучше хранить множество объектов с одинаковыми свойствами - в списке? Например, в стратегии, где есть различные рода войск и численность юнитов в каждом роде войск порядком 1000. Значит необходимо создать классы на каждый род войск, поскольку они всё же не совсем одинаковые - одни десантники, другие ракетчики, гренадеры и т.д. А далее при создании юнита определенного класса, инициализировать его и помещать в список, котоый будет носить имя класса. Или как правильнее будет с точки зрения Панды и производительности?

Сообщение отредактировал Michman - Понедельник, 27.09.2010, 15:18
 
BVOGДата: Понедельник, 27.09.2010, 16:39 | Сообщение # 52
Полковник
Группа: Проверенные
Сообщений: 184
Награды: 0
Репутация: 4
Статус: Offline
В принципе, можно копировать:
Code

self.myobject = loader.loadmodel("my.egg")
self.myobject.copyTo(self.mycopyobject)

Это на примере моделей, если не ошибаюсь, то можно это и с объектами сделать.


Skype: thebvog
 
ninthДата: Понедельник, 27.09.2010, 18:33 | Сообщение # 53
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Michman,
По-сути непосредственно панда здесь ни при чём - это скорее вопросы к скорости работы питона со списками.

Организация зависит от того, насколько сильно различаются у тебя юниты. Имеет смысл сделать, к примеру под пехоту один класс, который будет обладать всеми возможностями всех пехотинцев (например, водить танк, стрелять из снайперской винтовки и т.п.) и по необходимости включать/выключать для определённого рода войск данную возможность - такой подход упростит жизнь, если тебе например вдруг потребуется создать уникального юнита или переопределить способности какого-то рода войск. В то же время для техники стоит делать уже свой собственный класс.

А держать можно всех в одном массиве. В качестве оптимизации, можно сделать два массива - один общий, и один - "кэш". В общем держать всех юнитов, а в "кэше" тех, которые активно задействованы в игровом процессе в данный момент.

BVOG, copyTo вовсе не обязательно использовать - панда сама проверяет, загружена ли модель в память и если загружена, то берёт из памяти а не с диска.

 
MichmanДата: Понедельник, 27.09.2010, 22:24 | Сообщение # 54
Лейтенант
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Статус: Offline
Quote (ninth)
По-сути непосредственно панда здесь ни при чём - это скорее вопросы к скорости работы питона со списками.

Чуть-чуть неправильно понял меня, моя ошибка.)
Я хотел знать - есть ли у Панды какие-либо методы для облегчения создания множества схожих или одинаковых по харктеристикам объектов(NodePath) и хранения с целью обращения к параметрам объектов. И если есть, то как в плане призводительности данный метод. В мануале я ничего похожего не нашел, потому и спрашиваю.) Как я понял из твоего поста нет ничего подобного.)

Quote (ninth)
А держать можно всех в одном массиве

В списке или в массиве? Насколько я правильно понял из учебников по питону массивы могут хранить только лишь значения, а не объекты. Или можно и объекты в массиве хранить?

Добавлено (27.09.2010, 22:24)
---------------------------------------------

Quote (BVOG)
В принципе, можно копировать:
Code

  self.myobject = loader.loadmodel("my.egg")   
  self.myobject.copyTo(self.mycopyobject)  

Это на примере моделей, если не ошибаюсь, то можно это и с объектами сделать.

BVOG, но в данном случае все загруженные копии будут выполнять роль статики в сцене и как обратиться к определенному объекту в данном случае при выполнении? Так травку( biggrin ) и деревья посеять можно и много другой статики.)

 
ninthДата: Понедельник, 27.09.2010, 23:22 | Сообщение # 55
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Не, работа с массивами - это задача языка программирования (в данном случае либо питон либо си), а не движка. Движок лишь оперирует тем, для чего предназначен.
В питоне нет массивов как таковых - заменой массива является список, а есть ещё кортеж и словарь. Кортеж - неизменяемый список, задаётся во время объявления. Словарь - именованный список, в котором к элементам можно обращаться по некоторому уникальному ключу, что характерно, ключом может быть что угодно )
Питон имеет ссылочную структуру - в переменных, в т.ч. в списках хранятся ссылки а не объекты или числа или строки или что-то ещё. А уж куда эта ссылка ведёт - это дело программиста. Строго говоря, числа и строки в питоне тоже являются объектами и имеют некоторые свойства )
 
BVOGДата: Вторник, 28.09.2010, 08:55 | Сообщение # 56
Полковник
Группа: Проверенные
Сообщений: 184
Награды: 0
Репутация: 4
Статус: Offline
Во первых, я это для наглядности, а во вторых управление можно передать элементу массива, в скобках копирования.

Skype: thebvog
 
MichmanДата: Вторник, 28.09.2010, 20:57 | Сообщение # 57
Лейтенант
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Статус: Offline
Quote (BVOG)
Во первых, я это для наглядности, а во вторых управление можно передать элементу массива, в скобках копирования.

Другое дело. Речь-то именно о массивах.

Quote (ninth)
Не, работа с массивами - это задача языка программирования (в данном случае либо питон либо си), а не движка. Движок лишь оперирует тем, для чего предназначен.

Я просто подумал: может быть разработчики движка реализовали работу с большим количеством объектов сцены на "сишном" языке и обернули в питон. И где-то есть эти "волшебные функции", которые упростят жизнь гейм девелоперу.))))

Quote (ninth)
В питоне нет массивов как таковых

Как это нет массивов? А в модуле math есть массив. Конечно это не тот массив в привычном понимании. Он работает как список, только менять его длину нельзя и хранимые данные должны быть одно типа, в принципе, как обычные массивы в паскале или бейсике . Вот, что пишет Г. Россум:

array - эффективные массивы чисел.
Этот модуль определяет новый тип объектов array, эффективно реализующий массивы значений основных типов: символов, целых и вещественных чисел. Массивы ведут себя как аналогично спискам с одним исключением: все сохраняемые в массиве объекты должны быть одного определенного типа. Тип элементов определяется при создании массива.

array(typecode [, initializer])
создает новый объект-массив, тип элементов которого определяется символом typecode, инициализирует элементами последовательности initializer(должен быть списком или обычной строкой; initializer передается методу fromlist() или fromstring() и возвращает его.

typecode:
'c' - char
'b' - signed char
'B' - unsigned char
'h' - signed short
'H' - unsigned short
'i' - signed int
'I' - unsigned int
'l' - signed long
'L' - unsigned long
'f' - float
'd' - double

Добавлено (28.09.2010, 16:15)
---------------------------------------------
Я возвращаюсь к нашим "баранам" - к теням.
Заметил такую штуку: при попытке включить тени более чем от двух Spotlight лезут ошибки. Эти ошибки мне понятны - нет пока поддержки автогенератора шейдеров для большего количества ИС, чем 2. При этом исчезают карты нормалей - на обьектах исчезает Bump. В итоге, надо самому писать шейдеры для реализации теней от большего количества ИС.

Чем больше вникаешь в Панду тем больше узких мест начинаешь обнаруживать. Я не "против" Панды и "за" какого-либо другого движка. Каждый движок имеет право на существование, хотя бы для того, чтобы у разработчика игр был выбор на каком движке и ЯП ему писать стратегию, шутер, квест или что-то ещё.
Но, черт возьми, так хочется гармонии в функционале движка и производительности! Одни разрабы движков гонятся за большое количество полигонов в сцене и забывают про шейдеры, у других, больше чем 8 источников света не "воткнёшь" в сцену и тени такие, что от трех-четырёх объектов(и больше в сцене ничего нет!) моя видюха "стоИт". Третьи, вообще, реализут функцию вращения камеры, не удосужившись прописать функцию получения угла поворота по оси, т.е. повернуть её можно, а взять угол на который она повернулась нельзя; приходится где-то в переменнной хранить этот угол, МАРАЗМ одним словом! Прошу прощения наболело. )

Вообщем, я что хотел спросить? А, вспомнил: при реализации нескольких диспетчеров, как они выполняются, сверху вниз - диспетчер за диспетчером или там приоритеты есть? И если для одной задачи поставить приоритет 20 а для другой 80, то что при этом происходить будет? Для задачи с приоритетом в 20 будет затрчиваться 20% процессорного времени или как?

Добавлено (28.09.2010, 18:08)
---------------------------------------------
Есть ли метод в Панде включающий и выключающий ИС? Например, нажав на импровизированный выключатель в игре включить свет и так же выключить.

Добавлено (28.09.2010, 20:57)
---------------------------------------------
Кстати, в Панде при использовании автогенератора шейдеров более 5-ти Spotlight создавать нет смысла, они попросту не работают и висят в сцене "мёртвым" грузом. При это в консоли возникают сообщения, в которых мне советуют "поковырять" профили моей видеокарты.) Другие ИС не пробовал.

Может создать на форуме тему про ограничения/особенности Панды и если кто-нибудь заметит какие-либо ограничения/особенности пусть описывает. Думаю полезная тема получится, если такой нет, конечно.

Сообщение отредактировал Michman - Вторник, 28.09.2010, 16:49
 
ninthДата: Среда, 29.09.2010, 19:51 | Сообщение # 58
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Quote (Michman)
А в модуле math есть массив

Я имел ввиду базовые возможности. Данный array потому и вынесен в math, что предназначен в основном для работы с математическими вычислениями.

Мне кажется ты пытаешься смешивать понятия конструктора и движка. Панда - это движок, претендующий на универсальность, да разработчики внесли некторые элементы конструктора, но тем не менее это всё же движок. То, что хочешь ты - "волшебные функции" - характерно для конструкторов, но конструкторы как правило направлены на определённый тип игр, по крайней мере, я не видел универсальных. К примеру, реализация того-же освещения в стратегии и в шутере будет достаточно сильно различаться на уровне движка.
Я пытаюсь сейчас сделать на основе панды нечто вроде расширяемого конструктора, но дело движется достаточно медленно - со временем туго.

Кстати, 8 источников света - это ограничение не движка, а графических API, в данном случае, если мне не изменяет память, такое ограничение стояло на DX8.

Quote (Michman)
Есть ли метод в Панде включающий и выключающий ИС?

Это тоже "фича" конструкторов. В панде придётся написать класс или функцию, которая будет уже рулить источниками. Если ты спрашиваешь "вообще" про возможность отключать - то да, есть, причём достаточно гибкий, к примеру можно выбрать чтобы источник освещал только определённый узел сцены.

Quote (Michman)
при реализации нескольких диспетчеров, как они выполняются, сверху вниз

Тывсё же определись что тебе нужно - диспетчер или задачи? Потому что судя по описанию, ты говоришь о задачах, хотя называешь диспетчером.
taskMgr - диспетчер (дефолтный)
def myTask(task):
return task.cont - задача
В любом случае, если ты не реализуешь мультипоточность, все инструкции будут выполняться линейно.

Quote (Michman)
Может создать на форуме тему про ограничения/особенности Панды

Создай, будет полезно.
 
MichmanДата: Четверг, 30.09.2010, 00:32 | Сообщение # 59
Лейтенант
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Статус: Offline
Quote (ninth)
ты говоришь о задачах, хотя называешь диспетчером.

Извиняюсь, оговорился. Всё верно, спрашивал о задачах. Для меня как питон так и Панда - совершенно новое, поэтому путаюсь в терминологии).

Quote (ninth)
Мне кажется ты пытаешься смешивать понятия конструктора и движка

Ни в коем случае).

Quote (ninth)
То, что хочешь ты - "волшебные функции"

"Волшебные функции" - это ирония с моей стороны.

Quote (ninth)
Я пытаюсь сейчас сделать на основе панды нечто вроде расширяемого конструктора

Желаю удачи. А цели какие?

P.S. Чур не смеяться? Я "умываю руки" недельки на три; сожусь за разработку своей первой игры на Панде, всё что нужно узнал, конечно, не без помощи ninth'а и BVOG'а, за что Большое Спасибо! Как дело наберет обороты создам темку в "проектах", в которой буду описывать процесс создания
игры со скриншотами.

Всем желаю удачи и создать игру своей мечты не во сне, а на яву.

Сообщение отредактировал Michman - Четверг, 30.09.2010, 00:33
 
BVOGДата: Четверг, 30.09.2010, 10:59 | Сообщение # 60
Полковник
Группа: Проверенные
Сообщений: 184
Награды: 0
Репутация: 4
Статус: Offline
Удачи с проектом!)

Skype: thebvog
 
Форум Panda3D - по русски » Panda3D » Для начинающих » Вопросы, вопросы, вопросы... (Вращение, перемещение и т.д.)
Поиск: