Суббота, 25 ноября 2017, 14:32

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [306]
Статьи об общих понятиях связанных с созданием игр.
Программирование [69]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [123]
Статьи о программах для создания игр, уроки и описания.
Софт [27]
Различные программы, в том числе в помощь игроделам.
2D-графика [11]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [10]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [4]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [70]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [56]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Что в своих играх используете от стороннего производителя?
Всего ответов: 9222
Главная » Статьи » 2D-графика

Принципы рендеринга 2D изображения - тогда и сейчас
2DВы играете в игры? Уверен что да, иначе на gcup вам делать нечего. А знаете ли вы как рисуется ваш спрайт или фон когда вы его помещаете в Game Maker или Unity? Цель данной статьи: объяснить новичкам о том как рендерится 2D изображение.

Итак, что же мы привыкли считать за 2D? Когда вся графика на экране плоская, растровая или векторная. Это утверждение было верно лет 20 назад. Но давайте немного к истории:

Изначально, когда был MS-DOS и никакого API для рисовании графики не было всё рисовали прямо в фреймбуффер. Фреймбуффер - участок памяти, в котором располагаются пиксели. Этот участок обычно находится на видеокарте и отвечает за то что сейчас отображается на экране. То есть чтобы отобразить что то на экране достаточно скопировать скажем спрайт из одного участка памяти в другой. Но всё не так просто. Если просто взять и очищать фреймбуффер, затем рисовать спрайт каждый кадр то картинка будет мерцать, потому что картинка не подготавливается а сразу рисуется на экран, и это вызывает мерцание. Поэтому обычно выделяли массив размером Width * Height * кол-во компонентов цвета, куда всю эту графику рисовали, а затем этот массив копировали в фреймбуффер. Этот метод называется двойной буферизацией.

Когда рисуется спрайт на экран, он копируется из одного участка памяти в другой. Этот метод называется блиттинг. Большинство игр того времени использовали блиттинг, но сейчас блиттинг почти нигде не используется. Потому что теперь он не нужен, теперь 2D - это частный случай 3D. Теперь всё гораздо проще: рисуем плоскость, накладываем на неё текстуру и всё. Но ведь был же DirectDraw спросите вы. Был. Но 3D использовать просто удобнее. Например вы сможете рисовать 3D меши в 2D сцене. Вы сможете использовать всю мощь пиксельных шейдеров для создания различных эффектов. Вы сможете использовать частицы(при софтварном рендеринге, а ускорение 2D уже давно убрали из видеокарт много частиц с приемлемым FPS рендерить не получится).

Именно так сейчас и работает 2D графика в играх.

И каждый раз когда вы помещаете спрайт в Unity вы помещаете Plane. И на самом деле ваша игра - 3D.

Вот я и описал то как работает 2D графика в этой короткой статье. Большая часть это конечно история, но я думаю все поняли как она работает.

Категория: 2D-графика | Добавил: bodya_WM (23 августа 2017)
Просмотров: 791 | Комментарии: 2 | Рейтинг: 3.0/23 |
Теги: Unity, рендер, блиттинг, Game Maker, фреймбуффер, , 2d, DirectDraw, 3D, MS-DOS
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Принципы рендеринга 2D изображения - тогда и сейчас», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 2
+0-
2 JunkerKun   (15 октября 2017 16:15)
Если не учитывать, что в рендеринге 3Д тоже присутствует блиттинг, конечно... в виде, собственно, отрисовки буфера.

+1-
1 Epsilon   (18 сентября 2017 11:13)
EpsilonНи о чём.
Точнее нагромождение терминов вокруг единственного посыла, что мол сейчас, даже когда рендеришь 2D, на самом деле рендеришь текстуру плейна в 3D пространстве.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • Impact
  • Point&Click Dev Kit
  • Jet3D
  • Ludiloom
  • Esenthel Engine
  • Ignifuga
  • ScoreDoom
  • Ethanon Engine
  • RPG Maker VX ACE
  • Sauerbraten
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    GameDev, Уроки OpenGL, Программирование, Создать Minecraft
    Все права сохранены. GcUp.ru © 2008-2017 Рейтинг