Поделиться через


Форматы Surface (Direct3D 9)

В Direct3D все трехмерные изображения представлены линейным диапазоном памяти, называемым поверхностью. Поверхность может рассматриваться как массив 2D, где каждый элемент содержит значение цвета, представляющее небольшой раздел изображения, называемый пикселем. Уровень детализации изображения определяется как количеством пикселей, необходимых для представления изображения, так и количеством битов, необходимых для цветового спектра изображения. Например, изображение с шириной 800 пикселей на 600 пикселей с 32 битами цвета для каждого пикселя (написанное как 800x600x32) будет более подробным, чем изображение, которое имеет ширину 640 пикселей в ширину на 480 пикселей с 16 битами цвета для каждого пикселя (записано как 640x480x16). Аналогичным образом, более подробное изображение потребует большей поверхности для хранения данных. Для изображения 800x600x32 размеры массива поверхности будут составлять 800x600, и каждый элемент будет содержать 32-разрядное значение для представления его цвета.

Все поверхности имеют размер и хранят определенное количество битов, представляющих цвет. Биты, представляющие цвет, разделены на отдельные элементы цвета: красный, зеленый и синий. В Direct3D все элементы цвета определяются D3DFORMAT перечисленным типом. Формат цвета Direct3D разбивается на количество пользователей, зарезервированных для каждого цвета. Например, 16-разрядный формат цвета в Direct3D определяется как D3DFMT_R5G6B5, где 5 битов зарезервированы для красного (R), 6 битов для зеленого (G) и 5 битов для синего цвета (B).

Surfaces Direct3D