среда, 29 октября 2014 г.

Panda3D ShowCase: Проекты на движке Panda3D

Ходят слухи о невостребованности движка. Отнюдь. В данной статье - публикация некоторых проектов, в основе которых лежит, как Вы уже понимаете, движок Panda3D. Поехали...

Avolition Game


 





Panda3D Terrain & Forest





ToonTown Test




Panda3D Shading Example



P.S. никакой рекламы, коммерции и выгоды не стоит за показом вышеперечисленных проектов. 

вторник, 14 октября 2014 г.

В разработке: Panda3D 1.9

И снова всем привет. Давненько не виделись. А между тем, дельцы - разработчики горячо любимого нами движка Panda3D по чуть-чуть куют версию 1.9.


Работа над данной версией ведется уже несколько месяцев и вот уже первые подробности.

Tessellation shaders





Compute shaders



Render-to-texture features



Debugging and profiling features



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


вторник, 3 февраля 2009 г.

Panda3D: Звук. Часть 1

Для воспрозведения звука в Panda3D используется 3 библиотеки:

FMOD: мультиплатформенный звуковой движок. FMOD поддерживает множество форматов звуковых файлов - MP3, WAV, AIFF, MIDI, MOD, WMA, OGG Vorbis. Но существует одно существенное "НО": лицензией не предусматривается использование данной библиотеки в коммерческих целях, до тех пор, пока она не будет приобретена пользователем.

OpenAL: это также весьма распространенная опен-сорс библиотека, поддерживаемая Panda3D. Можно с легкостью использоваться при создании коммерческого продукта.  Единственное, что может в ней не нравится - это нестабильность при работе в unix-средах.

Miles:данная библиотека не идет в комлпекте с движком, поэтому необходимо скачать исходники движка и по шаблону скомпилировать вручную.


Также весьма применимыы библиотеки Pygame и PyOpenAL. (Pygame можно использовать вообще ак отдельное средство для разработки игр на Python`e :) ).

Для выбора желаемой библиотеки для работы с Panda3D необходимо попросту настроить движок (см. статью Panda3D: Настройка).

При конфигурировании параметра audio-library-name использовать следующие варианты: ibp3openal_audio, libp3fmod_audio, or libmiles_audio.

Имейте ввиду: при использовании FMOD на 64-битных системах возможны частые креши.

Теперь немного пошерстим код, позволяющий реализовать музыкальное оформление Ваших будущих проектов.

Логически звук в играх можно разделить на 2 большие категории: звуковые эффекты и собственно музыка. В это плане Panda3D не исключение. Теперь приступим к  непосредственному изучению кода.

Импорт звука возможен при использовании "loader" класса. Как нам известно (из прошлых статей) данный класс возможно добавить следующей строкой кода в блоке импорта библиотек и т.д.

import direct.directbase.DirectStart

Теперь используем код для импорта непосредственно звукового файла:

mySound = loader.loadSfx("SoundFile.wav")

Здесь все предельно ясно. В левой части - имя, которое мы присваеваем проигрываемому файлу. Справа расположен код использования класса loader имя и путь к файлу. Важно помнить, что необходимо обязательно указывать расширение файла, а также импортировать форматы, которые поддерживает Panda3D

Чтобы проиграть звук вводим код:

mysound.play()

Для остановки проигрывания:

mysound.stop()

Уровень звука:

Уровень громкости варьируется между 0.1 и 1. Используем код:

mySound.setVolume(0.5) - к примеру


Расположение звукового источника:
Далее приведен код для позиционирования проигрываемого звука. Здесь параметр звука изменяется от -1.0 до 1.0. Следовательно, например, у вас стоит  система 2.0, при значении -1.0 - звук будет идти из левой колонк, при 1.0 - из правой. Код:


 mySound.setBalance(-0.5)

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

base.sfxManagerList[n].update() 

Так как каждый кадр рендера воспроизводится отдельно, то данная операция позволяет изменять положение источника звука командой "update".

Данная операция работает и требуется для выполнения только в интерактивном режиме работы с приложениями на Panda3D.

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

С уважением, Dredd.


понедельник, 2 февраля 2009 г.

Panda3D: Настройка

Эта мини-статья посвящена, как вы уже поняли настройке параметров движка. Кто-то уже разобрался с этим, ну а я разложу по полочкам все для тех, кто еще ломает себе голову над настройкой параметров движка.

Вся кинфигурационная информация содержится в файле Config.prc (по умолчанию C:\Panda3D-1.5.4\etc ). Открыв его в любом текстовом редакторе мы получим доступ к редактированию. Далее я распишу основные (на мой взгляд) параметры, которые стоит менять в конфигурационном файле.

load-display - данная переменная отвечает за рендер-режим (варианты: pandagl;pandadx8). Думаю здесь все понятно. GL - используем библиотеку OpenGL, dx -Microsoft DirectX.

win-size - определяет размеры окна рендеринга Panda3D (варианты: 640 480, 800 600, 1024 768 и т.д.).

fullscreen - параметр полноэкранного отображения (варианты: #t,#f). Аналогия true - правда, false - ложь.

show-frame-rate-meter - включает показатель частоты кадров в секунду (варианты: #t, #f).

audio-library-name - переменная, отвечающая за библиотеку воспроизведения звука (описание использования звука будет отображено в ближайших статьях :) ).

basic-shaders-only - параметр, отвечающий за отображение и использование базовых шейдеров при рендере (варианты: #t, #f).

hardware-animated-vertices - параметр, отвечающий за включение\выключение аппаратной вертексной анимации (графический наворот если по-простому :) ). 1 - вкл, 0 - выкл.

Параметры:

model-path

sound-path

texture-path

отвечают за считывание информации из директорий.

Опять таки, повторюсь, что в данной статье я представил только те параметры, которые , по МОЕМУ мнению, весьма важны при работе с движком. Если Вы считаете, что это не так, я тоже в этом буду с вами солидарен :). За сим, позвольте откланяться, до новых статей.

С уважением, Dredd.

четверг, 8 января 2009 г.

Panda3D: Импорт моделей

Прежде всего хочу сказать, что данный движок имеет множество импорт-плагинов для различных редакторов. На данный момент в пакете движка поставляются плагины импорта из: 3D Studio Max, Maya, Blender, SoftImage, Milkshape 3D, GMax. А также возможен импорт из форматов: lwo, dxf, flt, vrml, x.

В данной статье я рассмотрю только экспорт из 3DS Max (версия 3DS Max 2009), но, для тех кто понял данный принцип, не составит труда разобраться с другим 3D редактором.

Для начала необходимо скопировать плагин из директории движка (C:\Panda3D\plugins) в папку plugins папки, в которой установлен 3D Max. Перед запуском редактора не забудьте установить "vcredist_x86-sp1.exe"(поставляетяс вместе с движком: C:\Panda3D-1.5.4\bin). Затем запускаем собственно редактор.

Открываем модель, которую необходимо экспортировать. Я взял простой параллелепипед, так как модели для своего проекта еще рановато творить :)

Затем необходимо создать объект экспортера (см. скриншоты):


 

Теперь переходим на закладку "modify"т нажимаем кнопку "add" чтобы добавить объект для экспорта.

В окне экспорта мы выбираем экспортировать ли целую сцену или отдельный объект. Также есть выбор экспортируемой анимации.

Переводит выбор на "Export Meshes" и нажимаем кнопку "add", затем кликаем на наш объект. Затем нажимаем Select. 

Указываем путь сохранения и имя .egg объекта и нажимаем ОК.

Затем нажимаем "Export Now" и вуаля, готово :)

Теперь данный объект можно использовать в приложениях на движке Panda3D.

С уважением, Dredd