[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум Panda3D - по русски » Panda3D » Для начинающих » ДеЦЦкий сад "ПандЁнок"
ДеЦЦкий сад "ПандЁнок"
ninthДата: Вторник, 30.06.2009, 08:48 | Сообщение # 46
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
FertoVordalastr, соррь, первый пост пропустил - конечно делай.

С проваливанием проблему, думаю, можно решить проще - увеличить высоту с которой пускается луч, детектящий землю, т.к., видимо, при изменении ЛОДа его начало оказывается ниже уровня земли

 
ninthДата: Суббота, 05.09.2009, 21:05 | Сообщение # 47
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Урок №6
 
wfkДата: Вторник, 05.01.2010, 20:07 | Сообщение # 48
Рядовой
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
Не получается Урок №1
Использую Mac OSX Leo
Поставить SPE не удалось, поставил Editra, разбираюсь плохо, потому его плагин PyShell не смог прикрутить чтоб работал с пандой, соотв. код пишу в нем, запускаю через terminal.app (коммандная строка)
Картинку закинул в '/res/textures/'
Игра запускается, серый экран, но картинку загрузить не может, в терминале выдается:

Code
python /Users/wfk/Documents/gamedev/MegaRPG/main.py          
DirectStart: Starting the game.
Known pipe types:
           osxGraphicsPipe
(all display modules loaded.)
:grutil(error): Failed to load heightfield image res/textures/heightfield.png!
:grutil(error): No valid heightfield image has been set!

Последняя строка
Code
:grutil(error): No valid heightfield image has been set!

Выдается без остановки.
На всякий случай, файлы прикрепил.

Попробывал запустить игру из файлов, что выложил ninth в Сообщении #38 и выдает вот что:

Code
python /Users/wfk/Downloads/megarpg_/main.py      
DirectStart: Starting the game.
Known pipe types:
       osxGraphicsPipe
(all display modules loaded.)
:egg2pg(warning): AnimBundle Armature specifies contradictory frame rates.
:grutil(error): Failed to load heightfield image res/textures/heightfield.png!
:grutil(error): No valid heightfield image has been set!
Assertion failed: _num_channels >= 1 && _num_channels <= 4 at line 77 of built/include/pnmImageHeader.I
Bus error

P.S. Чувствую проблем для меня будет достаточно)))

Проблему решил.
Состояла она в указании пути к карте высот.
Поставил абсолютный путь вместо относительного и проблема решилась ('/Users/wfk/Documents/gamedev/MegaRPG/res/textures/heightfield.png' вместо 'res/textures/heightfield.png')
*ушел читать о загрузке моделей*

Прикрепления: MegaRPG.zip (33.0 Kb)


[color=gray][/color]

Сообщение отредактировал wfk - Вторник, 05.01.2010, 21:04
 
ninthДата: Вторник, 05.01.2010, 23:13 | Сообщение # 49
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
можно попробовать извлекать путь сначала к исполняемому файлу, а потом к нему достраивать нужный, посмотри стандартные примеры, например того же ральфа
MYDIR=os.path.abspath(sys.path[0])
 
wfkДата: Вторник, 05.01.2010, 23:33 | Сообщение # 50
Рядовой
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
Спасибо за пример, я уже его рассмотрел))) по сути работает и
MYDIR=sys.path[0]
loc.loadTerrain(MYDIR + '/res/textures/heightfield.png')

Есть ли разница MYDIR=os.path.abspath(sys.path[0]) и MYDIR=sys.path[0]?


[color=gray][/color]
 
ninthДата: Среда, 06.01.2010, 21:56 | Сообщение # 51
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
abspath приводит путь к абсолютному, характерному для данной конкретной оси, т.к. sys.path[0] может представлять, опять же, относительный путь/
Кстати, ты можешь попробовать использовать и таким образом os.path.abspath('res/textures/heightfield.png') обрати внимание на отсутствие начального слеша, или os.path.abspath('./res/textures/heightfield.png')
 
wfkДата: Четверг, 07.01.2010, 22:17 | Сообщение # 52
Рядовой
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
Попробуем)
Кстати все остальное прошло в полном порядке с маленькими "но" – в ходе запуска появляется в терминале две ошибки:
Code
:egg2pg(warning): AnimBundle Armature specifies contradictory frame rates.
:grutil(warning): Rescaling heightfield image /Users/wfk/Documents/gamedev/MegaRPG/res/textures/heightfield.png to 257 by 257 pixels

Вторая понятно что не совсем ошибка, так понимаю почему-то этот grutil увеличивает размер картинки с 256 до 257 пикселей.
А первая вот не совсем понятна, с английским не очень хорошие отношения, но похоже что что-то с частотой кадров в анимации скелета, а так все идет замечательно.

З.ы. Пользуясь случаем хотелось выразить большую благодарность за создание и развитие комьюнити паны3Д на русском языке и за уроки в частности)

З.з.ы И всех с Рождеством!)


[color=gray][/color]
 
AWDFДата: Пятница, 12.03.2010, 11:36 | Сообщение # 53
Рядовой
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
Отличные уроки. С большим удовольствием прошел по всему курсу. Жаль что прекратились, тут еще можно было бы много чего сделать сугубо для обучения smile
 
ninthДата: Пятница, 12.03.2010, 15:52 | Сообщение # 54
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
может и будет продолжение, если у меня будет побольше времени )
 
MibusДата: Пятница, 14.05.2010, 03:30 | Сообщение # 55
Рядовой
Группа: Пользователи
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
Спасибо за уроки. Попутно пытаюсь знакомится с питоном. До этого немног оизучал другие языки и на деЦЦком саде прост опривыкал к коду питона. Затем полазил по сайтам обучающим основам питона и вот разбираюсь повторно с уроками панды попутно пытаюсь немног опеределать код дабы лучше усвоить как это работает. Буду задавать вопросы по мере поступления. Вот несколько на первый раз.
1. Во втором уроке про освещение непонятно почему для передачи цвета используется модуль Vec4? Можно это же сделать по другому?
2. В качестве террайна загрузил .egg файл, но при натягивании текстуры он только окрашивается в цвет,а самого рисунка нету. Пытался наложить текстуру в блендере на меш и потом заново выгрзить в *.egg файл - то же самое. Пробовал другую текстуру, тоже берёт от неё только цвет, а рисунка нету. попробовал использовать setMinfilter(Texture.FTLinear), но наверное я что-то не так делал, т.к. выдаёт ошибку.

Можете еще сделать уроки, даже на том же деццком саду, по работе с сетью, а еще лучше по основам создания серверной и клиентской части? smile

Сообщение отредактировал Mibus - Пятница, 14.05.2010, 03:34
 
ninthДата: Воскресенье, 16.05.2010, 15:17 | Сообщение # 56
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
1. Стандартно для задания цвета используется 4 компоненты: Red, Green, Blue, Alpha (Красный, Зелёный, Синий, Прозрачность) я использовал Vec4 скорее по привычке работать с векторами. Процедура используется одна и та же для задания цвета освещения или цвета объекта. Можно задавать и по-другому:
setColor(r,g,b) - здесь передаются три аргумента, прозрачность ставится по умолчанию (непрозрачный).
setColor(r,g,b,a) - передаются все 4 аргумента напрямую
setColor((r,g,b,a)) - здесь передаётся кортеж из 4 компонентов вместо соответствующего вектора
setColor© - все компоненты цвета выставляются равными "c"

работают и обычные питоновские фичи, например:
color = (0.5,0.5,1.0)
np.setColor(*color)

2. Можешь сюда egg прикрепить?

3. Попробую, но сейчас со временем туго (

 
MibusДата: Понедельник, 17.05.2010, 09:09 | Сообщение # 57
Рядовой
Группа: Пользователи
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
да любой меш обтянутый текстурой и экспортированный в *.egg так себя ведёт почему-то.
Дело думаю не в нём, т.к. как я уже писал при надевании тексуры в панде получается то же самое, хоят вот загружаю *.egg модели панды (которая при установке панды идёт) - всё нормально отображается.
Прикрепил обычный куб выгруженный из блендера через чикен он даже не текстурирован там. Натягиваю на него картинку у которой присутствуют два цвета. В итоге получатеся куб одного цвета (среднее значение тех двух).
Текстуру применяю через строку типа этой:
Code
self.button.setTexture(loader.loadTexture('res/button.bmp'))

кстати, чем больше сейчас работаю в панде тем больше понимаю на сколько удобно работать с векторами когда надо передать по 3-4 значения, особенно когда в одной процедуре их несколько smile

Прикрепления: button.egg (2.7 Kb) · button.bmp (11.1 Kb)


Сообщение отредактировал Mibus - Понедельник, 17.05.2010, 09:18
 
Dimon3DДата: Понедельник, 17.05.2010, 15:11 | Сообщение # 58
Полковник
Группа: Проверенные
Сообщений: 202
Награды: 1
Репутация: 4
Статус: Offline
вроде анврап (UV mapping) надо сделать, я так понял )
 
MibusДата: Вторник, 18.05.2010, 02:33 | Сообщение # 59
Рядовой
Группа: Пользователи
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
Dimon3D, точно! Спасибо! Помогло в блендере выбрать Unwrap перед тем как экспортировать smile

Только появился новый прикол. К панде, я думаю это отношения не имеет. Текстура натянутая на меш в панде отображается почему-то зеркально. Особенно это заметно если есть надпись - там буквы отображаются как в зеркале. У меня блендер последней версии, возможно я что-то не так делаю, возможно чикен не совсем корректно работает с этой версией. В предыдущей версией блендера он вообще не захотел запускаться.

Частично разобрался. Такой глюк только с мешем который наследуется от aspect2d. Если привязать к render то текстура отображается правильно.

п.с. как-то уже отошли от темы. можно перенести в другую где общие вопросы.

Сообщение отредактировал Mibus - Вторник, 18.05.2010, 05:59
 
ninthДата: Вторник, 18.05.2010, 15:51 | Сообщение # 60
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Да, лучше отдельную тему сделай под это.
и кинь скрины с "нормальным" и "зеркальным" отображением.
 
Форум Panda3D - по русски » Panda3D » Для начинающих » ДеЦЦкий сад "ПандЁнок"
Поиск: