Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование с нуля - это совсем просто! 169) Программирование 3D-игр: Текстуры


Школа программирования

169) Программирование 3D-игр: Текстуры

Предыдущий выпуск по 3D-играм и BlitzBasic, был N 165.

Текстуры - фундаментальное понятие 3D-графики, представляющее собой графические изображения, накладываемые на любые объекты BlitzBasic. Если, например, надо создать образ травяного поля, стены с кирпичной кладкой или потолка с красивыми узорами, то в программе формируется объект (прямоугольник или плоскость), на которой размещается (говорят иногда, "натягивается") текстура, соответствующее графическое изображение участка травы или стены. Изображение это автоматически повторяется по всему пространству покрываемого объекта.

Текстуры также применяются при создании игровых персонажей - моделей, создаваемых в различных 3d-редакторах, внешний вид которых (например, одежда) определятся текстурой.

Текстура создается и загружается в программу с помощью команды

LoadTexture( имя-файла )

В качестве имени файла указывается путь к графическому файлу с изображением текстуры (в формате .bmp или .jpg).

tex = LoadTexture( "trava.bmp" )

Далее эту текстуру (идентификатор) можно "натянуть" на существующий объект с помощью команды EntityTexture, первый параметр которой задает объект, второй - текстуру.

cube=CreateCube()
tex = LoadTexture( "trava.bmp" )
EntityTexture cube,tex

Теперь в основном цикле формирования изображения куб будет автоматически представлен с графическим покрытием, определяемым файлом trava.bmp.

Размер заранее подготовленного изображения может не соответствовать размеру объекта, созданного в игре. Поэтому существует команда ScaleTexture, которая позволяет растянуть или сжать текстуру в нужной пропорции:

ScaleTexture tex, 2, 0.5

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

После выполнения такой команды изменения наступают во всех объектах, использующих данную текстуру.

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


(c) 2004-2007 Сергей Бобровский : bo собака russianenterprisesolutions.com

Школа программирования с нуля
Все предыдущие выпуски базового курса всегда тут:
http://www.infiltration.ru/p/

Неофициальный сайт поддержки (со срочными вопросами - сюда):
www.prog-begin.net.ru.


Мои книги (учебные курсы) "Технологии Delphi / C++ / C#. Разработка приложений для бизнеса".
http://shop.piter.com/display.phtml?a_id=17681&web_ok=all

Все эти учебные курсы рассчитаны не только на разработчиков, но и на всех тех, кто хочет стать ИТ-менеджером. Для этого как минимум нужно иметь общее представление о современных технологиях разработки и их истории и владеть соответствующей терминологией. Именно это мои книги и дают.
В учебных курсах описаны десятки технологий, каждой из которых посвящены отдельные книги. Таким образом, купив один учебный курс, вы существенно сэкономите :) В книгах полностью описаны:
- Delphi (версия 2006, полностью совместимая с Delphi 2005/2006/2007 и Turbo Delphi) для обеих платформ - Win32 и .NET;
- C# (новый язык Microsoft, на котором базируется платформа .NET и все новые версии Windows);
- C++ для платформы Win32.
Охвачены также темы работы с файлами на этих платформах, создания файл-серверных, клиент-серверных, распределенных приложений, веб-программ (Indy, ASP.NET, веб-сервисы). Описаны языки SQL и OCL. Немало глав посвящены истории программирования и различных технологий. Особое внимание уделено созданию программ с помощью технологии ECO и языка моделирования UML - программы фактически рисуются, и теперь даже для создания корпоративных приложений и их переноса в Интернет не обязательно знать программирование!
Отдельная часть отведена технологиям организации групповой работы, управления требованиями, контроля версий, локализации и тестирования.
Тут подробнее про книги.

Мои книги, которые пока доступны в продаже:


Дизайн рассылки: Алексей Голубев - Web-дизайн и web-программирование


В избранное