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


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

megainformatic - Эмулятор БК-0010.01 версия 2.6 для Windows 9x/Me/2000/XP автор Юрий Калмыков 2002 год
Эмулятор БК-0010.01 Ну вот наконец-то, пришло время продемонстрировать Вам эмулятор БК-0010.01. Сегодня мы рассмотрим эмулятор БК-0010.01 версии 2.6 написанный Юрием Калмыковым в 2002 году. Э-эх ! Сколько времени утекло с тех пор. С тех самых пор, как у меня появилась моя первая БК-0010.01 - в далеком 1992 году.
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
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 Администрирование

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

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

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

megainformatic - Выгрузка файла на сайт

megainformatic - выпадающее меню на html и css

megainformatic - Использование checkbox

Краеугольная особенность работы Web-form на примере смены состояния checkbox

Технологии WEB

Технологии WEB - AJAX-запросы

Часто Задаваемые Вопросы

Продукты

Проблемы с кодировками при отображении страниц

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

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

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

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

webinformatic: Музыкальная страничка трэкера

megainformatic - Создание музыки и звука

webinformatic: Создание музыки и звука: урок 2

megainformatic - Создание музыки и звука: урок 3 - настройка Impulse Tracker для работы в WinXP

megainformatic - Создание музыки и звука: урок 4 - Введение в Mod Plug Tracker

megainformatic - Создание музыки и звука: урок 5 - Первая композиция в Mod Plug Tracker

megainformatic - Создание музыки в Impulse Tracker 2.14 - урок 6 - Ввод Нот

megainformatic - Создание музыки в Impulse Tracker 2.14 Первая мелодия

megainformatic - Создание музыки в Impulse Tracker 2.14 Настройка параметров сэмплов

megainformatic - Создание музыки и звука: теория и практика создания трэкерской музыки

megainformatic - Инструкция по оплате услуг средствами WebMoney

Основы работы в Microsoft Visual Studio 2008 и DirectX 9 (DX SDK Aug 2008)

Введение в программирование игр на С++ для платформы DirectX 9 - Первый старт

Введение в программирование игр на С++ для платформы DirectX 9 - Меняем иконку приложения

Введение в программирование игр на С++ для платформы DirectX 9 Добавляем другую модель

Введение в программирование игр на С++ для платформы DirectX 9 Программирование игр в directx. Hello, World!

Введение в программирование игр на С++ для платформы DirectX 9 Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008

Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008 - Урок 1 Основные операторы языка C++

Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008 - Урок 1 Основные операторы языка C++ (часть 2)

Урок 2 Написание Win32-приложений. Обзор стартового кода Win32-приложения. Добавление ресурса текстовая строка

Урок 3 Создание Win32-приложений. Создание меню и простых диалоговых окон.

Урок 4 Создание Win32-приложений. Стандартные диалоги. Изучение сопутствующих конструкций языка. Консольные Win32-приложения. Указатели. Ссылочный тип. Массивы.

Урок 4 часть 2 Win32. Диалог выбора цвета, смена цвета фона окна приложения

подробнее

     
     
 

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

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

 
     
 
megainformatic cms e-pro
Стоимость - 400 руб.
Заказать megainformatic cms e-pro
 
     
 

Демонстрация работы системы - 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 для вашего сайта - она уже у Вас в руках и содержит всё необходимое для создания полноценного сайта + интернет-магазина.

 
     
 

 

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

 
     
подробнее

megainformatic api получения готового решения для решения различных задач возникающих при создании сайта



Что такое megainformatic api ?

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

Особенность всех решений.

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

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

Как воспользоваться megainformatic api для решения собственных задач в области разработки сайтов и вопросов тесно с ними связанных ?

Сначала Зарегистрируйтесь, авторизуйтесь на сайте, а затем Получите VIP.

Сразу же после этого вы можете использовать megainformatic api в своих веб-приложениях, указывая в качестве api_id id вашего аккаунта.

Задача Task Решение Solution
     
1. Валидация e-mail. Возвращает результат проверки - является ли данная строковая последовательность e-mail адресом или нет. Данное решение носит тестовый характер и служит для проверки доступности api.
api.php?api_id=5&pwd_code=cecb1d47ff6c76e0393848ddd16326b4
&solve_id=1&help=1&email=some@some.ru


Пример вызова api и получения результата:

<?php

$result_content = file_get_contents('http://megainformatic.ru/api.php?api_id=5&pwd_code=cecb1d47ff6c76e0393848ddd16326b4&
solve_id=1&help=1&email=some@some.ru');

$result = array();

if ( $result_content !== false )

{
$result = unserialize($result_content);
}

var_dump($result);

?>


посмотреть как работает пример -
test_api.php

параметр help=1 при запросах к любым решениям возвращает в переменной $param['help'] краткую справку по использованию данного решения.

2. Выполнение e-mail рассылки Выполняется рассылка email по указанному списку email адресов.
api.php?api_id=5&pwd_code=cecb1d47ff6c76e0393848ddd16326b4
&solve_id=2&help=1&maillist=some@some.ru,some2@some.ru
&letter=тестовое письмо&config=email_from:mix2@varve.ru,email_title:Предложение по развитию и поддержке вашего сайта,email_copy:cyberdjo@varve.ru


Более подробно об использовании данного решения можно узнать указав параметр help=1 (в ссылке-примере он указан)

ВНИМАНИЕ !!! Данный пример не выполняет фактической отправки писем. Решение будет работать только лично для вашего api. Подробнее см. в личном кабинете.
3. Proxy сервер. Позволяет скрыть ваше ip, т. к. обращение к запрашиваемому ресурсу происходит опосредованно через наш proxy. api.php?api_id=5&pwd_code=cecb1d47ff6c76e0393848ddd16326b4
&solve_id=3&help=1&url=http://megainformatic.ru/?page=19


Уважаемый посетитель, вот немного полезной инфы о Вас

Ваш ip: 54.226.23.160

Операционная среда (сведения об ОС, браузере и др.): CCBot/2.0 (https://commoncrawl.org/faq/)

4. Наш контент для вашего сайта Позволяет отображать на вашем сайте тематические статьи нашего сайта.

Обратите внимание ! В контенте статей обязательно присутствует ссылка на наш ресурс. Если она была удалена вашим обработчиком, то ваш аккаунт блокируется без возврата средств. Будьте ВНИМАТЕЛЬНЫ !!!

api.php?api_id=5&pwd_code=cecb1d47ff6c76e0393848ddd16326b4
&solve_id=4&help=1&page=157


В данном демо-примере при любых значениях page всегда отображается только контент 157 страницы. В вашем api_id будут отображаться нужные запрашиваемые страницы.

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

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

В качестве примера используется регулярное выражение http[s]*://[A-Za-z0-9-_.]+.[A-Za-z0-9-_]{2,}[.]*, для поиска всех url на странице.

Выражение надо передать в urlencode виде, потому что некоторые символы регулярных выражений модифицируются браузером, причём знак + должен быть заменен кодовым словом code_meta_plus.

Таким образом чтобы решить задачу поиска url на странице megainformatic.ru вызываем решение со следующим набором параметров -

api.php?api_id=5&pwd_code=cecb1d47ff6c76e0393848ddd16326b4
&solve_id=5&help=1&url=http://megainformatic.ru
&algorithm=http%5Bs%5D%2A%3A%2F%2F%5BA-Za-z0-9-_.%5Dcode_meta_plus.%5BA-Za-z0-9-_%5D%7B2%2C%7D%5B.%5D%2A


Параметр algorithm как раз содержит urlencoded регулярное выражение, вместо знака плюс используется слово code_meta_plus.

Результат вернет все url, которые есть на указанной странице и соответствуют регулярному выражению.

6. Онлайн функции urlencode, urldecode api.php?api_id=5&pwd_code=cecb1d47ff6c76e0393848ddd16326b4
&solve_id=6&help=1&type=encode&data=проверка123


7. Сайт за 1 минуту.

Сайт за минуту
Пример вызова api для создания сайта.

api.php?api_id=5&pwd_code=cecb1d47ff6c76e0393848ddd16326b4
&solve_id=7&help=1&page=1


Пример скрипта - Сайт за 1 минуту, где путём обращения к megainformatic api всего несколькими десятками строк кода можно создать рабочий сайт без необходимости развертывания на собственном хостинге.

Скачать пример скрипта для создания сайта за 1 минуту

После скачивания скрипта и размещения его на localhost или на Вашем хостинге переименуйте файл в open_site.php, чтобы он мог нормально исполняться.



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

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

подробнее

Веселый Буквоежка - онлайн комикс - страница 19

представляем Веселый Буквоежка - онлайн комикс.

И что это ?

Веселый Буквоежка - онлайн комикс - страница 19

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

[страница 1]  [страница 2]  [страница 3]  [страница 4]  [страница 5]  [страница 6]  [страница 7]  [страница 8]  [страница 9]  [страница 10]  [страница 11]  [страница 12]  [страница 13]  [страница 14]  [страница 15]  [страница 16]  [страница 17]  [страница 18]  [страница 19]  [страница 20]  [страница 21]  [страница 22]  [страница 23] 

подробнее

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

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

Рассмотрение программирования игр под 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] [далее]  
     
     
 
Создание текстурной развертки для модели автомобиля
 
[Все уроки 3ds max] [Галерея моделей] [далее]
 

 
текстурированная модель авто окончательный вариант развертки для модели авто
 
Щелкнув по изображению можно скачать модель и текстуру в формате 3ds max 7.0 (в виде архива Win-Rar 3.5)
 

В предыдущем уроке мы создали с Вами достаточно простую модель автомобиля. Однако никогда и нигде Вы наверное не видели, чтобы модели в играх были одного сплошного цвета. Как же придать модели более живой вид? Для этого применяется плоское изображение - текстура - по определенным правилам накладываемая на модель. Это-то и придает моделям правдоподобный вид. Т.е. все, что требуется чтобы создать модель - это каркас (который мы уже создали) и текстура.

Текстуры обычно рисуются в программах для 2D-графики - Photoshop, Corel Draw. Уроки по этим программам Вы тоже найдете на нашем сайте! Текстура это обычно файл типа bmp, jpg или какой-то другой. Типичные размеры текстур - 32х32, 64х64, 128х128, 256х256, 512х512, 768х768, 1024х1024 и т.д. Рисованию текстур посвящены отдельные уроки. Однако для модели требуется обычно не просто повторяющийся узор (или тайл), а так называемая развертка - т.е. 3-х мерная модель разложенная на плоскости. Примеры готовых моделей с текстурными развертками Вы можете найти в разделе галерея моделей.

В данном уроке мы займемся изучением методов создания текстурных разверток 3D-моделей. Это пока еще не рисование самой развертки в Photoshop или Corel Draw, а особый промежуточный шаг, необходимый для облегчения процесса нанесения тектуры на модель и точности исполнения рисунка. Если Вы когда-нибудь пробовали накладывать текстуры на модели, то понимаете, какой это длительный и утомительный процесс.

Однако его в значительной степени можно облегчить!

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

Для начала испробуем то, что нам предложит для создания развертки сам 3DS MAX -

откройте модель автомобиля, выделите модель и выполните следующие действия: Rendering > Render To Texture.

В открывшемся диалоговом окне в группе Mapping Coordinates установите переключатель в положение Use Automatic Unwrap. Это заставит программу автоматически сгенерировать проекционные координаты для вершин модели и вывести в плоскую текстуру. Обратите внимание! Параметр Channel = 3 и показывает какой канал (из возможных) будет использоваться для сгенерированных проекционных координат вершин модели. Можно иметь несколько наборов проекционных координат вершин - в отдельных каналах!

Прокрутите панели окна ниже и в группе Output нажмите кнопку Add. В появившемся окошке выберите Diffuse Map и нажмите Add Element. Это приведет к тому, что в текстуру будет выводиться рассеянный (Diffuse) цвет модели. Размеры образца текстуры можно изменить нажав соответствующую кнопку - 128, 256 и т.д. По умолчанию размер текстуры 256х256. Давайте зададим размер 768х768. Для этого нажмите 768.

В группе Baked Material установите переключатель в положение Output Into Source и флажок напротив пункта Render To Files Only. Обратите внимание! В группе Output в поле File Name and Type указано имя файла для создаваемой текстуры и тип файла по-умолчанию. Это легко изменить! Кроме того, нажав кнопку c многоточием напротив этого поля, можно узнать в какую папку будет сохранена текстура и при желании изменить путь для сохранения файла.

Нажмите кнопку Render и вы получите изображение с текстурой.

По этой развертке можно бы и начать рисовать саму текстуру в любой подходящей Вам программе (Photoshop, Corel Draw ...).

 
развертка получаемая автоматическим путем
 

Однако полученная развертка крайне неоптимальна! Во-первых, посмотрите сколько полезного места пустует! (правда теневые части плохо видны, поэтому почти черны). Во-вторых, и это, пожалуй, самое главное - не очень понятно и удобно рисовать развертку по такой текстуре. Детали слишком мелки, нет явных переходов, кроме того, мелкие детали вообще непонятно к какой части модели принадлежат.

Поэтому нам с Вами придется заняться оптимизацией выводимой развертки! Ниже и описывается как это лучше сделать.

В первую очередь нужно уничтожить сгенерированные автоматическим путем координаты. Для этого можно просто выполнить сброс рабочей среды File > Reset не сохраняя никакие результаты и снова открыть модель. Или можно удалить пункт Automatic Flatten UVs из стека модификаций.

Далее, в списке модификаторов найдите модификатор Unwrap UVW и выберите его.

В редакторе материалов создайте новый материал назвав его и загрузив в качестве изображения для рассеянного света (Diffuse) данную вспомогательную текстуру:

 
вспомогательная текстура для создания текстурной развертки
 
Перенесите данный материал на модель. Также нужно увеличить для текстуры количество тайлов - где-то по 4 на U и V
 
увеличение количества повторений наложений (тайлов) для текстуры по осям текстурных координат U и V
 

Можете попробовать выполнить Rendering > Render :))) Ладно, двигаемся дальше.

В окне стека модификаций разверните узел напротив пункта Unwrap UVW и выберите Select Face.

Сейчас мы будем создавать текстурные координаты для выбранным граней (face). Этот процесс Вам придется повторять многократно, вот основные его шаги:

1) Выделить требуемую грань (грани).

2) В группе Parameters на панели параметров модификатора нажать кнопки Planar Map, затем Edit

Теперь нужно настроить вид открывшегося окна Edit UVWs (это не относится к повторяющимся действиям, достаточно настроить лишь 1 раз!) - во-первых, удобно расположите окно на экране и растяните/сузьте, если оно не умещается целиком на экране.

Настроим параметры отображаемой текстуры - в правом нижнем углу окна нажмите кнопочку Options. В открывшейся панели в группе Bitmap Options задайте размер текстурного образца 768х768 - путем редактирования значений числовых полей. Уберите флажок Tile Bitmap - так как наша текстура - не тайл, а конечное изображение. В поле Brightness задайте значение полной яркости текстуры - 1. Теперь можно снова нажать кнопочку Options, чтобы скрыть панель.

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

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

 
окно редактирования проекционных координат вершин модели
 

Для выполнения этой задачи Вам придется пользоваться всеми 5-ю инструментами, представленными в окне редактирования проекционных координат текстуры: базовые инструменты редактирования проекционных координат

Эти инструменты: по-порядку, слева-направо: Move - для смещения выбранных граней (вершин); Rotate - для вращения; Scale - масштабирования; Freeform Mode - комплексное сочетание первых трех; Mirror - зеркального отражения.

Попробуйте теперь, поэкспериментировать с этими инструментами, особенно первыми тремя!

Вращение на 90 градусов можно также выполнять кнопками Rot +90 и Rot -90 на панели в нижнем правом углу окна.

 
показано проецирование боковой части модели автомобиля
 

3) Поверните, сместите, отмасштабируйте проекционные координаты выбранной грани

Поэкспериментировав немного Вы должны понять, что к чему и далее - многократно повторяя данные 3 шага для всех граней модели поочередно расположить их все в виде развертки как показано на рисунке ниже:

 
спроецированные на плоскость грани модели в виде развертки
 

Щелкнув по изображению вы можете скачать файл с проекционными координатами вершин. Загрузить координаты можно из окна Edit UVW через пункт меню File > Load UVs.

Чтобы выбрать следующую грань для проецирования текстурных координат - сверните окно Edit UVW, выберите нужную грань (набор граней). Затем проделайте для них шаги 1-3.

Также считаю целесообразным привести ряд полезных замечаний, которые пригодятся Вам на первых порах работы по проецированию, с приобретением опыта, Вы, вероятно выработаете какие-то свои правила.

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

2) Когда все грани будут присутствовать на развертке их очень удобно выделять - просто обводя мышью нужные грани (и даже вершины) и вот теперь уже можно пытаться разместить это все более-менее целостно - чтобы получались наиболее крупные куски из граней лежащих в одной плоскости.

3) Также нужно ставить себе задачу, чтобы размещать отдельные части так, чтобы детали переходили от одной к другой. Это не всегда достижимо, но возможно. В противном случае приходится брать более мелкие грани и размещать по возможности ближе к месту крепления к другим граням! Места стыковки вершин отдельных граней 3ds max показывает в окне Edit UVWs синим цветом.

4) Наконец, последнее, если у вашей модели имеются очень мелкие детали, а пространство еще есть, то можно расположить их именно в этом пространстве уделив им больше места, чем они требуют на самом деле. При этом их и рисовать будет легче и у вашей модели появится нужная степень детализации.

В нашем случае вокруг граней еще осталось достаточно свободного места (см рисунок). Но это не беда! Во-первых, модель достаточно проста и у нее нет каких-то особых вычурных или мелких частей. Во-вторых, хватит еще места для размещения на текстуре развертки колеса (про колесо не забыли ? :))).

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

Отключите все выделения в стеке модификаций.

Вызовите окно Render To Texture.

В группе Mapping Coordinates установите переключатель в положение Use Existing Channel и выберите канал 1. Обратите внимание! Это тот же канал, который стоит сейчас в окне параметров модификатора Unwrap UVW в поле Map Channel.

Остальные параметры оставьте в том же положении, как и в предыдущем случае, когда мы делали автоматическую развертку.

Нажмите Render и вы получите текстуру с разверткой (в качестве цвета присутствует изображение материала, который мы использовали ранее как вспомогательный. Почему именно такой? Он состоит из треугольников и позволит вам уже на развертке отслеживать все искажения и размеры деталей и Вам легче по ней будет рисовать окончательную развертку!

 
окончательный вариант текстуры развертки с применением complite map
 

Можете теперь поэкспериментировать с параметрами окна Render To Texture, например задать вместо Diffuse Map - Complete Map в группе Output и т.д.

Теперь по данной развертке очень легко будет нарисовать окончательную развертку, но для этого Вам понадобится программа Adobe Photoshop или Corel Draw. Уроки по ним смотри в другом разделе!

Я же привожу уже окончательный вариант того, что можно изобразить -

 
щелкнув по изображению можно скачать модель и текстурную развертку
 

На рисунке текстура 128х128 (в целях экономии) - в архиве с моделью, которую можно скачать щелкнув по изображению, размер текстуры - 768х768 пиксель!

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

Теперь осталось совсем немного - замените изображение вспомогательной текстуры на изображение окончательного варианта развертки. Измените количество тайлов по U и V на 1.

Перенесите новый материал на модель и в ответ на вопрос выберите вариант replace material.

Работа завершена!

Небольшое задание Вам для самостоятельной проработки - на развертке уже присутствуют элементы для колеса. Ваша задача нанести материал с текстурой на колесо и, используя модификатор Unwrap UVW, спроецировать отдельные грани колеса на изображение колеса текстуры. Этим способом Вы получите текстурированное колесо. Остальные 3 колеса создайте путем клонирования.

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

Выделите клонируемые колеса.

Выберите инструмент Mirror.

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

 
клонирование и зеркальное отражение пары колес при помощи Mirror
 
[Все уроки 3ds max] [Галерея моделей] [далее]
 
     
     
     
     
     
megainformatic live chat
Начать беседу
X
 

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



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


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