| Делфи [13] |
| Game Maker [9] |
| 3D Game Studio [1] |
| Blitz 3D [7] |
| ПХП (PHP) [3] |
| С++ (C#) [7] |
| Остальные [20] |
| Большинство уважаемых читателей играло в такие шедевры игровой индустрии как DOOM, Half-Life и др.? Наверняка вы наслаждались физикой в этих играх: реалистичным поведением и взаимодействием предметов. Тем, как катится бочка или кантуется ящик. Оказывается, такую физику можно сделать даже на Blitz. Об этом и пойдет речь в предлагаемом цикле статей. В начале будет немного теории. Я знаю, теория не настолько интересна, как программирование. Но без нее дальше будет много непонятного. Потом коротко рассмотрим существующие физические движки. В конце приведу пример создания физического мира. Материал совсем новый, постараюсь изложить ясно и остановится на нужных моментах более подробно. Для этого существуют так называемые физические движки. Физический движок — это программа, которая рассчитывает физику предметов, сделанная для применения в играх и в других приложениях. Используется в играх как отдельный модуль для создания физического мира. На данный момент наиболее популярны: ODE, Newton, Takomak, Havok и PhysX. ODE — бесплатный и распространяется с исходным кодом. Newton тоже бесплатный, обладает высокой стабильностью, но по этой причине, увы, проигрывает в скорости. Havok и PhysX — самые быстрые, обладают очень большим спектром возможностей. Havok знаком по игре Half–Life 2, для нее он и был разработан. К сожалению, по причине его дороговизны я не смог его оценить. На PhysX игры только начали появляться. Вот игры, которые используют этот движок: Остановимся на PhysX и в дальнейшем будем делать все только на нем. Почему именно он? PhysX намного быстрее других движков, очень гибок в настройках, имеет богатый спектр возможностей (их мы оценим по ходу изучения), а главное — его можно использовать бесплатно на условиях рекламы (иначе говоря, в вашей игре вы должны всеми возможными способами расхваливать PhysX, но можно поступить и иначе — просто заплатить кругленькую сумму долларов). Если кто-то еще не знает, то PhysX был разработан компанией AGEIA для плат PhysX. Плата предназначена для ускорения просчета физики. Вот что нам обещает производитель чипа: • динамика твердого тела; Приступим к делу. Качаем драйвера: itmbin.nm.ru/physx/physx.zip — 5 метров (самые последние дрова можно закачать на сайте support.ageia.com, там же можно узнать подробную информацию), инсталлируем. Качаем PhysX — ddownloadd.nm.ru/Blitzpx.rar (либо смотрите на сайте dev.swargo.com в файлах, там буду выкладывать уроки и последние обновления — следите за новостями). Теперь ВНИМАТЕЛЬНО: в архиве два файла — Blitzpx.dll и Blitzpx.decls. Копируем их в папку X:\Blitz3d\userlibs. Все, движок готов к использованию. Создаем в блитце новый проект. Graphics3D 640,480 Теперь разберем каждую команду и все параметры функций по отдельности. PxCreateCube(x, y, z, mass, dens) — эта функция создает параллелепипед с размерами по осям x, y, z и массой mass. Dens — плотность, пока об этом знать не обязательно, просто ставьте 1. В нашем случае мы создаем кубик с ребрами длиной 1 и массой 3. Функции pxSetPosition body, x, y, z и pxSetRotation body, pitch, yaw, roll устанавливают кубик в точке x, y, z и разворачивают под углами pitch, yaw, roll. То есть кубик будет создан в точке 0,7,0 и развернут под углами 30,0,40. pxSetEntity(cube_mesh, cube_body) — определяет каркас (меш) кубика для созданного нами физического тела. Можно обойтись без этой команды. Альтернативный способ рассмотрим потом. В сцене можно наложить текстуры на кубик и плоскость. Это придаст реалистичный вид нашему творению. Из кубика можно сделать деревянный ящик, картонную коробку или кирпич :-). Вот что получилось у меня ( рис. 2). | |
| Категория: Blitz 3D | Добавил: MrWolf_ (11.08.2010) | |
| Просмотров: 567 | Рейтинг: 1.0/1 |
| Всего комментариев: 0 | |








Сайт:
Новости:
Скачать:
Дополнительно:
Форум:









