» Уроки
Навигация в трёхмерном пространстве
Навигация в трёхмерном пространстве часто представляет собой проблему для начинающих программистов. Особенно, для тех, кто не до конца понимает как работают матрицы, либо просто не догадывается, что они содержат в себе практически готовое решение их проблемы. Часто для навигации в 3D программисты берут единичные вектора и, путём умножения их на матрицу вида камеры, получают вектора для навигации. Однако, если немного разобраться в проблеме и попытаться математически прикинуть решение задачи, оказывается, что даже эти вычисления совершенно … Читать Навигация в трёхмерном пространстве »
Игровая камера
Игровая камера является неотъемлемым элементом любой игры. Камеры используются и в 2д-играх, и в 3д. Бывают редкие исключения, но они скорее подтверждают правило. Например, камера может не использоваться в 2д- или 3д- играх при условии, что уровень игры полностью вмещается в экран – например, в тетрисе или “змейке” она обычно не используется. Но, в большинстве игр, она всё же присутствует. При этом следует понимать, что игровая камера служит не только лишь для задания той области … Читать Игровая камера »
Иерархия объектов
Иерархия объектов очень удобна когда нам нужно задать какие-то трансформации объектов не относительно начала координат, а относительно друг-друга. Например, если создать иерархию из двух объектов: рука и туловище, то для того, что бы рука двигалась вместе с туловищем, нам не надо будет прилагать каких-либо усилий – при движении туловища трансформации всех объектов в иерархии (в нашем случае рука) будут пересчитаны в соответствии с движением объектов привязки (в нашем случае туловища), но при этом сами объекты … Читать Иерархия объектов »
Vertex Declaration
Vertex Declaration в Direct3D создаётся с помощью функции CreateVertexDeclaration, которой, в качестве аргументов, передаётся массив объектов типа D3DVERTEXELEMENT9, каждый из которых определяет отдельную запись (тип данных) в формате вершин модели – такие как позиция вершины, нормаль, текстурные координаты и так далее. Далее, при рендеринге объектов через Direct3D Device, до вызова отрисовки примитивов, созданный Vertex Declaration устанавливается с помощью функции SetVertexDeclaration и после этого графический конвейер сможет верно парсить данные нашей модели и передавать их на … Читать Vertex Declaration »
Per-pixel lighting (Попиксельное освещение)
Per-piхel lighting или Pixel shader lighting это общее название для техник, позволяющих рассчитывать цвет, яркость, освещение, блики и т.д. для каждого видимого пикселя того объекта, который мы рендерим. В старых играх освещения либо не было вообще, либо оно было статическим и, лишь в очень редких случаях, освещённость объектов рассчитывалось повертексно (для каждой вершины модели). Но, с ростом мощностей видео-карт, стало возможным использовать более точные методы расчёта освещения, в том числе и попиксельного освещения моделей. Такие, … Читать Per-pixel lighting (Попиксельное освещение) »