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


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

megainformatic - Создание музыки и звука: теория и практика создания трэкерской музыки
          Урок 1: Сэмпл/Паттерн/Композиция
подробнее...

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

сайт megainformatic - Ваши Отзывы

сайт megainformatic - Автор

сайт megainformatic - Каталог Статей

сайт megainformatic - Добавить Ваш Сайт

сайт megainformatic - Технология

сайт megainformatic - игра Веселый Буквоежка

сайт megainformatic - Работа с базами данных MySQL

сайт megainformatic - Говорящий Комикс Веселый Буквоежка

сайт megainformatic - Добавляем созданный счетчик на все страницы Вашего Сайта

сайт megainformatic - СССР - Создаем Сайт Своими Руками - Экспорт/импорт данных из баз данных MySQL

megainformatic - СССР - Создаем Сайт Своими руками - Введение в php

megainformatic - СССР - Создаем Сайт Своими Руками - Выводим дату и время в формате RU

сайт megainformatic - уроки php

megainformatic - Уроки 3ds max

megainformatic - КАК СОЗДАТЬ СВОЮ ИГРУ - Веселый Буквоежка Ваше Визуальное Шоу / Fun Letter Eater You Visual Show

megainformatic - Формы оплаты заказа

megainformatic - оплата через систему QIWI - выбор продукта

megainformatic - КАК СОЗДАТЬ СВОЮ ИГРУ - Набор разработчика игр - Нечто: Необъяснимое - в плену желаний

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

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

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.ru Синицин А. С. Шарики на лифте - Как создать игру - Создание фона заднего плана

 

 

к содержанию

21.09.2016, 11.10.2016

 

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

Приведем примеры правильных и неправильных фонов.

 

Шарики на лифте - Как создать игру - Создание фона заднего плана - Правильный фон, выгодно оттеняющий действующих лиц (шариков)

Шарики на лифте - Как создать игру - Создание фона заднего плана - Неправильный фон, действующие лица на его фоне теряются.

 

 

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

 

 

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

 

 

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

 

 

Что ж, если с этим всё ясно - посмотрим какие есть фоны в игре Шарики на лифте и научимся создавать свои.

Шарики на лифте - Как создать игру - Создание фона заднего плана - какие есть фоны в игре Шарики на лифте

 

 

Из приведенного выше рисунка становится понятным, что должны присутствовать 3 изображения: back_bg.jpg - самый дальний от наблюдателя фон - задний план; middle_bg.tga - фон среднего плана; front_bg.tga - фон переднего плана;

 

 

Обратите внимание, что back_bg.jpg - это jpg файл - и его использование тут возможно благодаря тому, что самый дальний - задний план не будет содержать в себе никаких прозрачных элементов - он полностью заполнит всё пространство; middle_bg.tga - и front_bg.tga - это уже tga файлы, с альфа-маской, поскольку данные фоны не являются сплошь непрозрачными, в них даже больше прозрачного, чем непрозрачного и это необходимо для того, чтобы - средний фон показал игроку как бы стену дома, поросшую растениями, но с окнами, а фон для переднего плана - это какие-то кусты и цветники на подоконниках и балконах; Теперь понятно для чего у этих фонов много прозрачного пустого пространства.

 

 

Итак, создадим свой фон заднего плана. Создаем новое изображение 1200 х 1200 пиксель, 72 dpi.

Шарики на лифте - Как создать игру - Создание фона заднего плана - создадим свой фон заднего плана. Создаем новое изображение 1200 х 1200 пиксель, 72 dpi.

 

 

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

 

 

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

 

 

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

 

 

Шарики на лифте - Как создать игру - Создание фона заднего плана - идея картинки в виде контуров

Далее будем постепенно прорисовывать картинку шаг за шагом.

 

 

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

 

 

Для удобства ориентирования можно на отдельном слое отметить элементы цифрами. А файлы сохранять как element_1, element_2 и т. д. Тогда при сборке итоговой картинки вы уже не запутаетесь.

 

 

Шарики на лифте - Как создать игру - Создание фона заднего плана - метки элементов на картинке

 

 

Вот как например может выглядеть дом, в окружающей его зелени деревьев. Я намеренно показал контуры пурпурными, а не черными. Так их легче отделять от фонового заполнения.

 

Шарики на лифте - Как создать игру - Создание фона заднего плана - дом, в окружающей его зелени деревьев

 

 

На итоговой картинке контуры будут черными. Вот такими.

 

Шарики на лифте - Как создать игру - Создание фона заднего плана - дом, в окружающей его зелени деревьев - черные контуры

 

 

 

 

Продемонстрирую фрагмент того, что у вас может получиться.

 

Шарики на лифте - Как создать игру - Создание фона заднего плана - дом, в окружающей его зелени деревьев

 

 

 

 

Нашу картинку делаем бесшовной - т. е. стираем, при помощи инструмента Ластик, аккуратно границы. В итоге это может выглядеть вот так -

 

 

 

 

 

Шарики на лифте - Как создать игру - Окончательный вариант фона

 

 

 

 

В игре он не будет виден весь целиком. Поэтому особых требований к фону нет. Но всё же он и не должен быть слишком уж безобразным. Если это примерно соблюдается и если у вас есть достаточно времени для его прорисовки - то можно добиться максимально желаемого качества. У меня получилось так - мы видим на скриншоте как части фона заднего плана видно сквозь просветы в фонах переднего и среднего планов.

 

 

 

 

 

Шарики на лифте - Как создать игру - мы видим на скриншоте как части фона заднего плана видно сквозь просветы в фонах переднего и среднего планов.

 

 

Другие фоны - для среднего и переднего плана рисуются по примерно такому же принципу. Вы можете посмотреть как это сделано в игре или придумать какие-то свои варианты.

 

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

 

 

 

к содержанию

подробнее

     
  Уроки Photoshop - Рисуем и анимируем  
     
  Уроки Photoshop - Рисуем и анимируем  
 
 
     
  [содержание]  
     
  Урок 1 - Старт - PSD, BMP, JPG, TGA, Контуры, Обесцвечивание  
     
 

Вот Мы с Вами начали наш первый урок. Вы уже наверное посмотрели титульную заставку, которая есть на этой странице и задались вопросом: А как же всё это сделано ? Отвечу - это всё было нарисовано от руки обычной мышкой.

Как ?

 
     
  Давайте попробуем. За основу возьмём пока главного героя - Веселого Буквоежку (ВБ).  
     
   
     
  Создаем новое изображение, размер пока зададим 512 x 512 пикселей.  
     
   
     
  Задаем единицы измерения - пиксели (pixels), проставляйте значения, цвет подложки (заднего плана) можно задать пока Transparent (прозрачный). Как видите на рисунке Ваши действия обозначены цифрами от 1 до 6  
     
   
     
 

Остальное нужно оставить без изменений или задать как на рисунке. Resolution - разрешение вашей картинки (пиксель/дюйм) по-умолчанию стоит 72, оставьте как есть или сделайте 300 - как у меня. Color Mode - обязательно RGB Color - чтобы мы могли работать с цветным 24 битным изображением.

1) Почему разрешение имеено 300 точек на дюйм ?

2) Почему изображение будет 24 битным ?

 
     
 

Жмём ОК и слушаем ответ на вопросы -

1) Разрешение влияет на картинку, выводимую на печать, т. е. если Вы планируете вашу картинку после её создания напечатать, то получите именно столько точек на дюйм, сколько это указано, на фактический размер картинки (512х512, который мы уже задали в пикселях), это никак не влияет, но 300 в данном случае - для печати достаточно хорошее значение;

2) Если мы задаем режим RGB Color / 8 bit - это значит каждому пикселю нашего изображения уделяется в памяти 3 х 8 = 24 бит, поскольку R (Red), G (Green) и B (Blue) - его составляющие красного, зеленого и синего будут занимать по 8 бит каждый, а в совокупности это и дает изображение 24 бит на пиксель.

Если еще прикинуть что само изображение будет 512 х 512 пиксель или = 262144 пикселей, и каждый пиксель - это 3 байта (24 бита, 8 бит - это 1 байт), то вся информация о картинке в памяти будет занимать -

262144 х 3 байт = 786432 байт.

1024 байт - это 1 Килобайт (Кб), значит наша картинка будет иметь размер - 768 Кб.

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

 
     
 

У меня получился другой размер файла, скажите Вы. Почему ?

Причин несколько - 1) пока у нас пустое изображение, нужно хотя бы залить например сплошным цветом и сохранить еще раз;

Размер увеличился, но всё равно не такой. Видимо при сохранении используется оптимизация путём сжатия. Попробуйте отфильтровать изображение фильтром шум или вставить какую-то реальную картинку, снова сохранить.

Ого, размер файла стал даже больше чем 768 Кб.

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

Но вот если Вы выберите для сохранения формат файла BMP, 24 бит, то в результате получите именно то, о чём я говорил.

 
     
 

Файл BMP (Bitmap) - это точная копия того, как хранится изображение в памяти без каких-либо преобразований. Однако этот формат не используйте для своих изображений.

Рабочие изображения храните в формате PSD - при этом Вы не потеряете ничего из того, что делали - слоёв, оформления и прочих особенностей (BMP их не сохраняет).

Итоговые изображения - законченные и готовые к использованию также не сохраняйте в BMP - они получаются очень большие по размеру и долго обрабатываются. Вместо этого рекомендую использовать более удобный и надежный формат - JPG. По-сути это тот же BMP, но здесь можно хранить файл, выбрав приемлемое качество сжатия. Таким образом Вы достигнете сразу двух целей: получите конечный файл готовый к публикации и размер его будет значительно меньше, чем аналогичный файл BMP, даже если Вы сохраните в JPG с максимальным качеством (12).

 
     
 

Таким образом, в ходе наших с Вами уроков Вы будете работать преимущественно с файлами в форматах PSD, JPG и TGA.

Это еще что за формат ?

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

Эти три базовых формата мы и будем применять в наших уроках.

 
     
  Итак, это было немного теоретических сведений, которые Вам еще пригодятся, но продолжим наш урок.  
     
  Давайте возьмём картинку нашего героя, вставим в созданное нами изображение, сделаем его черно-белым (чтобы было легче обводить) и на отдельном слое, вооружившись кистью просто обведем контуры.  
     
  Открываем картинку fle_1.jpg из Photoshop, выбираем пункт меню Select > All чтобы выделить всё изображение в картинке  
     
   
     
  Далее выбираем Edit > Copy, переключаемся на новое, созданное нами изображение и снова выбираем Edit > Paste  
     
   
     
  Мы видим, что на новом слое Layer 2, который до сих пор был пустым появилось наше изображение.  
     
  Теперь создаем новый слой и рисуем на нём -  
     
   
     
  Вернемся на слой Layer 2 и обесцветим изображение на нём -  
     
   
     
  Щелкаем слой Layer 3, выбираем подходящий цвет, кисть и её параметры и обводим по контуру  
     
   
     
   
     
  чтобы было удобнее обводить воспользуйтесь инструментом Zoom Tool и увеличьте нужный участок картинки. Обратите внимание! Обводим на слое Layer 3 !!! Иначе наши контуры сольются с картинкой (если обводите на Layer 2)  
     
   
     
  Размеры кисти задайте порядка 3 пикселей, края твёрдые и осторожно обводите мышью контуры.  
     
   
     
  В результате у Вас должно получиться что-то подобное -  
     
   
     
  Теперь если скроем слой оригинал (по-которому мы ориентировались при обводке), то увидим наш результат. Именно такой цвет для обводки был выбран не случайно - Вам гораздо легче видеть те участки, которые Вы уже обвели, а которые - еще нет.  
     
   
     
  Маленькая хитрость - когда рисуете контуры в увеличенном изображении нажимайте клавишу [Пробел] и двигайте изображение мышью, нажав еще и левую кнопку мыши.  
     
  Ну и поскольку реальные картинки всегда бывают обведены черным, а не пурпурным цветом, то исправим этот момент -  
     
   
     
   
     
  [содержание]  
     
  Уроки Photoshop - Рисуем и анимируем  
 
 
     
подробнее

     
  эмулятор игры Ну, Погоди!  
     
 

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

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

 
     
  [содержание] [назад] [страница 1] [далее]  
     
  Matrices - Матрицы - страница 1  
     
 

Итак, Мы подошли с Вами к изучение примера Matrices

Он построен всецело на тех же принципах, что и примеры CreateDevice и Vertices.

Нововведением является использование функции анимирования FrameMove, которая правда пока не вынесена в отдельную функцию, а называется пока SetupMatrices, кроме того, рассмотрен принцип трансформаций моделей с применением матриц на примере вращения простейшей модели в виде треугольника.

 
     
 

В сущности код примера Matrices это тот же самый код, что и Vertices.

Основное отличие - добавлена функция SetupMatrices

VOID SetupMatrices()
{
// матрица 3d-мира - world matrix, мы просто вращаем объект вокруг оси Y.
D3DXMATRIXA16 matWorld;

// задаем матрицу вращения для генерации полного оборота в 2*Пи-радиан
// каждые 1000 ms (миллисекунд). Для предупреждения потери точности
// в вычислениях, системное время модулируется и умножается на период вращения
// до преобразования в угол поворота в радианах

UINT iTime = timeGetTime() % 1000;
FLOAT fAngle = iTime * ( 2.0f * D3DX_PI ) / 1000.0f;
D3DXMatrixRotationY( &matWorld, fAngle );
g_pd3dDevice->SetTransform( D3DTS_WORLD, &matWorld );

// Настраиваем view matrix - матрицу Вида. Матрица вида определяется как
// положение глаза vEyePt, положение точки куда смотрит глаз vLookatPt и

//направление в котором должен быть поднят глаз vUpVec. Здесь

//указываются конкретные векторные координаты для этих точек
D3DXVECTOR3 vEyePt( 0.0f, 3.0f,-5.0f );
D3DXVECTOR3 vLookatPt( 0.0f, 0.0f, 0.0f );
D3DXVECTOR3 vUpVec( 0.0f, 1.0f, 0.0f );
D3DXMATRIXA16 matView;

//по ним строится матрица Вида и задается в качестве таковой
D3DXMatrixLookAtLH( &matView, &vEyePt, &vLookatPt, &vUpVec );
g_pd3dDevice->SetTransform( D3DTS_VIEW, &matView );

// Матрица Проецирования - projection matrix - это перспективное преобразование
// приводящее геометрию из 3D пространства вида к 2D пространству экрана Viewport,
// (перспектива приводит к уменьшению удаленных на расстояние объектов). Для
// построения Перспективной трансформации, Мы используем Угол обзора field of view

// 1/4 pi что является наиболее распространенным,
// Соотношение длины экрана к ширине - aspect ratio, и ближний near и дальний far планы // привязки (которые определяют дистанцию, на которой следует отрисовывать

// геометрию).

D3DXMATRIXA16 matProj;
D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI / 4, 1.0f, 1.0f, 100.0f );
g_pd3dDevice->SetTransform( D3DTS_PROJECTION, &matProj );
}

 
     
 

Функция Render также претерпела небольшие изменения - перед выполнением отрисовки сцены вызывается метод её анимирования -

// Begin the scene
if( SUCCEEDED( g_pd3dDevice->BeginScene() ) )
{
// вообще говоря, данный метод должен вызываться вне скобок BeginScene..EndScene

//кроме того, более правильно и понятно будет создать отдельную функцию FrameMove, //разместить вызов функции SetupMatrices внутри неё, а отсюда убрать.

//вызов метода FrameMove организовать внутри wWinMain
SetupMatrices();

// Render the vertex buffer contents
g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof( CUSTOMVERTEX ) );
g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 1 );

// End the scene
g_pd3dDevice->EndScene();
}

 
     
 

Вот как должны выглядеть описанные исправления -

//FrameMove()

VOID FrameMove()
{
// Setup the world, view, and projection matrices
SetupMatrices();
}

//Render()

VOID Render()
{
// Clear the backbuffer to a black color
g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB( 0, 0, 0 ), 1.0f, 0 );

// Begin the scene
if( SUCCEEDED( g_pd3dDevice->BeginScene() ) )
{
// Setup the world, view, and projection matrices
//SetupMatrices();

// Render the vertex buffer contents
g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof( CUSTOMVERTEX ) );
g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 1 );

// End the scene
g_pd3dDevice->EndScene();
}

// Present the backbuffer contents to the display
g_pd3dDevice->Present( NULL, NULL, NULL, NULL );
}

//wWinMain

INT WINAPI wWinMain( HINSTANCE hInst, HINSTANCE, LPWSTR, INT )
{
// Register the window class
WNDCLASSEX wc =
{
sizeof( WNDCLASSEX ), CS_CLASSDC, MsgProc, 0L, 0L,
GetModuleHandle( NULL ), NULL, NULL, NULL, NULL,
L"D3D Tutorial", NULL
};
RegisterClassEx( &wc );

// Create the application's window
HWND hWnd = CreateWindow( L"D3D Tutorial", L"D3D Tutorial 03: Matrices",
WS_OVERLAPPEDWINDOW, 100, 100, 256, 256,
NULL, NULL, wc.hInstance, NULL );

// Initialize Direct3D
if( SUCCEEDED( InitD3D( hWnd ) ) )
{
// Create the scene geometry
if( SUCCEEDED( InitGeometry() ) )
{
// Show the window
ShowWindow( hWnd, SW_SHOWDEFAULT );
UpdateWindow( hWnd );

// 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 {
FrameMove();
Render();
}
}
}
}

UnregisterClass( L"D3D Tutorial", wc.hInstance );
return 0;
}

 
     
  Оранжевым цветом я пометил добавленный или исправленный код.  
     
 

Вы также заметите, что в данном примере применяется другой тип вершин -

// описание структуры для типа вершин
struct CUSTOMVERTEX
{
FLOAT x, y, z; // untransformed - нетрансформировання, 3D позиция вершины
DWORD color; // вершинный цвет
};

// формат FVF, описывающий применяемый тип вершины - вершина содержит только

// описание положения и вершинного цвета
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_DIFFUSE)

 
     
 

Слегка изменилась и функция InitD3D -

добавились строки кода

// отключаем culling, так как требуется сделать видимой переднюю и заднюю грани

// треугольника
g_pd3dDevice->SetRenderState( D3DRS_CULLMODE, D3DCULL_NONE );

// Отключаем D3D освещение, поскольку Мы используем собственный цвет вершин
g_pd3dDevice->SetRenderState( D3DRS_LIGHTING, FALSE );

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

     
 

Уроки по 3DS MAX - рассчитаны на тех, кто хочет познать мир 3D-графики. Курс читался слушателям по дисциплине компьютерный дизайн. Адаптирован для удаленного изучения. Все уроки содержат примеры моделей, которые можно скачать и посмотреть если у Вас что-то не получается! Новые уроки носят практический характер, т.к. создаваемые модели ориентированы на применение в компьютерных играх на платформах OpenGL, DirectX и других 3d приложениях.

Автор будет рад Вашим предложениям и замечаниям по-поводу содержания уроков. Можете также оставлять сообщения на Форуме.

 
     
     
     
  Введение в 3DS MAX - Рассказано о некоторых основных понятиях 3d-графики   
     
  макет помещения и обстановка  
     
  Создание макета помещения (этап 1) - Первый практический пример - Вы сможете сделать свой первый шаг в изучении 3ds max!    
     
  Создание макета помещения (этап 2) - Завершаем создание макета помещения   
     
  модель книжного шкафа  
     
  Моделирование на уровне полигонов (многоугольников) - Методы работы с объектами типа ediyable poly - на примере моделирования книжного шкафа    
     
  объекты обстановки комнаты  
     
  Создание предметов обстановки - Создаем простые модели - стул, стол, табурет  
     
  Моделирование обстановки помещения - Удаляем одну из стен, создаем дверной и оконный проемы, подгружаем модели стула, табурета и стола   
     
  текстурированная модель автомобиля  
     
 

Создание модели автомобиля

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

Показано создание из плоского контура с применением модификатора Extrude и последующей доработкой на уровне editable mesh

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

 
  Создание модели и текстуры Коммандного Центра  
     
  Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) - Этот объемистый урок расскажет Вам как научиться создавать нечто подобное: всем известно, что вышла игра StarCraft 2 компании Blizzard. Об этой игре ходят легенды. Но не дожидаясь пока вы в неё поиграете, а также для того, чтобы пополнить свои навыки и умения попробуем вообразить себя "крутым дизайнером" (прямо как из Blizzard) и попробовать создать модель и текстуру для коммандного центра из StarCraft 2.  
     
  Основы 3D-анимации, экспорт скелетной анимации  
     
  Основы 3D-анимации, экспорт скелетной анимации - Способы создания анимации в 3Ds Max 7.0 или выше (можно использовать и ранние версии) и использования ее в Delphi DirectX - играх  
     
   
     
  Особенности экспорта моделей и анимации экспортером kWXPort080719 из 3ds max 2009  
     
  Особенности экспорта моделей и анимации экспортером kWXPort080719 из 3ds max 2009 - В архиве roboo.rar содержится простейшая модель для пробного экспортирования из 3ds max 9 (2009) экспортером kWXPort080719.  
     
  Создание анимации вращающихся колес автомобиля  
     
  Создание анимации вращающихся колес автомобиля - В данном уроке рассказывается об особенностях создания анимации простыми трансформациями объектов пригодной для экспорта в DirectX8 и DirectX9-приложение - для этих целей применяется объект Dummy.  
     
  Небольшая ГАЛЕРЕЯ 3D-моделей  
     
  Небольшая ГАЛЕРЕЯ 3D-моделей - Представлены некоторые из моделей, созданных в 3Ds Max и текстурированных (текстуры нарисованы в Photoshop и Corel Draw). Некоторые модели не совсем оптимальны для экспорта в 3D-приложения, но послужат хорошим примером для демонстрации различных техник моделирования.  
     
  видео про едущий по зимней местности броневичок  
 

моделируем 3d броневичок, а также смотрим видео созданное в 3ds max и озвученное, с его участием.

Создание модели броневика (Хэд) - Анимация вращения колес и создание видеоролика в 3ds max. Также представлена модель готовой анимированной сцены для скачивания.

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

В данном уроке - Путешествие в мир 3d мы попробуем создать небольшую сцену, включающую земной холмистый рельеф, небесный фон, деревья, траву, участок железной дороги и товарный вагон - сделаем мы это с использованием программ 3ds max 7 и photoshop cs 2. Если у вас другие версии этих программ - не беспокойтесь, многое применимо и к вашей версии.

Подробнее...

 
     
     
     
     
 

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

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

Другие статьи на тему создания сайтов, PHP и MySQL смотрите в разделе Статьи

 
     
 

В первую очередь что нужно иметь под рукой:

1) набор Web разработчика denver - этот набор включает все необходимые Вам программы для отладки и разработки Вашего сайта, включая PHP, MySQL, Apache, PERL, PostgreSQL;

2) и конечно же Вам понадобится какой-либо удобный html-редактор, например неплохим выбором является Macromedia Dreamweaver;

 
     
  После того, как Вы скачаете всё необходимое на свой ПК, нужно установить эти программы и начать работу.  
     
 

Если пакет denver корректно установлен в Вашей системе, то при вызове браузера Internet Explorer и наборе в его адресной строке ссылки

http://localhost/

 
     
  Вы будете попадать на заглавную страницу denver'а.  
     
 

Рабочие примеры этого урока мы будем размещать в папке -

С:\WebServers\home\localhost\www\phpwork

 
     
  Где С:\WebServers расположение установленного пакета denver в Вашей системе по-умолчанию. Если Вы при установке denver'а задали другой путь - используйте его.  
     
  Как выводить русскоязычное название месяца, а также время в 24 часовом формате, мы также познакомимся с оператором switch языка php.  
     
  Снова создайте чистый документ в html или текстовом редакторе и добавьте в него следующий код -  
     
 

<HTML>
<HEAD>
<TITLE>Наш второй скрипт на PHP</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
</HEAD> <BODY BGCOLOR=#FFFFFF LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Сегодня</font>

<?php

$mounth = date("n");
$day = date("j");
$year = date("Y");
$time = date("G:i ");
$mounth_ru = "";
switch ( $mounth )
{
case 1: {
$mounth_ru = "января";
break;
}

case 2: {
$mounth_ru = "февраля";
break;
}

case 3: {
$mounth_ru = "марта";
break;
}

case 4: {
$mounth_ru = "апреля";
break;
}

case 5: {
$mounth_ru = "мая";
break;
}

case 6: {
$mounth_ru = "июня";
break;
}

case 7: {
$mounth_ru = "июля";
break;
}

case 8: {
$mounth_ru = "августа";
break;
}

case 9: {
$mounth_ru = "сентября";
break;
}

case 10: {
$mounth_ru = "октября";
break;
}

case 11: {
$mounth_ru = "ноября";
break;
}

case 12: {
$mounth_ru = "декабря";
break;
}

}
echo "<font color=\"#000000\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"> $day $mounth_ru $year года $time </font>";

?>

</BODY>
</HTML>

 
     
 

Сохраните документ в папку -

С:\WebServers\home\localhost\www\phpwork

под именем

intro2.php

 
     
 

далее в браузере наберите адрес -

http://localhost/phpwork/intro2.php

и нажмите [Enter] выполнив переход по указанной ссылке

 
     
 

Вы увидите, что браузер вывел новую страничку, содержащую текст

Сегодня 13 июля 2010 года 12:56

 
     
  т. е. имя месяца уже русскоязычное, время выведено в 24-часовом формате.  
     
 

Как мы этого достигли ?

Сначала мы

$mounth = date("n");
$day = date("j");
$year = date("Y");
$time = date("G:i ");
$mounth_ru = "";

сформировали строковые переменные $mounth, $day, $year, $time, $mounth_ru

занеся в них месяц, день, год и время

затем применив оператор выбора switch

перевели числовое значение месяца $mounth

в русскоязычное $mounth_ru

, где как видим каждому числовому значению $mounth было сопоставлено соответствующее русскоязычное строковое название месяца и занесено в $mounth_ru

 
     
 

И наконец строка кода -

echo "<font color=\"#000000\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"> $day $mounth_ru $year года $time </font>";

 
     
 

Выводит эти строковые переменные на экран в том, порядке, как они указаны.

Перед этим указаны дополнительные html-теги, которые позволяют вывести текст на страницу с заданным цветом, размером и типом шрифта.

Здесь же Вы заметите применение символа экранирования \

этот символ позволяет разрешить вложенные двойные кавычки внутри кавычек оператора echo. Если этот символ не применить, то код будет записан с ошибочным синтаксисом.

Есть и другой вариант - вместо вложенных двойных кавычек обойтись одинарными -

echo "<font color='#000000' size='2' face='Verdana, Arial, Helvetica, sans-serif'> $day $mounth_ru $year года $time </font>";

 
     
 

Либо вообще обойтись без вложенных кавычек -

echo "<font color=#000000 size=2 face=Verdana, Arial, Helvetica, sans-serif> $day $mounth_ru $year года $time </font>";

 
     
  Наша цель достигнута.  
     
  В следующей нашей статье мы рассмотрим Как создать простейший счетчик посетителей сайта и задействовать при этом работу с базами данных MySQL  
     
megainformatic live chat
Начать беседу
X
 

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



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


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