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


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

megainformatic - как работает антивирус ?
Как работают антивирусы ? Может быть Вы когда-нибудь захотите создать свой антивирус. Это было бы наилучшим вариантом, т. к. Ваш собственный антивирус принесет Вам только вполне ожидаемые результаты - то что Вы в нём реализуете, то и будет Вашей защитой от компьютерных вирусов. Вся загвоздка в том, что задумать сделать антивирус легко, а вот сделать - трудно. Попробуем всё-таки р
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
ЛЕТО

megainformatic - Нечто Необъяснимое - пре релиз

megainformatic cms admin

megainformatic cms admin

megainformatic - Основы создания 3d игр - проект Тайны Морских Глубин

megainformatic - уроки delphi directx 8.1 3d - Основы Вращений и Управления камерой

megainformatic cms seo

megainformatic cms admin

megainformatic - Моделируем девушку в 3d - Подготовка 2d-эскиза тела человека

megainformatic cms stat kit

megainformatic cms seo

megainformatic - Теория и практика 3d игр - О Кватернионах

megainformatic - Теория и практика 3d игр - Основы теории векторов

megainformatic - Теория и практика 3d игр - Важные замечания

megainformatic - Моделируем девушку в 3d используя 3ds max - Подготовка к моделированию ноги - готовим ширму

megainformatic - Моделируем девушку в 3d используя 3ds max - Выполняем моделирование ноги

megainformatic - Моделируем девушку в 3d используя 3ds max - Улучшаем созданную модель женской ножки

megainformatic cms stat kit

megainformatic - Подводная лодка и подводный мир

megainformatic - megainformatic cms - Форма для смены шаблонов сайта - модуль template selector

megainformatic cms social

megainformatic cms social Руководство пользователя

megainformatic - megainformatic cms - Форма для смены шаблонов сайта - модуль template selector

модуль слайдера

ТЗ на сайт коллективных покупок

модуль slider

megainformatic cms seo

Поддержка сайтом нескольких языков - модуль multi lang

Поддержка сайтом нескольких языков - модуль multi lang

megainformatic - Моделируем девушку в 3d используя 3ds max - другие статьи сборника статей - обзор

установка нового шаблона в joomla 2.5.4

Описание продукта megainformatic cms social

Описание продукта megainformatic cms social

megainformatic - ТЗ на сайт по аналогии rys-stroi.ru

megainformatic cms groupon

megainformatic - дизайн сайта строительной компании УЛЬТРА-СТРОЙ

megainformatic - Тестирование подключения платежной системы

megainformatic - Выпадающее окно регистрации на сайте

megainformatic - Тестирование подключения к платежной системе с использованием скрипта эмулятора

megainformatic - Модуль для регистрации пользователя на сайте

megainformatic - Код для модуля регистрации пользователя на сайте

megainformatic - Быстрый подсчёт ключевых слов в статье

megainformatic - Модуль подсчёта ключевых слов в статье

megainformatic - Онлайн-сервис для подсчёта статистики ключевых слов

megainformatic - Пишем слайдер на javascript с нуля

megainformatic - Логика работы слайдера на javascript

megainformatic - Пишем свою соц. сеть - модуль предложений для webjob

megainformatic - Пишем свою соц. сеть - модуль предложений для webjob - часть реализации для личного кабинета

megainformatic - Пишем свою соц. сеть - Реализация файлового хранилища предложений в csv-файле

megainformatic - Тестирование подключения к платежной системе ЕДИНЫЙ КОШЕЛЕК (w1.ru) с использованием скрипта эмулятора

megainformatic - Пишем свою cms - шаг 1

megainformatic - Пишем свою cms - шаг 2

megainformatic - Пишем свою cms - шаг 3

megainformatic - бесплатная флеш игра freeway fury 2 - разработчик Serius Games

megainformatic - бесплатные флеш игры сторонних разработчиков

megainformatic - Как я осваивал Flash

подробнее

Приключения Кости Коробкина - Как я провел лето - онлайн комикс - страница 7

Предлагаем вашему вниманию онлайн-комикс Приключения Кости Коробкина - Как я провел лето.

анонсы других продуктов

онлайн-комикс Приключения Кости Коробкина - Как я провел лето страница 7

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

[страница 1] [страница 2] [страница 3] [страница 4] [страница 5]  [страница 6] [страница 7] 

подробнее


[к содержанию] [другие статьи Тимонина Андрея]

DirectX9. Создаем основной класс обработки графики.

автор: Тимонин Андрей

дата публикации на сайте Мега Информатик: 18.11.2012

Добро пожаловать в цикл моих уроков посвященных программированию.

На написание этой статьи меня вдохновил блог о создании игр с нуля, который можно посмотреть по следующей ссылке mindillusion.ru.

Здесь я хочу затронуть основные, интересные для меня, моменты. Рассказать вам с чего нужно начинать делать свое первое 3д или 2д приложение.


Существует 2 основные низкоуровневые библиотеки для вывода графики, над которыми пишутся движки, применяемые как в сфере разработки игр, так и прочих графических приложений не связанных с геймдевом. Это DirectX, на данный момент вышла 11 версия и OpenGl. В этой статье мы будем касаться 9 версии директа. Другие версии могут немного отличаться.

Результат наших действий будет такой, как на скриншоте.

И так, перейдем к делу... У нас получается такой интерфейс класса. Здесь все, что необходимо для работы с графическим устройством. По крайней мере, что нам интересно на данный момент. Часть методов я приведу, снабдив, необходимыми для понимания комментариями. Класс у нас в единственном экземпляре, что дает нам возможность объединить возможности в одном классе. В том числе хранение и работа с текстурами и шейдерами. Это будет тема для одной из следующих статей. Смотрим код.

class Graphics : public singleton<Graphics>
{
friend class singleton<Graphics>;
private:

int _width,_height; //размеры экрана(сделал для удобства)

//интерфейс directX
LPDIRECT3D9 m_pD3D;

//интерфейс устройства вывода
LPDIRECT3DDEVICE9 m_pd3dDevice;

// структкура с параметрами девайса
D3DPRESENT_PARAMETERS m_d3dpp;

typedef std::vector<CTexturePtr> vecTextures;
vecTextures m_vecTextures;

typedef std::vector<CShaderPtr> vecShaders;
vecShaders m_vecShaders;

protected:

//закрыто. нет смысла создавать все равно singleton
Graphics(void);
~Graphics(void);

public:

//возвращает устройство
LPDIRECT3DDEVICE9 GetDevice();

//инициализация устройства
bool Init(HWND hRenderWnd, int width, int height);

//возвращает ширину
int getWidth() const {return _width;}

//возвращает высоту
int getHeight() const {return _height;}

//удаление интерфейсов
void Cleanup();

//сброс
HRESULT Reset();

//начало рендера
bool StartRender(D3DCOLOR bgColor=0xff808080);
//устанавливает формат вершин
HRESULT SetFVF(DWORD FVF);

//устанавливает пиксельный и верш шейдер( в статье не будем рассматривать. рано еще)))
HRESULT SetPixelShader(CShaderPtr shader);
HRESULT SetVertexShader(CShaderPtr shader);

//установка характеристик рендера
HRESULT SetRenderState(D3DRENDERSTATETYPE State, DWORD Value);

//установка характеристик текстур(смешивание, альфа и тд)
HRESULT SetTextureStageState(DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value);

//установка способа отображения семплов( фильтрация)
HRESULT SetSamplerState(DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value);

//установка текстуры
HRESULT SetTexture(DWORD stage, CTexturePtr pTex);

//начало блока настроек рендера
HRESULT BeginStateBlock();

//конец блока настроек рендера
HRESULT EndStateBlock(LPDIRECT3DSTATEBLOCK9* block);

//отрисовка премитива
HRESULT DPUP( D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride);

//конец отрисовки

bool EndRender();

//загрузка текстур и шейдеров(про текстуры будет отдельная статья)
CTexturePtr LoadTexture(const std::wstring& szFileName);
CShaderPtr LoadShader( const std::string& strFileName, const std::string& strFuncName, const std::string& profile);
};

Сейчас нам интересны два интерфейса:

//интерфейс directX
LPDIRECT3D9 m_pD3D;

//интерфейс устройства вывода
LPDIRECT3DDEVICE9 m_pd3dDevice;

Для начала их необходимо обнулить.

Graphics::Graphics()
{
m_pD3D = NULL;
m_pd3dDevice = NULL;
ZeroMemory(&m_d3dpp, sizeof(D3DPRESENT_PARAMETERS)); // обнулим
}

А сейчас посмотрим, как инициализируется устройство.

bool Graphics::Init(HWND hRenderWnd, int width, int height)
{
// сначала проицициализируем сам DirectX 9
m_pD3D = Direct3DCreate9( D3D_SDK_VERSION );
if (m_pD3D==NULL)
return false;
//создаем структуру с режимами дисплея
D3DDISPLAYMODE d3ddm;
//пробуем определить параметры дисплея
if(FAILED(m_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm)))
{
//генерируем исключение
ExceptionBase err(GETDISPLAYMODEERROR,L"Не могу определить параметры дисплея");
throw err;
return false;
}

//характеристики заднего буфера---------------------------------------------------------
m_d3dpp.BackBufferWidth = width; // указываем ширину и
m_d3dpp.BackBufferHeight = height; // высоту области рендера
m_d3dpp.BackBufferCount = 1; // один внеэкранный буфер

m_d3dpp.BackBufferFormat = d3ddm.Format;

//-------------------------------------------------------------------------------------------------------
m_d3dpp.Windowed = TRUE; // рендер в окне, а не в полный экран

m_d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; // так лучше делать всегда
m_d3dpp.EnableAutoDepthStencil = TRUE; // нам нужен Z-буфер
m_d3dpp.AutoDepthStencilFormat = D3DFMT_D24S8; // формат Z-буфера
m_d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_ONE;

// и теперь создадим сам девайс
HRESULT hr = m_pD3D->CreateDevice( D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL, hRenderWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING,
&m_d3dpp, &m_pd3dDevice );
if (FAILED(hr))
return FALSE;
_height = height;
_width = width;
return TRUE;
}

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

void Graphics::Cleanup()
{
// освобождаем текстуры
vecTextures::iterator itr = m_vecTextures.begin();
while(itr!=m_vecTextures.end())
{
(*itr)->Release();
delete *itr;
itr++;
}
m_vecTextures.clear();

// освобождаем шейдеры
vecShaders::iterator itr2 = m_vecShaders.begin();
while(itr2!=m_vecShaders.end())
{
(*itr2)->Release();
delete *itr2;
itr2++;
}
m_vecShaders.clear();

if (m_pd3dDevice)
{
m_pd3dDevice->Release();
m_pd3dDevice = NULL;
}
if (m_pD3D)
{
m_pD3D->Release();
m_pD3D = NULL;
}
}

Следующим шагом, посмотрим на методы, необходимые для отрисовки.

bool Graphics::StartRender(D3DCOLOR bgColor)
{
if (FAILED(m_pd3dDevice->BeginScene())) // начинаем рисовать
return false;

// очистка экрана
if (FAILED(m_pd3dDevice->Clear(0, NULL, D3DCLEAR_TARGET|
D3DCLEAR_STENCIL| D3DCLEAR_ZBUFFER, bgColor, 1, 0)))
return false;

return true;
}

bool Graphics::EndRender()
{
m_pd3dDevice->EndScene(); // закончили рисовать

// копируем на экран
HRESULT hr = m_pd3dDevice->Present(NULL, NULL, NULL, NULL);
if (FAILED(hr)/*==D3DERR_DEVICELOST*/)
Reset();

if (FAILED(hr))
return false;

return true;
}

Установка формата вершин и отрисовка примитивов.

HRESULT Graphics::SetFVF( DWORD FVF )
{
return m_pd3dDevice->SetFVF(FVF);
}

HRESULT Graphics::DPUP( D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride )
{
return m_pd3dDevice->DrawPrimitiveUP(PrimitiveType, PrimitiveCount, pVertexStreamZeroData, VertexStreamZeroStride);
}

И напоследок, посмотрим на настроечные функции.

HRESULT Graphics::SetRenderState( D3DRENDERSTATETYPE State, DWORD Value )
{
return m_pd3dDevice->SetRenderState(State, Value);
}

HRESULT Graphics::SetTextureStageState(DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value )
{
return m_pd3dDevice->SetTextureStageState(Stage,Type,Value);
}

HRESULT Graphics::SetSamplerState( DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value )
{
return m_pd3dDevice->SetSamplerState(Sampler, Type, Value);
}

На этом пока все. Применение смотрите в следующей части.

 

[к содержанию] [другие статьи Тимонина Андрея]

подробнее

     
     
  уроки Photoshop - чудеса

Стоимость: 100 руб.

 
     
  Уроки Photoshop - Чудеса  
     
  Нет никого и ничего мудрее природы. Человек - дитя природы.  
     
 

Вот и пришло время чудес. Попробуем сотворить что-нибудь красивое и интересное. В этом нам поможет профессиональная программа для обработки графики - Adobe Photoshop.

Какую версию использовать ? Любую доступную Вам - можно 6, 7, 8 (CS), 9 (CS 2), 10 (CS 3), CS4, CS5 и т.д. Кому что нравится.

Принципы рассмотренные здесь справедливы для любой из этих версий.

 
     
 

Какие специальные знания потребуются ? Думаю, что никаких особых знаний не потребуется, единственное, я надеюсь, что Вы обладаете хотя бы базовыми знаниями работы на ПК, т. е. Вам не нужно объяснять как установить Photoshop, как запустить его, как создать папку или файл, открыть изображение из Photoshop.

Во всём остальном можно будет разобраться, по ходу работы.

 
     
  В этом сборнике статей мы рассмотрим следующие темы:  
     
  - Коллаж от нуля; Коллаж от нулявозьмем фото и на его примере создадим пейзаж, затем добавим еще новых элементов и превратим в коллаж  
     
  - Рисуем девушку; Рисуем девушкукак нарисовать девушку взяв за основу одну или несколько фотографий  
     
  - Считаем звезды; Считаем звездысоздаем изображения космоса, звёзд и туманностей  
     
  - О, эта морская стихия; как создать коллаж на морскую тематикукак создать коллаж на морскую тематику  
     
  - Подводный мир; Подводный мирпродолжаем погружение в морские пучины  
     
  - Сны наяву; рисуем сказочный пейзаж райских лазурных берегов рисуем сказочный пейзаж райских лазурных берегов  
     
  - Дорогами исканий; дороги поисков приведут нас к созданию таинственного леса дороги поисков приведут нас к созданию таинственного леса  
     
  - Путешествие; Путешествиеотправляемся в путешествие по 2d- и 3d-мирам  
     
  - Мудрость природы;  
     
  - Шаг за шагом;  
     
  - Вселенная и космос;  
     
  - Грани мироздания;  
     
  - Красоты мира;  
     
  - Родной край;  
     
  - Удивительный мир растений;  
     
  - Загадки мира насекомых;  
     
  - Шум большого города;  
     
  - Праздник всегда с тобой !  
     
     
     
     
     
     
 

Надеюсь, что эти статьи помогли Вам узнать еще больше о возможностях Photoshop и научили более профессиональной работе в этой программе.

Спасибо за внимание и желаю Вам творческих успехов !!!

 
     
подробнее

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

Рисование персонажей (урок 6)

 

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

Приступим к решению этой задачи средствами программы Corel Draw (CD).

Замечание: в данном уроке содержатся сведения ориентированные на Corel Draw 11, но общие принципы создания подобны для любых версий!

1.    Запустите программу Corel Draw и создайте новое изображение File > New. Заметим, что по умолчанию, при запуске выводится окно в котором можно сразу же выбрать создание нового изображения.

2.    По умолчанию размер Вашего изображения – формат A4, т.е. 297х210 мм. Попробуем задать иной размер, например, пусть мы рисуем заставку 1024х768 пиксель. На панели свойств (Property bar) выберите единицы измерения pixels (пиксели):

 

3.    В полях Papers width and height задайте требуемый размер: 1024 х 768

 

4.    Ваш лист станет нужного размера. Приступим к созданию персонажа, расположенного на переднем плане. Тело персонажа представлено совокупностью из нескольких эллипсов. Для создания эллипса на панели инструментов (Tool bar) нажмите кнопку Ellipse tool:

 

5.    Переведите курсор на холст и изобразите эллипс сначала щелкнув, а затем удерживая левую кнопку мыши.

 

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

 

7.    Не совсем удобно делать это с выбранным инструментом Эллипс. Просто может получиться еще один эллипс, а этого нам пока еще не надо. Вместо инструмента Эллипс выберите инструмент Выбор (Pick tool)

 

8.    Используя этот инструмент Вы можете простым щелчком выбирать векторные объекты из которых и строятся все изображения в CD. Наведите курсор на контур созданного Вами эллипса и щелкните мышью.

 

9.    Вы заметите, что по периметру появились маленькие черные квадратики. Это захваты для масштабирования объекта. Наведя курсор на один из этих захватов сожмите эллипс.

 

10.          Нарисуйте еще эллипсы и разместите их слегка с перекрытием:

 

11.          Сплавим полученные фигуры в единый цельный объект, для этого инструментом Выбор обведите курсором вокруг созданных объектов тем самым выделив их все и используйте команду: Arrange > Shaping > Weld.

12.          Используем для объекта текстурную заливку, обратите внимание, объект должен быть выделен, иначе выводится окно предлагающее изменить данное свойство для всех вновь создаваемых объектов. Наведите курсор мыши на инструмент Fill Tool и нажмите маленькую черную стрелку в правом нижнем углу кнопки инструмента. Появится выбор разных инструментов этой группы

 

13.          В открывшемся диалоговом окне выберите группу Sample 5 и текстуру Curved spaces. Нажмите ОК.

14.          Вы получите тело персонажа. Вид текстуры можно видоизменить. Для этого сначала Вам понадобится отобразить окно так называемого причаливающего (Docker) типа для свойств объекта: щелкните правой кнопкой по объекту тела персонажа и выберите пункт Properties. В правой части окна программы откроется соотвествующее причаливающее окно:

 

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

 

16.          Используя кнопку Edit в данном окне можно видоизменять текстуру воздействуя на параметры алгоритма создающего изображение текстуры. Для начала попробуйте нажимать кнопку Preview (см. рисунок после шага 12). Каждый раз генерируется новый образец со случайно заданными параметрами. Если самостоятельно изменить какие-либо параметры и нажать Preview, то при создании текстуры будут использованы заданные параметры.

17.          Попробуем изменить теперь толщину и цвет обводки объекта тела персонажа. В окне свойств объекта выберите вкладку перо (Outline). В данном окне измените толщину и цвет линии обводки (абриса) контура.

 

Тело персонажа готово. Используя снова инструмент Эллипс создайте персонажу глаза.

 

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

 

Затем Вы выделяете обе фигуры и производите операцию логического вычитания: Arrange > Shaping > Back Minus Front (или Front Minus Back). Отличие заключается в том, какая фигура расположена поверх другой (Front), т.е. на переднем плане или (Back) на заднем плане.

 

Положение любого объекта по глубине (Передний план, Задний план и т.п.) можно задавать командой: щелчок ПРАВОЙ кнопкой мыши по центру (крестик) объекта и выбор Order (Порядок) > и соответствующая команда (To Front, To Back …).

 

Полученный объект можно масштабировать, раскрашивать, вообщем использовать в качестве бровей и рта персонажа. Для того, чтобы дублировать объект дабы не повторять проделанное заново просто Edit > Duplicate – дублируйте объект и получите второй. Заливка сплошным цветом – Fill Color Dialog на панели инструментов или кнопка Uniform fill на вкладке Fill окна свойств объекта (Property docker).

 

Персонаж готов.

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

Доверенные партнеры сайта Мега Информатик -

 
     
 
Яковенко Андрей Яковенко Андрей. Интересный и разносторонний человек. Занимается созданием сайтов под ключ на cms WordPress, Joomla и DLE. Помимо этого примерный семьянин и увлекающийся человек. Самое главное - очень открытый, которому можно смело довериться. Подробнее узнать об Яковенко Андрее можно обратившись на его личный сайт - Яковенко Андрей

 
 
     
 

ignazius.ru

Сайт Тимонина Андрея - начинающего сайтостроителя и игродела :)

 
 
     
   
     
 

 
 
     
     
     
 

Вам понравился наш сайт ? И Вы хотите обменяться с нами ссылками ?

Отлично! Сделать это просто - разместите на страницах своего сайта следующий код -

 
     
 


or this

 
     
 

И пришлите на адрес creator@megainformatic.ru код ссылки Вашего сайта - он будет размещен здесь !

 
     
  Вот как должна выглядеть картинка со ссылкой на наш сайт -  
     
  Мега Информатик - исследовательско-креативный сайт посвященный разработке компьютерных игр  
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
megainformatic live chat
Начать беседу
X
 

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



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


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