Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Основы рендеринга и архитектуры

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

Поделиться

Страницы: 1 2 Следующая

kertis138Пользовательwww18 июня 201714:30#0
Здравствуйте!

Хотел спросить у знающих про самые основы графики и об архитектурных решениях.
Последнее время хочу исключительно для иследовательского интереса сделать для себя простой 2д движок. Сразу скажу, что понимаю, что одному делать что-то крупное почти нереально и цели у меня такой не стоит.
По опыту программирования: программировал на многих языках 2+ лет, но сейчас хочу С++ и OpenGL. Ну если вдруг по OpenGL информации мало, то можно и DirectX.
Знаю основы OpenGL, в с++ ориентируюсь свободно, знаю основые патерны и тд. То есть база некоторая есть. Но касательно геймдева я столкулся с довольно простыми вопросами, на которые не могу ответить в силу своей некомпетентности.
Подскажите какие нибудь статьи, книги, где я смогу ответить на все эти вопросы.

Вот, к примеру, я не понимаю следующих базовых вещей.

Если некоторый объект, например, камень имеет некоторые атрибуты - внешний вид, физические свойства (масса, плотность...), то рендер его рисует на основе меша, которые он содержит. А если мы его поместили на половину в воду, то, естественно, внешний вид этой части немного изменится. Но логически, кто это будет обрабатывать? Камень? Внешний рендер? Вода? Я не могу понять логику взаимодействия игровых объектов. Камень ли должен сам себя рендерить? Или же его рендерит внешняя сущность? Если внешняя, то как будет просходить рендеринг каких более сложный объектов, которые не имеют меша? Вот, напрмер, вода. Она имеет изменчивое строение в зависимости от формы сосуда. Не будет же рендер уметь обрабатывать все и вся?
Подскажите куда капать в этом направлении.

slava_mibМодераторwww18 июня 201714:49#1
Что бы нормально сделать собственный движок - надо сначала хотя бы поверхностно ознакомиться с уже существующими. С этого и советую начать.
iKestПостоялецwww18 июня 201715:29#2
Три кита рендера:
Геометрия (вершины) --> Материалы  (физика света) --> Пост-обработка

>Если внешняя, то как будет просходить рендеринг каких более сложный объектов, которые не имеют меша? Вот, напрмер, вода. Она имеет >изменчивое строение в зависимости от формы сосуда.
А с чего Вы взяли, что изменчивые объекты не имеют меша?

strategoПостоялецwww18 июня 201715:33#3
Я тоже плюсую за изучение исходников существующих движков.
kertis138Пользовательwww18 июня 201718:05#4
slava_mib
> Что бы нормально сделать собственный движок - надо сначала хотя бы поверхностно
> ознакомиться с уже существующими. С этого и советую начать.

Хорошо. А какой 2д движок лучше всего рассматривать, чтобы не запутаться?

kertis138Пользовательwww18 июня 201718:06#5
iKest
> А с чего Вы взяли, что изменчивые объекты не имеют меша?

Тогда получается, физика воды меняет меш воды?
Тогда рендер сможет нарисовать воду. Но вода тоже может отличатся по внешнему виду. Там могут быть блики, а могут не быть и тд. То есть рендер должен в зависимости от типа объекта рисовать его? Или как он различает тот или иной вид объекта?

iKestПостоялецwww18 июня 201718:23#6
Для рендера не важно, как расчитывается меш, он работает с конечными координатами вершин (которые могут получаться и из физических моделей в том числе). А вот блики, отражения, искажения и всё такое уже зависят от материалов. Грубо говоря за геометрию отвечает вертексный (вершинный) шейдер, за всю красоту - фрагментный (пиксельный).
slava_mibМодераторwww18 июня 201718:41#7
> Хорошо. А какой 2д движок лучше всего рассматривать, чтобы не запутаться?
kertis138, их много и разных. Конкретный выбор - зависит от уровня который вам нужен и от уровня ваших знаний/скиллов + конкретного ЯП.

> То есть рендер должен в зависимости от типа объекта рисовать его? Или как он различает тот или иной вид объекта?
Есть куча методов реализовать это всё. Но, я так понимаю, у Вас пока что нет даже самых базовых знаний даже на уровне алгоритмов, а не то что ЯП/движков - потому Вам пока нет смысла даже думать об этом.

kertis138Пользовательwww18 июня 201719:19#8
slava_mib
> потому Вам пока нет смысла даже думать об этом.
Именно поэтому я и прошу Вас натолкнуть меня на материал, который мне подробно расскажет об этом, чтобы изучив его, я смог и думать об этом и пытаться реализовать :)
MisanthropeПостоялецwww18 июня 201720:21#9
slava_mib
> надо сначала хотя бы поверхностно ознакомиться с уже существующими
а как же метод дилетанта ? :)
bodjaПостоялецwww18 июня 201720:23#10
kertis138
Ну?
Берешь двиг с самыми красивыми демками и опенсорсный и начинаешь усилено курить доку, исходники и демки.
Вот и весь материал :)
kertis138Пользовательwww18 июня 201720:24#11
Misanthrope
> а как же метод дилетанта ? :)
Да я не против сидеть и долго вникать в суть. В том и дело, что мне нравится изучать что-то интересное. Главное, чтобы я начал с такого движка, в котором было бы полезно покопаться. Но и уйти в бездну небытия я тоже не хочу)
kertis138Пользовательwww18 июня 201720:26#12
bodja
> Ну?
> Берешь двиг с самыми красивыми демками и опенсорсный и начинаешь усилено курить
> доку, исходники и демки.
> Вот и весь материал :)
Ну хорошо. Первый попавшийся двиг - cocos2d. Пойдет для начала?
Если да, то начинаю изучать его + как уже советовали выше курить книги по openGL.
Главное, чтобы cocos2d был дружелюбным))
bodjaПостоялецwww18 июня 201720:33#13
kertis138
> Ну хорошо. Первый попавшийся двиг - cocos2d
Канеш, как для 2де вполне.
kertis138Пользовательwww18 июня 201720:46#14
bodja
Хорошо. Всем спасибо. Тогда начну выполнять все ваши рекомендации, а затем приду с новыми вопросами :)

Страницы: 1 2 Следующая

/ Форум / Программирование игр / 2D графика и изометрия

2001—2017 © GameDev.ru — Разработка игр