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


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

megainformatic - Что нужно знать для создания сайта ? Стандартные шрифты для сайта
Что нужно знать для создания сайта ? Стандартные шрифты для сайта [к содержанию] Статья Ерошенкова Сергея - http://techmeat.net/about источник статьи: http://techmeat.net/standartnye-shrifty-dlya-sajta.html К сожалению, в стиле сайта нельзя на
подробнее...

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

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

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс

megainformatic - Система управления сайтом на php - megainformatic cms admin files

megainformatic - обзор антивирусных средств защиты

megainformatic - как работает антивирус ?

megainformatic - Создание сайта для бизнеса

megainformatic - Новый взгляд на очевидные вещи

megainformatic - Разработка программ на c++

megainformatic - Немного о музыке

megainformatic - GET и POST запросы

megainformatic - для чего нужна карта сайта

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

megainformatic - Мысли о разном

megainformatic - Легко ли быть программистом

megainformatic - Глубины программирования на C++

megainformatic - Убираем лимит на размер импортируемого файла в PhpMyAdmin

megainformatic - Как создать torrent файл

megainformatic - Нужна ли валидация вашему сайту ?

megainformatic - Антивирус DrWeb

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

megainformatic - Что такое BitTorrent (БитТоррент)

megainformatic - Миссис Даутфайр 1993 фильм torrent

megainformatic - Как скачивать торрент-раздачу ?

megainformatic - Автотелега фильтр

megainformatic - Фильмы

megainformatic - Fahrengeit Фаренгейт игра 2006 для PC

megainformatic - Fez игра для PC 2013

megainformatic - Дневник памяти - фильм 2004

megainformatic - Scooter - The night - Video and Lyrics - Скутер - Ночь - Видео и лирика

megainformatic - Если всё же неудача

megainformatic - Смерть или искупление или избавление

megainformatic - По ту сторону

cj megainformatic - музыкальный альбом БЕСКОНЕЧНОЕ ДВИЖЕНИЕ ОЖИДАНИЕ И ДЕЙСТВИЕ

megainformatic - Костя Коробкин - Секретный проект - интерактивный комикс

megainformatic - Основы анимации во флеш на примере анимирования простейшей окружности

megainformatic - Парсер сайтов Введение

megainformatic - Я пишу музыку для себя и для продажи

megainformatic - Статьи на околомузыкальные темы - осень 2014 часть 1

megainformatic - рассказ - Чужие воспоминания - автор Синицин Андрей - 24.09.2014

megainformatic - Сайты живущие вне поисковых систем. Есть ли такие и как их найти ?

megainformatic - Game craft - проект разработки игровых и мультимедийных проектов

megainformatic - Game craft - моделируем scv

megainformatic - Game craft - моделируем scv - шаг 1 (часть 2)

megainformatic - Game craft - моделируем scv - шаг 2 (часть 3)

megainformatic - Game craft - Наложение текстуры на модель робота scv (часть 4)

megainformatic - Game craft - Прорисовка текстуры робота SCV шаг 5

megainformatic - Game craft - Экспорт модели из 3ds max в формат X

megainformatic - Game craft - отображение scv модели в формате x в d3d9-приложении

megainformatic - Game craft - управление игрой от Direct Input в d3d9 - приложении

megainformatic - Game craft - игровая камера в d3d9 - приложении

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

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

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

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

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

подробнее


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

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);
}

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

 

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

подробнее

     
     
 

Система Управления Сайтом и Автоматизация Обработки и Доставки Электронных Заказов - megainformatic cms e-pro

Автоматизация обработки и доставки электронных заказов по партнерским программам.

 
     
 
megainformatic cms e-pro
Стоимость: 500 руб.

 
     
 

Демонстрация работы системы - megainformatic.ru/webprojects/epro

Документация по работе системы - megainformatic.ru/webprojects/epro

 
     
 

ОСОБЕННОСТИ СИСТЕМЫ

- Предназначена для автоматизации обработки и доставки электронных заказов, а также поддержки и управления сайтом.

- Написана на языке php. Для работы сайта использует базы данных mysql и файлы.

- Подробное документирование возможностей;

- Прозрачность использования и открытый исходный код;

КЛЮЧЕВАЯ ЗАДАЧА СИСТЕМЫ megainformatic cms e-pro

 
     
  СХЕМА РАБОТЫ СИСТЕМЫ  
     
  megainformatic cms e-pro схема работы  
     
 

Работает с партнерскими системами интернет-магазинов для обработки поступивших заказов. Из партнерской системы заказы поступают в форме e-mail уведомлений. Эти уведомления менеджер магазина просто копирует в обычный текстовый файл, а затем передает его на обработку системе megainformatic cms e-pro.

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

Далее можно на основе сформированных заказов выполнить их обработку и доставку. Возможна также повторная доставка неограниченное число раз.

 
     
 

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

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

В чём заключается эта автоматизация:

1) Уведомления собранные менеджером интернет-магазина должны иметь определенную заданную структуру - для задания новой структуры нужно лишь описать её в соответствующем файле настроек системы;

2) Данные о пользователях и сделанных через партнерскую систему заказов заносятся в таблицу Пользователи (users) и Заказы (orders);

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

Для каждого товара используется свой шаблон письма. При доставке заказов автоматически отсылаются письма, в которых проставляется корректное имя Заказчика, номер заказа и сгенерированный регистрационный номер. Письма доставляются на тот e-mail, который был указан заказчиком в уведомлении поступившем из интернет-магазина партнера.

Регистрационная информация по зарегистрированным пользователям при доставке заказов автоматически заносится в таблицу Регистрация (register).

4) Если возникает необходимость повторной доставки заказов в системе megainformatic cms e-pro предусмотрен соответствующий режим работы и повторная доставка может осуществляться неограниченное число раз.

 

 
     
 

В дополнение к системе автоматизации обработки заказов по партнерской программе Вы получаете:

- Полноценную CMS для создания и управления вашим сайтом.

- Система позволит вам построить информационный сайт или интернет-магазин и запустить его в работу.

- Вы не обременены поиском и подбором нужной CMS для вашего сайта - она уже у Вас в руках и содержит всё необходимое для создания полноценного сайта + интернет-магазина.

 
     
 

 

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

 
     
подробнее

     
  [к содержанию] [назад] [далее]  
     
 
Рельефные изображения
 
уроки Photoshop] [уроки 3ds max] [галерея 3d моделей]
 

Создание элементов Web-арт в Photoshop.

При создании web-страничек (для публикации в Интернет) часто используются различные декоративные элементы и элементы управления в виде кнопок, стрелок различной формы и стиля. Давайте научимся создавать их.

1.    Создайте новое изображение – File > New, размером 32х32 пикселей, фон можно сделать прозрачным:

 
 
Изображение получится маленьким и будет располагаться в левом верхнем углу экрана, возможно будет загорожено наполовину инструментальной панелью:
 
 
В этом случае Вам придется отодвинуть инструментальную панель чуть вниз (за синий заголовок), а изображение оттранспортировать в центр экрана.
 
 
Для удобства работы с таким мелким рисунком выберите инструмент Лупа  и нажав кнопку Fit On Screen в панели свойств подгоните по размерам экрана:
 
 
Возможно может потребоваться повторное нажатие или развертывание окна изображения во всю рабочую область окна программы. Для этого воспользуйтесь средней кнопкой в синем заголовке окна изображения.
 
 
2.    Изобразите контур одного из предложенных элементов:
 
 
 
Для рисования воспользуйтесь инструментом рисования векторных фигур:
 
 

Для выбора нужной фигуры щелкните инструмент правой кнопкой мыши.

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

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

3.    Придадим созданному объекту рельефность: Layer > Layer style > Bevel and Emboss.

 
Вы сразу увидите как разительно изменится вид элемента-кнопки. Теперь попробуйте поэкспериментировать с настройкой параметров диалогового окна Layer style для эффектов Bevel and Emboss. Как видите, этот инструмент достаточно эффективен для быстрого придания объектам объемной формы.
   
 
   
  Назначение параметров окна стилей слоя – для стиля рельефность – Bevel and Emboss:

Группа Structure

Style – задает различные типы рельефа – внешний, внутренний, комбинированный, вдавленный;

Technique – техника – сглаженная, жесткая, мягкая;

Depth – глубина – сила выраженности рельефа;

Direction – направление свето/тени – сверху-вниз или снизу вверх;

Size – размер рельефа – при больших значениях рельеф нивелируется;

Soften – степень сглаженности;

Группа Shading

Angle – направление освещения;

Altitude – высота источника освещения над горизонтом;

Gloss Contour – форма контура глянца;

Anti-aliased – задает плавный переход краев рисунка;

Highlight Mode, Opacity, Shadow Mode, Opacity – режим, цвет и степень непрозрачности для блика и тени соответственно.

   
Форма кнопки готова, теперь можно попробовать нанести на нее какое-нибудь изображение (пиктограмму) подсказывающую назначение данной кнопки. Создайте новый прозрачный слой и нарисуйте поверх кнопки изображение. Для рисования задайте требуемый цвет переднего плана и используйте карандаш с толщиной пера 1 пиксель.
   
Создание эффекта рельфа созданного изображения на поверхности кнопки: заключается в следующем – щелкните правой кнопкой мыши по текущему слою в панели слоев. Выберите пункт Blending options, поставьте флажок напротив пункта Bevel and Emboss и левой кнопкой щелкните этот пункт. Задайте требуемые параметры рельефа.

Чтобы рельефный элемент был такого же цвета, как и вся кнопка в окне стилей слоя выберите пункт Color Overlay измените цвет на требуемый взяв с изображения при помощи пипетки.

   
Создание кнопки произвольной формы  -воспользуйтесь инструментом Custom shape tool.
   
Изменение цвета кнопки без перерисовки –

Склейте все слои в один – Layer > Merge Visible; Используйте пункт меню Image > Adjustments > Hue/Saturation и в окне параметров при помощи манипуляторов Hue/Saturation/Brightness задайте требуемые Тон/Насыщенность/Яркость.

   
уроки Photoshop] [уроки 3ds max] [галерея 3d моделей]
 
     
  [к содержанию] [назад] [далее]  
     
подробнее

     
  [Все уроки 3ds max] [Галерея моделей] [назад] [далее]  
     
 
Особенности экспорта моделей и анимации экспортером kWXPort080719 из 3ds max 2009 
 
В архиве roboo.rar содержится простейшая модель для пробного экспортирования из 3ds max 9 (2009) экспортером kWXPort080719
 

Инструкция по экспорту:

- установите 3ds max 9;

- установите экспортер kWXPort08071;

- скачайте и распакуйте архив roboo.rar с примером модели;

 

Допустим вы распаковали содержимое архива в папку c:\My3dWorks\roboo

Тогда, откройте из 3ds max 9 файл roboo_anim_go.max

Поправьте путь к текстуре в редакторе материалов - нажмите клавишу [M] выберите слот с материалом metallo

Нажмите кнопку M напротив Diffuse

В группе Bitmap parameters

откорректируйте путь к текстуре Bitmap для Вашей системы (в нашем примере путь к текстуре должен стать c:\My3dWorks\roboo\roboo.jpg)

 
Выполните экспорт File > Export в списке экспортеров найдите kW X-port
 
 
Введите какое-либо имя экспортируемой модели, например roboo, нажмите сохранить в окне параметров задайте например такие настройки -
 
 
и нажмите ОК
 

После этого в указанной папке (по умолчанию Мои Документы\3dsmax\export) появятся 3 файла -

roboo.X - экспортированная модель

roboo.X.txt - отчет о экспорте

roboo.jpg - текстура модели

 
Сразу же можно открыть модель вьювером DXViewer из DX SDK 9 и посмотреть на результат
 
 
Особенности экспорта более сложных моделей
 
     
  [Все уроки 3ds max] [Галерея моделей] [назад] [далее]  
     
     
Содержимое данной страницы доступно только зарегистрированным пользователям.



Пожалуйста войдите на сайт - Вход

или пройдите процедуру регистрации - Регистрация

megainformatic live chat
Начать беседу
X
 

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



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


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