воскресенье, 14 сентября 2008 г.

Создаем заготовку проекта в Visual Studio 2005

Запускаем Visual Studio 2005, заходим в меню и выбираем File -> New -> Project. В открывшемся окне выбираем “Win32 Project”, пишем название проекта и щелкаем по кнопке “Ok










В следующем окне выбираем “Application Settings” и ставим галочку “Empty project”, этим мы указываем студии, то что нам нужен пустой проект, без автоматически создаваемых файлов. Щелкаем по кнопке “Finish”.










Теперь создадим файл main.cpp, в котором будет точка входа нашего приложения. Для этого в панели Solution Explorer щелкнем правой кнопкой мышки по папке Source Files и контекстном меню выберем Add->New Item. В открывшемся окне выбираем С++ File и введем имя файла main.cpp. Щелкаем по кнопке Add.









Набираем код:

#include "windows.h"

#ifndef _DEBUG

INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )

#else

int main()

#endif

{

     return 0;

}

Здесь небольшая хитрость в отладочном режиме у нас будет консольное приложение, а в релизе консоль создаватся не будет. Теперь необходимо настроть проект. Заходим в свойства проекта (Project->Propertis) во вкладке General ставим «Use Multi-Byte Character Set», этим мы указываем что не  будем использовать Юникод. В вкладке Linker->System ставим «Console (/SUBSYSTEM:CONSOLE)» (только для конфигурации Debug). Также желательно поставить в C/C++->Code Generation->Runtime Library  Multi-threaded Debug (/MTd))” для конфигурации Debug и “Multi-threaded (/MT)” для конфигурации Release, тогда ваша программа не будет требовать наличия библиотек Visual Studio 2005.

Возможности Огра

Возможности Ogre равны и даже превосходят некоторые возможности коммерческих движков 3D графики:

полная и равная поддержка OpenGl и Direct3D;

полная поддержка платформ Windows, Linux и Mac OS X;

простой и расширяемый фреймворк, легко встраиваемый в существующие приложения;

автоматическое управление состояниями рендера (render state) и иерархическое отсечение;

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

полная поддержка как фиксированного графического конвейера, так и программируемого, позволяя создавать шейдерные программы на ассемблере и языках высокого уровня, таких так Cg, HLSL и GLSL;

поддержка большого количества графических форматов включая PNG, TGA, DDS, TIF, GIF, JPG. Так же поддерживаются одномерные, трехмерные, кубические и сжатые текстуры;

полная поддержка техник рендера в текстуру и проективного тектурирования (декалей);

полная поддержка уровня детализации (Lod) и мипмапинга для материалов;

оптимизированный бинарный формат мешей, поддерживающий ручную и автоматическою генерацию лодов;

экспортеры для основных коммерческих и свободных пакетов 3D моделирования;

полный доступ с вершинным и индексным буферам и декларации вершин;

полная поддержка скелетной и вершиной анимации;

поддержка как программного, так и аппаратно ускоренного скиннинга;

поддержка групп статической геометрии;

поддержка биквадратных кривых Безье;

основанная на плагинах структура сцены, позволяющая использовать наиболее подходящий граф сцены для вашего приложения;

поддержка нескольких техник рендера теней;

автоматическое управление прозрачными объектами;

расширяемая система управления ресурсами, включающая поддежку файловой системы, архивов ZIP и PK3.

понедельник, 16 июня 2008 г.

Первая часть, первой главы "Pro OGRE 3D Programming"

Что такое Ogre?
Ogre 3D это стабильный, надежный, гибкий, кроссплатформенный и полнофункциональный движок предназначенный для разработки интерактивных трехмерных приложений. Если вы знакомы с терминами API и SDK, вы можете пропустить это обсуждение и перейти к следующей главе. Иначе будет полезно узнать некоторую базовую лексику.
Ogre 3D SDK
Набор инструментальных средств разработки программного обеспечения (software development kit) или SDK обеспечивает связь интерфейса прикладного программирования (application programming interface) с системными службами или функциональным возможностями. Например, вы хотите написать программу для Windows XP. API, который вы использовали бы, называется Win32 API, и его функциональные возможности доступны через множество библиотек уровня системы, с загадочными названиями, такими как user32.dll, kernel32.dll, и так далее. Теоретически, вы можете получить доступ к функциональным возможностям системных DLL, непосредственно используя низкоуровневые методы программирования, но вы можете пойти более легким путем используя SDK предоставленный Microsoft для вызова функциональных возможностей системы и служб. Microsoft Platform SDK содержит заголовочные файлы и библиотеки импорта, с помощью которых вы можете связать вашу программу с системными библиотеками.
Для системных сервисов предоставляемыми такими операционными системами как Windows или Linux, SDK состоит из заголовочных файлов и библиотек импорта для системных DDL (для Windows) . Для несистемных библиотек, например NVIDIA Cg Toolkit), SDK будет также включать DLL файлы (или .so - разделяемые библиотеки под Linux). Ogre – пример несистемной библиотеки, и Ogre SDK предоставляет вам заголовочные файлы, библиотеки импорта и динамически связываемые модули, собранные в режиме Debug или Release. В режиме отладки (Debug) собирается не оптимизированная версия, содержащая проверки памяти и инициализацию. Сборка Release оптимизирована для скорости выполнения, что обычно очень важно для интерактивных трехмерных приложений.
Ogre 3D (или просто Ogre, в книге будут использоваться оба названия) позволяет вам разрабатывать трехмерные приложения в объектно-ориентированном стиле программирования. Ogre – это объектно-ориентированный графический движок рендеринга (Object-Oriented Graphics Rendering Engine). 

Термин «движок» подразумевает что Ogre 3D «вырабатывает» ваши трехмерные приложения, позволяя вам сосредоточиться больше на других деталях вашего приложения и меньше на деталях отрисовки 3D сцены. Если вы знакомы с программированием с помошью Direct3D или OpenGL, вам известно сколько времени отнимает процесс построения и отрисовки трехмерной сцены, и вы должно быть рады что Ogre 3D существует.
Объектно-ориентированный это часто злоупотребляемый термин. Определение понимаемое разработчиками Ogre и мной, это просто говоря, способ рассмотреть проблему как некоторое количество взаимодействующих объектов, а не отдельных задач. С определением объектно-ориентированного программирования вы можете ознакомиться в Викопедии на странице http://ru.wikipedia.org/wiki/Объектно-ориентированное_программирование

Перевод Pro OGRE 3D Programming

Решил немного попрактиковаться в английском, взяться за перевод Pro OGRE 3D Programming, не знаю, правда, на сколько частей терпения хватит :).

понедельник, 9 июня 2008 г.

Сборка Ogre3D из исходников

Лучше всего огра собирать из исходников, ну во первых так интересней :), исходники часто нужны при разработке, например быстрее взглянуть на реализацию класса или функции, чем искать документацию по ней.

Для сборки нужно предварительно установить DirectX SDK и Platform SDK (если используете Visual Studio Express). Потом скачиваем с официального сайта ogre3d.org исходники огра и библиотеки которые он использует (Dependencies ). Распаковываем скаченные файлы (в дальнейшем предполагается, что они распакованы в папку C:\Dev ) и осталось только прописать пути до них в студии. Для этого заходим в Tools >Options >Projects and Solutions > VC++ Directories, выбираем в Show Directories For – Include files и прописываем

C:\Dev\OGRE\ogrenew\OgreMain\include

C:\Dev\OGRE\ogrenew\Samples\Common\include

C:\Dev\OGRE\ogrenew\Samples\Common\CEGUIRenderer\include

C:\Dev\OGRE\Dependencies\include

C:\Dev\OGRE\Dependencies\include\CEGUI

Потом выбираем в Show Directories For – Library files

C:\Dev \OGRE\ogrenew\OgreMain\lib\Release

C:\Dev \OGRE\ogrenew\OgreMain\lib\Debug

C:\Dev \OGRE\Dependencies\lib\Release

C:\Dev \OGRE\Dependencies\lib\Debug

Потом заходим в папку с огром и отрываем файл Ogre_vc8.sln, выбираем в меню студии Build > Build Solution и начнется процесс компиляции. Желательно скомпилировать как версию Release, так и Debug. Debug более удобна при разработке, а Release на много быстрее. После компиляции можно зайти в папку C:\Dev \OGRE\ogrenew\Samples\Common\bin\Release и посмотреть примеры идущие с огром.



 

четверг, 5 июня 2008 г.

Введение

О чем блог
Блог в основном будет посвящен программированию игр и ориентирован на начинающих разработчиков. Программирование лучше всего изучать на практике, поэтому планируется цикл практических уроков. Игры будем писать на С++ и возможно С#. Для графики использоваться будет графический движок Ogre3D. Он относительно простой и среди open-source движков один из лучших. Официальный сайт, где его можно скачать http://ogre3d.org.
Инструменты
Программировать будем в Visual Studio 2005. Вполне подойдет бесплатная Express Edition, скачать ее можно с сайта MS. Также желательно скачать DirectX SDK, которая нужна для сборки Огра из исходников, но можно и использовать уже скомпилированную версию.