ria pc game
fle game engine - движок для создания игр
fle game engine - движок для создания игр


Balls and holes PC game / Balls and Holes PC игра
Вакансии
Игродельня
Сегодня
22 февраля 2019 19:25
Вход Регистрация Забыли пароль ?

megainformatic - Уроки Photoshop - Рисуем волка из мультфильма
           
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
megainformatic - Как создать игру ? - Программируем сами - Содержание

megainformatic - Как создать игру ? - Программируем сами - Самый первый шаг - страница 3

megainformatic - Как создать игру ? - Программируем сами - Изучаем и модифицируем пример CreateDevice

megainformatic - Как создать игру ? - Программируем сами - пример CreateDevice страница 2

megainformatic - Как создать игру ? - Программируем сами - пример CreateDevice страница 3

megainformatic - Как создать игру - Vertices - Вершины - страница 1

megainformatic - Как создать игру - пример Matrices

megainformatic - Уроки Photoshop - Чудеса

megainformatic - Уроки Photoshop - Чудеса - Коллаж от нуля

megainformatic - Уроки Photoshop - Чудеса - Коллаж от нуля - страница 2

megainformatic - Уроки Photoshop - Чудеса - Коллаж от нуля - страница 3

megainformatic - Уроки Photoshop - Чудеса - Коллаж от нуля - страница 4

megainformatic - Купить Уроки Photoshop - Чудеса

megainformatic - Уроки Photoshop

megainformatic - Уроки Photoshop - Рисуем волка из мультфильма

megainformatic - Уроки Photoshop - Рисуем волка из мультфильма стр 2

megainformatic - Уроки Photoshop - Рисуем волка из мультфильма стр 3

megainformatic - Уроки Photoshop - Рисуем волка из мультфильма стр 4

megainformatic - Уроки Photoshop - Анимируем волка из мультфильма

megainformatic - Уроки Photoshop - Анимируем волка из мультфильма стр 2

megainformatic - Уроки Photoshop - Анимируем волка из мультфильма стр 3

megainformatic - Уроки Photoshop - Анимируем волка из мультфильма стр 4

megainformatic - Эмулятор игры Ну, Погоди!

megainformatic - Оплата заказа через Сбербанк

megainformatic - Пример игры с исходным кодом Donuts3D

megainformatic - Как создать игру ВЕСЕЛЫЙ БУКВОЕЖКА - программируем сами

megainformatic - Как создать игру ВЕСЕЛЫЙ БУКВОЕЖКА - создаем игровую оболочку

megainformatic - Открытый Полный Исходный код игры Дорога в Город

megainformatic - Как создать игру - Веселый Единственный Буквоежка - программируем основу будущей игры

megainformatic - Как создать игру - Веселый Единственный Буквоежка - выводим заставку

megainformatic - Как создать игру - Веселый Единственный Буквоежка - игровое меню

megainformatic - Как создать игру - Веселый Единственный Буквоежка - движение и анимация героя

Как Создать игру ВЕБ - Веселый Единственный Буквоежка - Программируем сами

Как Создать игру ВЕБ - Веселый Единственный Буквоежка - Программируем сами

megainformatic - Примеры моих работ

megainformatic - Музыкальные темы

megainformatic - Уроки Photoshop - Чудеса

megainformatic - Купить Уроки Photoshop - Чудеса

megainformatic - Онлайн Обучение, Репетитор

megainformatic - Уроки Photoshop - Рисуем и Анимируем

megainformatic - Уроки Photoshop - Рисуем и Анимируем - Урок 1 - Старт

megainformatic - Уроки Photoshop - Рисуем и Анимируем на AllSoft.ru

megainformatic - DirectX 9c - Изучаем пример MultAnimation

megainformatic - megainformatic cms Система Управления Контентом

megainformatic - Темы для WordPress

megainformatic - Что нужно для создания собственного сайта ?

megainformatic - Макет дизайна Вашего сайта

скачать megainformatic cms

megainformatic - Итоги 2010 года

megainformatic - Что нужно для создания собственного сайта ?

megainformatic - как создать инсталлятор для собственной cms

megainformatic - Новости - страница 2

Нововведения в megainformatic cms

Web Администрирование

Уроки Верстки

Система автоматизированной е-майл рассылки

подробнее

Галерея красивых рисованных девушек

[другие галереи рисованных девушек]

Красивые рисованные девушки.

еще одна девушка - Перси - контуры, тени и блики
Перси - оконченный вариант
Далия, 1 вариант
Далия, 2 вариант
Далия, 3 вариант
Далия, 4 вариант
Далия, 5 вариант
Далия, 6 вариант, в купальнике
Далия, 7 вариант


Для просмотра фото в увеличенном виде кликните по нему.

подробнее

     
  [к содержанию] [назад] [далее]  
     
 

Создание изображений огня, воды, неба

Рисование пламени, взрывов требует определенных навыков, но в целом это сводится к определенному набору инструментов и правил работы, что в конечном итоге даст Вам (при определенной сноровке) нужный результат.

На приведенном рисунке показано пламя от взрыва. Если Вы разберетесь с методикой создания сложных текстур и научитесь анализировать чужие работы (готовые изображения), то Вы сможете создавать и нечто новое или необычное.

Попробуем создать что-то подобное.

Создайте изображение 256х256 пиксель, с прозрачным фоном.

Изобразите сначала контуры вашего будущего пространства, заполненного огнем.

Выделите внутреннее пространство волшебной палочкой.

Создайте новый слой.

Определите два цвета: желтый – для цвета переднего плана и красный – для фона.

Произведите градиентную заливку выделенной области на новом слое. В качестве типа заливки попробуйте задать радиальную.

У Вас должно получиться что-то похожее на приведенном рисунке.

Теперь используя инструменты Осветление и Затемнение и нужные размер, форму и параметры кисти придайте пламени более реалистичный вид. Рисуйте как бы клубы линий-переходов.

Используя инструмент Клон-Штамп пересаживайте отдельные фрагменты красных областей в желтую зону и наоборот – это придаст большую реалистичность.

Используя инструмент ластик с нужными параметрами (Flow и Opacity) сделайте, чтобы пламя было по краям и немного изнутри слегка прозрачным или полупрозрачным.

Отмасштабируйте изображение уменьшив в 4 раза, т.е. задав новые размеры – 64х64.

Произведите цветокоррекцию, используя Изображение > Регулировки > Тон/Насыщенность, сделав пламя более насыщенным и ярким.

Используя те же пункты, но подпункт Уровни измените баланс освещенности – сместив точку белого в изображении на значение примерно 110-130.

Сохраните полученный результат в личную папку.

Поэкспериментируйте с изменением вида имеющегося пламени:

Изменение Яркости/Контраста

Изменение цветового баланса

Изменение уровней освещенности (Уровни)

Изменение цвета – вид облака – Тон/Насыщенность

Рисование воды

Рисование воды можно осуществить теми же методами, что и пламя. Единственное отличие – использовать другие исходные цвета – не красный и желтый, а, например синий и голубой или зеленый и синий и т.д.

Попробуйте создать кусочек водной поверхности подобный приведенному на рисунке.

Замечание: попробуйте выделять отдельные фрагменты в изображении при помощи лассо, а затем заливать градиентом. Затем размажьте участки используя инструмент Палец (Smudge).

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

Замечание: попробуйте менять не только размеры, но и форму кистей в инструментах Dodge, Burn, Eraser, Clone, Smudge. Попробуйте также использовать инструменты Sharpen, Blur, Sponge.

Рисование воды по стадиям:

Стадия 1 – выделенные при помощи лассо области заливались различными цветами при помощи градиентной заливки (радиальной и линейной).

Стадия 2 – после применения инструментов Smudge (Палец) и Sponge (Губка). Губка работала в режиме насыщения (Saturate).

Стадия 3 – после применения инструментов Dodge (Осветление) и Burn (Затемнение). Затемнение производилось большими размашистыми штрихами, группа воздействия на цвет – Shadows (Тени).

Стадия 4 – после применения Blur и Sharpen (Размытия и Резкости).

 

Стадия 5 – после применения фильтра: Filter > Distort > Ocean Ripple

(Океанская рябь).

Альтернатива стадии 5 – Стадия 5АFilter > Distort > Wave.

Попробуйте также применить эти 2 фильтра последовательно – один за другим. Сравните результаты.

 

Заключительная стадия – масштабирование изображения (уменьшение в 4 раза).

Замечание: если после масштабирования по периметру появляется рамка из более светлоокрашенных пикселей, то избавиться от нее можно следующим образом: отмените масштабирование, проведите новое масштабирование, но с приплюсовкой по 2 пикселя к высоте и ширине (т.е., например, не 64х64, а 66х66). После проведения операции при помощи рамки выделите область 64х64, внутри получившейся пиксельной рамки, так, чтобы последняя в нее не попадала и скопируйте в новое изображение.

Зацикливание текстуры

Если Вы сейчас зададите Вашу воду в качестве шаблона для заливки (Edit > Define pattern), а потом проведете с помощью него пробную заливку тестового изображения (например, 1024х768), то ясно заметите наличие у текстуры резких переходов – швов.

Как создать бесшовную текстуру?

Для зацикливания Вашей текстуры водной поверхности используйте Filter > Other > Offset; укажите нужные размеры (половина ширины и высоты) и пункт Wrap around – заворачивание (т.е. зацикливание, что нам и требуется). Результат приведен на рисунке.

Естественно, что после такой операции швы перейдут вовнутрь текстуры – образуя как бы крест. Чтобы избавиться от него используйте следующие методики:

Метод 1 – использование «засадки» Клоном – При помощи Clone Stamp копируются фрагменты и аккуратно располагаются на перекрестии. Ваша задача – не только скрыть «крест», но и позаботиться об однородности тайла, иначе на новом месте может получиться новый крест из кусочков образцов штампа.

На рисунках приводится:

Слева - неудачный вариант закрытия;

Ниже – более удачный вариант.

 

 

Метод 2 – использование выделения областей при помощи волшебной палочки и их зацикливание на отдельном слое.

Для этого – создайте новый слой и скопируйте на него какую-либо цветовую область. Затем зациклите ее.

Здесь задача заключается в том, чтобы не «переборщить» с выделением области. Если установить параметр Tolerance (обратная чувствительность) так, что выделяется почти всё, то никакого эффекта не будет – всё тот же крест, только уже на новом слое.

Комбинация методов – после проведений тестовых заливок созданными текстурами Ваш результат может оказаться все еще неудовлетворительным. Тогда попробуйте комбинировать 2 этих метода: сначала примените Метод 2, а затем Метод 1 – для нового (верхнего) слоя. В Методе 1 вместо Клон-Штампа попробуйте использовать ластик.

Можно поступить и так: дублировать слой, зациклить его, используя ластик спиралеобразно стереть крест.

Другие методы создания водных текстур

Запустите Corel Draw, создайте изображение 256х256, в нем прямоугольник 256х256. Уберите у него обводку. Залейте прямоугольник какой-либо текстурой – Ocean water, Swimming pool или другой. Экспортируйте созданное изображение в BMP и откройте из Photoshop. Поэкспериментируйте с видоизменением параметров текстуры сначала в Draw (вкладка Object Properties > Заливка > Кнопка Edit). Затем в Photoshop – применяя Изображение > Регулировки > Уровни, или Тон/Насыщенность или другие.

А также попробуйте применять различные фильтры. Создайте тайловую (т.е. цикличную) текстуру.

Создание анимированной текстуры

Такие среды как вода, пламя, небо в реальных условиях находятся в постоянном движении – происходит постепенное изменение их вида.

Чтобы реализовать это в текстуре достаточно создать анимированную текстуру – т.е. содержащую несколько статичных кадров, меняющихся во времени. Затем подобную текстуру можно сохранить в формате анимированный GIF или BMP с вертикальным или горизонтальным расположением кадров. Тогда данная текстура превратится в анимированную.

Все что нам требуется – это создать несколько изображений одной и той же текстуры с немного измененным видом на отдельных слоях. Сохранить полученный файл в PSD. Открыть его из Image Ready, произвести раскадровку и сохранить в GIF. Результат можно просмотреть из стандартной программы просмотра изображений Windows или прямо в Image Ready нажав кнопку Play.

В пакете Corel Graphics Suite 11 для создания анимаций используется программа Corel Rave.

Итак, приступим к выполнению нашей задачи средствами Photoshop. Дублируйте слой, содержащий изображение поверхности воды.

Создайте таким образом 8 слоев. Дайте слоям имена 1,2, …, 8.

Используя Filter > Liquify произведите постепенное видоизменение вида слоев.

Скройте все слои кроме 1-го. На панели инструментов нажмите кнопку Jump To Image Ready.

На панели Animation щелкните кнопку Duplicate Current frame столько раз, сколько требуется создать кадров. Но перед этим скройте все слои кроме первого (если Вы еще не делали этого). Установите величину временной задержки кадра (например 0,2 с). В каждом кадре установите отображение только соответствующего слоя.

Сохраните файл под именем swin_anim.PSD,

А затем используя пункт Save Optimized As в формате GIF.

Откройте Проводник и используя программу просмотра изображений посмотрите на свою работу.

Замечание: порядок отображения слоев в ваших кадрах должен циклично меняться. Например у Вас 4 слоя, значит будет 6 кадров:

1-2-3-4-3-2. Так как анимация текстур производится циклично, то будет казаться, что опять происходит возврат к началу (1 кадр со слоем 1).

Файлы в формате GIF хорошо использовать в WEB-публикациях – т.к. Internet Explorer поддерживает анимированные GIF-файлы – убедитесь сами – запустите IE и откройте ваш GIF.

Но иногда, Вам может потребоваться размещение анимации в BMP-файле.

Это делается просто – все кадры размещаются в одном изображении в вертикальном или горизонтальном порядке. При этом ширина или высота исходного изображения увеличивается на ширину(высоту) одного кадра * на число кадров. (см. рисунки).

 

Как выполнить такую раскадровку средствами Photoshop?

Предположим Вы хотите расположить кадры вертикально. Размеры кадра 256х256. Число кадров – 6.

Создайте новое изображение размерами 1536х256.

В исходном изображении выделите все (Select > All) и последовательно копируйте содержимое каждого слоя и вставляйте в новое изображение. В новом изображении отпозиционируйте изображения на слоях, так чтобы они шли один за другим.

Склейте все слои и сохраните результат в формате BMP.

Создание анимированной текстуры неба

Создайте изображение 256х256.

Залейте фон небесно-голубым цветом.

Дублируйте слой.

Используя инструмент Осветление (Dodge), нужную форму кисти, нужную группу и степень воздействия нарисуйте облака.

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

Создайте анимированное движение облаков – для этого на каждом новом слое постепенно сдвигайте изображение вправо и вниз.

Чтобы уходящие за пределы изображения облака появлялись с противоположной стороны:

выделите опустевшее пространство (на сдвигаемом слое).

 

Вернитесь на исходный слой и переместите область выделения вправо. Скопируйте выдвигаемую область.

Передвиньте назад область выделения, вернитесь на сдвигаемый слой и вставьте скопированный фрагмент.

Аналогично выполняется восстановление того, что сдвигается сверху - вниз.

При этом будет возникать иллюзия непрерывного движения облаков.

Созданное многослойное изображение анимируйте в Image Ready, сохраните в PSD и GIF, просмотрите результат анимирования.

 

 

 

 
     
  [к содержанию] [назад] [далее]  
     
     
подробнее

Костя Коробкин - В гостях у тёти Светы (kk as) - онлайн комикс - страница 13

Онлайн-комикс Костя Коробкин - В гостях у тёти Светы - интерактивный комикс (kk as).

А теперь нам Светлана скажет при помощи чего передвигаются половые клетки животных.

Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (- интерактивный комикс (kk as) - онлайн комикс - страница 13

если кликать картинку она будет последовательно меняться в размерах от 620 до 2048 пиксель.

[страница 1][страница 2] [страница 3] [страница 4] [страница 5] [страница 6] [страница 7] [страница 8] [страница 9] [страница 10] [страница 11]  [страница 12] [страница 13]  [страница 14]

подробнее

     
  Набор разработчика игр - Нечто: Необъяснимое - в плену желаний  
     
 

Как создать игру ? - Программируем сами.

Рассмотрение программирования игр под DirectX 9c на C++ с использованием среды разработки MSVS 2005 или выше.

 
     
  [содержание] [назад] [страница 1] [далее]  
     
  Vertices - Вершины - страница 1  
     
 

Итогом вставки новой созданной иконки должно стать для Вас сохранение изменений в проект (кнопка Save All на панели инструментов MSVS) и выполнением сборки проекта - по клавише [F7]. Еще раз напомню, что для сборки отладочной версии Debug нужно выбрать соответствующую конфигурацию проекта - в панели инструментов есть соответствующий выпадающий список.

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

 
     
 

Если Вы уже вдоволь наигрались с проектом CreateDevice - сохраняем все внесенные изменения и закрываем проект File > Close Solution.

Переходим к примерам Vertices, Matrices, Lights, Textures, Meshes

 
     
  Все настойки в этих проектах нужно делать абсолютно аналогично, как это описывалось на протяжении наших предыдущих уроков, а более конкретно в уроке - Самый первый шаг - страница 3  
     
 

В примере Vertices рассматривается как работать с вершинами в 3d-пространстве.

Теперь уже наше приложение будет выполнять более полезную работу - выведет на экран разноцветный треугольник.

 
     
  пример Vertices  
     
  По сравнению с предыдущим примером CreateDevice здесь уже рассматривается как создается и инициализируется вершинный буфер для модели треугольника. Треугольник хоть и плоский, но это уже модель, в примере Matrices показано как создать его вращение вокруг своей оси (по оси Y).  
     
 

Функция wWinMain включает использование новой функции -

// Create the vertex buffer
if( SUCCEEDED( InitVB() ) )
{

//...

}

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

// Enter the message loop
MSG msg;
ZeroMemory( &msg, sizeof( msg ) );
while( msg.message != WM_QUIT )
{
if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
else
Render();
}

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

 
     
 

Функция InitVB

HRESULT InitVB()
{
// инициализируем вершины создаваемого треугольника

//заметьте, что цвет каждой вершины в формате AARRGGBB задается именно здесь!

//о формате задания цвета и определении конкретного цвета мы говорили в уроке - CreateDevice страница 2
CUSTOMVERTEX vertices[] =
{
{ 150.0f, 50.0f, 0.5f, 1.0f, 0xffff0000, }, // x, y, z, rhw, color
{ 250.0f, 250.0f, 0.5f, 1.0f, 0xff00ff00, },
{ 50.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, },
};

// Создаем вершинный буфер. Здесь мы выделяем достаточно памяти для вершин
// (из буфера по-умолчанию) для хранения 3 вершин в собственном формате. Мы также
// определяем FVF, так что вершинный буфер знает, какие данные он хранит.

if( FAILED( g_pd3dDevice->CreateVertexBuffer( 3 * sizeof( CUSTOMVERTEX ),
0, D3DFVF_CUSTOMVERTEX,
D3DPOOL_DEFAULT, &g_pVB, NULL ) ) )
{
return E_FAIL;
}

// Теперь мы заполняем вершинный буфер. Для этого вызываем Lock() для VB
// для получения доступа к вершинам. Этот механизм необходим, поскольку
// буферы могут располагаться в памяти графического адаптера.

VOID* pVertices;
if( FAILED( g_pVB->Lock( 0, sizeof( vertices ), ( void** )&pVertices, 0 ) ) )
return E_FAIL;
memcpy( pVertices, vertices, sizeof( vertices ) );
g_pVB->Unlock();

return S_OK;
}

 
     
 

Функция Cleanup теперь включает освобождение объекта вершинного буфера.

Функция Render включает новый код для рисования модели треугольника -

// начало сцены
if( SUCCEEDED( g_pd3dDevice->BeginScene() ) )
{
// Рисуем треугольник из вершин в буфере. Процесс включает несколько

// шагов. Мы передаем вершины в поток, поэтому первое - это определение
// источника для этого потока, это и есть наш вершинный буфер. Затем
// нам нужно позволить D3D узнать какой вершинный шейдер использовать.

// Полнофункциональные, настраиваемые вершинные шейдеры - это
// отдельная тема для разговора, но в большинстве случаев вершинный шейдер -
// просто FVF (Flexible Vertex Format), так что D3D узнает какой тип вершин
// мы применили. Наконец, Мы вызываем функцию DrawPrimitive() которая

// выполняет фактическое рисование
// нашей геометрии (в данном примере - всего лишь 1 треугольник).

g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof( CUSTOMVERTEX ) );
g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 1 );

// конец сцены
g_pd3dDevice->EndScene();
}

 
     
  Функция MsgProc не включает обработки сообщения WM_PAINT, потому что все d3d-приложения должны выполнять отрисовку находясь в состоянии Idle.  
     
 

Обратите внимание также на начало модуля Vertices.cpp

//-----------------------------------------------------------------------------
// Глобальные переменные
//-----------------------------------------------------------------------------

LPDIRECT3D9 g_pD3D = NULL; // используется для создания D3DDevice
LPDIRECT3DDEVICE9 g_pd3dDevice = NULL; // наше устройство отрисовки
LPDIRECT3DVERTEXBUFFER9 g_pVB = NULL; // буфер для хранения вершин

// структура определяющая собственный тип вершин
struct CUSTOMVERTEX
{
FLOAT x, y, z, rhw; // преобразованная позиция вершины
DWORD color; // цвет вершины
};

// наш настраиваемый тип вершин FVF, который определяет какой тип вершин

// используется для их описания
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE)

 
     
  Чтобы проверить насколько Вам ясно как работать с вершинами - попробуйте вывести вместо треугольника - квадрат. Цвета вершин также измените.  
     
  изображение модели квадрата  
     
 

Сначала посмотрите на приведенный рисунок и определите как были описаны координаты для треугольника:

150.0f, 50.0f - это вершина, отмеченная на рисунке цифрой 1,

250.0f, 250.0f - вершина номер 2 и

50.0f, 250.0f - вершина номер 3. Заметьте, что вершины определены в порядке обхода по-часовой стрелке. Это правило для определения видимых граней модели. Если вершины оказываются повернуты к экрану той гранью, где они следуют против часовой стрелки, то такая грань считается невидимой для зрителя стороной и не отрисовывается !

 
     
 

Теперь можно легко определить вершины для нашего квадрата -

CUSTOMVERTEX vertices[] =
{
{ 50.0f, 50.0f, 0.5f, 1.0f, 0xffff0000, },

{ 250.0f, 50.0f, 0.5f, 1.0f, 0xff00ff00, },

{ 250.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, },

{ 50.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, },
};

 
     
 

Однако даже правильно изменив количество вершин с 3 на 4 и правильно указав это число в строке кода

if( FAILED( g_pd3dDevice->CreateVertexBuffer( 4 * sizeof( CUSTOMVERTEX ),
0, D3DFVF_CUSTOMVERTEX,
D3DPOOL_DEFAULT, &g_pVB, NULL ) ) )

И указав количество отрисовываемых примитивов в функции Render в строке -

g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 2 );

в количестве 2 вместо 1

 
     
  Результатом будет -  
     
  попытка рисования квадрата 1  
     
  А всё дело в том, что D3D-приспособлен понимать только треугольные грани - состоящие из треугольников. Это сделано из-за того, что три вершины образующие треугольную грань всегда находятся в одной плоскости и следовательно так проще обсчитывать прорисовку сложных моделей.  
     
  Значит нам, для создания модели квадрата, состоящего из 2х треугольных граней нужно использовать не 4, а 6 вершин -  
     
 

CUSTOMVERTEX vertices[] =
{
{ 50.0f, 50.0f, 0.5f, 1.0f, 0xffff0000, },

{ 250.0f, 50.0f, 0.5f, 1.0f, 0xff00ff00, },

{ 250.0f, 250.0f, 0.5f, 1.0f, 0xff0000ff, },

{ 250.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, },

{ 50.0f, 250.0f, 0.5f, 1.0f, 0xffffff00, },

{ 50.0f, 50.0f, 0.5f, 1.0f, 0xff0000ff, },


};

 
     
  попытка рисования квадрата 2  
     
  Важен и порядок, в котором определена вторая тройка вершин. Если они будут определены в другом порядке, то вторая грань (второй треугольник) выведен не будет. Попробуйте изменить порядок второй тройки вершин и убедитесь в этом сами.  
     
  На рисунке также отчетливо видно какая из вершин в какой цвет окрашена, так что будет более понятно где и какая вершина. На первых порах задайте для каждой из вершин свой цвет - тогда легче будет увидеть где нужная вершина.  
     
     
     
     
     
  [содержание] [назад] [страница 3] [далее]  
     
     
  Веселый Буквоежка - игра  
     
 

Как создать игру ? - Программируем сами.

Рассмотрение программирования игр под DirectX 9c на C++ с использованием среды разработки MSVS 2005 или выше.

 
     
  [содержание] [назад] [страница 3] [далее]  
     
  Самый первый шаг - страница 3  
     
 

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

 
     
  Устраним этот важный и существенный недочет, который доставляет так много хлопот новичкам, готовым к созданию игр, но новые и новые трудности никак не дают достичь желаемого и встают на пути.  
     
  Выполним настройки проекта CreateDevice  
     
  В окне Solution Explorer выберите строку CreateDevice  
     
  Далее выберите пункт меню Project > Properties  
     
  В открывшемся окне CreateDevice Property Pages в левой его части найдите и нажмите на "+" около наименования Configuration Properties  
     
  Нам будут нужны всего 2 узла: C/C++ и Linker  
     
  настройки проекта для правильного указания расположения заголовочных файлов и библиотек  
     
 

раскрываем эти узлы и прописываем внутри них -

для C/C++ / General

в поле Additional Include Directories - ..\..\..\..\..\Include\;..\..\..\DXUT\Core

 
     
  правильное подключение заголовочных файлов для DirectX - приложения  
     
 

для Linker / General

Additional Library Directories - ..\..\..\..\..\Lib\x86;

 
     
  правильное подключение библиотечных файлов  
     
 

возможно еще придется указать имена файлов библиотек -

Linker / Input для Configuration Debug

Additional Dependencies - d3dxof.lib dxguid.lib d3dx9d.lib d3d9.lib winmm.lib

и

Linker / Input для Configuration Release

Additional Dependencies - d3dxof.lib dxguid.lib d3dx9.lib d3d9.lib winmm.lib

Обратите внимание красным цветом я отметил имена файлов библиотек, которые отличны для отладочной Debug и окончательной Release сборки проекта.

 
     
  правильное подключение имен библиотек  
     
  После таких настроек и нажатия кнопки OK или Применить, с последующей сборкой проекта в режиме конфигурации Debug или Release ошибок быть не должно.  
     
 

Ну и наконец последний, и самый волнительный момент -

открываем папку

C:\DXSDK_Aug2008\Samples\C++\Direct3D\Tutorials\Tut01_CreateDevice\Debug

или

C:\DXSDK_Aug2008\Samples\C++\Direct3D\Tutorials\Tut01_CreateDevice\Release

в зависимости от того, что Вы собирали - отладочную или окончательную версию проекта

и запускаем файл CreateDevice.exe двойным кликом по нему.

 
     
  наблюдаем работу createdevice  
     
 

Как видим - перед нами небольшое окно, вся рабочая область которого заполнена синим цветом. Окно имеет заголовок D3D Tutorial 01: Create Device, именно тот самый текст, который был указан в качестве второго параметра функции CreateWindow в коде функции wWinMain.

Окно ведет себя как самое типичное Windows-приложение - его можно перемещать по экрану, менять в размере, сворачивать, увеличивать во весь экран. При выборе кнопки X в правой части заголовка окна приложение завершит работу.

 
     
 

Итак, подведем итоги:

1) Мы посмотрели кое-что из того, как работать в среде MSVS, если Ваш опыт в этом деле недостаточен - тренируйтесь и еще раз тренируйтесь - и мы это будем делать на протяжении всех последующих уроков;

2) Создали самое что-ни-на-есть простейшее DirectX-приложение, конечно Вам тут нужно еще попрактиковаться, разобраться что к чему, почитать в конце концов справочное руководство по DirectX и MSVS. Но кое-что я думаю Вы уже должны усвоить, например, как сменить цвет заполнения рабочей области окна с синего на какой-то другой, или как изменить название заголовка окна.

Если Вы знаете ответ на эти вопросы - значит можно с уверенностью сказать что кое в чем Вы уже разобрались !

3) Нам нужно еще попробовать модифицировать наше приложение для проверки и отладки, а также усвоения выданной Вам порции информации для размышления.

Этим мы и займемся в следующем нашем уроке - далее

 
     
  [содержание] [назад] [страница 3] [далее]  
     
megainformatic live chat
Начать беседу
X
 

Оставленные комментарии



fle game engine - движок для создания игр
fle game engine - движок для создания игр


Something: Unexplained 2 captive of desires / Нечто: Необъяснимое 2 в плену желаний
Костя Коробкин Комикс Коллекционное издание - 6 комиксов, 81 страница, 220 mp3 треков
megainformatic Размещение баннерной рекламы у нас
Время загрузки: 1,5044