vram
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| vram [2026/10/09 18:05] – gecko | vram [2026/10/15 16:48] (текущий) – gecko | ||
|---|---|---|---|
| Строка 7: | Строка 7: | ||
| * **24-битный** - также известен как 24-bit Direct или True Color. На каждый канал выделено по 8 бит. Используется для вывода на экран и декодирования видео. | * **24-битный** - также известен как 24-bit Direct или True Color. На каждый канал выделено по 8 бит. Используется для вывода на экран и декодирования видео. | ||
| - | * **16-битный** - также известен как 15-bit Direct. На каждый канал выделено по 5 бит, старший бит - бит прозрачности | + | * **16-битный** - также известен как 15-bit Direct. На каждый канал выделено по 5 бит, старший бит - бит прозрачности. Этот режим позволяет хранить 32 × 32 × 32 = 32768 цветов. |
| - | * **8-битный индексированный** - использует 256-цветовую палитру. Каждый пиксель является 8-битным индексом в палитре. | + | * **8-битный индексированный** - использует 256-цветовую палитру, в которой хранятся 16-битные цвета. Каждый пиксель |
| - | * **4-битный индексированный** - использует 16-цветовую палитру. Каждый пиксель является 4-битным индексом в палитре. Подходит для простейшей 2D-графики и текста. | + | * **4-битный индексированный** - использует 16-цветовую палитру, в которой хранятся 16-битные цвета. Каждый пиксель |
| Для вывода на экран поддерживаются только прямые 24-битный и 16-битный режимы. Для текстур поддерживаются 16-битный, | Для вывода на экран поддерживаются только прямые 24-битный и 16-битный режимы. Для текстур поддерживаются 16-битный, | ||
| + | |||
| + | Значение бита прозрачности в пикселе текстуры (или в сплошном цвете примитива) зависит от ситуации: | ||
| + | * Если цвет пикселя черный (0, 0, 0), то нулевой бит прозрачности означает, | ||
| + | * Если цвет пикселя не черный, | ||
| ===== Адресация ===== | ===== Адресация ===== | ||
| Строка 17: | Строка 21: | ||
| VRAM адресуется как двумерный буфер разрешением 2048x512 байт, что эквивалентно 1024x512 пикселей в 16-битном цветовом режиме. В левом верхнем углу этого прямоугольника обычно находятся буферы кадра (вверху первичный, | VRAM адресуется как двумерный буфер разрешением 2048x512 байт, что эквивалентно 1024x512 пикселей в 16-битном цветовом режиме. В левом верхнем углу этого прямоугольника обычно находятся буферы кадра (вверху первичный, | ||
| - | Доступ к текстурам организован постранично. Текстурная страница - это логическая область размером 256x256 пикселей. GPU использует ее при текстурировании полигонов. Независимо от цветового режима, | + | Доступ к текстурам организован постранично. Текстурная страница - это логическая область размером 256x256 |
| Одна и та же текстурная страница физически занимает разный объем памяти, | Одна и та же текстурная страница физически занимает разный объем памяти, | ||
| Строка 24: | Строка 28: | ||
| * 16-битный - TP=2 - 256 пикселей - 128 KiB | * 16-битный - TP=2 - 256 пикселей - 128 KiB | ||
| - | Текстуры располагаются в VRAM с учетом того, что GPU адресует память 16-битными пикселями. Позиция текстуры (или CLUT) обычно зашивается в заголовок данных | + | Текстуры располагаются в VRAM с учетом того, что GPU адресует память 16-битными пикселями. Позиция текстуры (или CLUT) обычно зашивается в файл [[TIM]], где задается 16-битными координатами tx и ty, где: |
| * tx - горизонтальная координата в 16-битных пикселях; | * tx - горизонтальная координата в 16-битных пикселях; | ||
| * ty - вертикальная координата в строках | * ty - вертикальная координата в строках | ||
| - | Для рисования текстурированного полигона в команду GPU отправляется значение tpage, 16-битное поле, которое кодирует положение страницы и параметры ее использования: | + | Эти координаты используются для загрузки данных в видеопамять командой GP0(A0h), но для чтения их напрямую |
| - | * Биты 0-3: pageX, горизонтальная позиция | + | * Биты 0-3: pageX, горизонтальный индекс |
| - | * Бит 4: pageY, вертикальная позиция | + | * Бит 4: pageY, вертикальный индекс |
| * Биты 5-6: ABR, режим прозрачности (0, 1, 2 или 3, см [[GPU# | * Биты 5-6: ABR, режим прозрачности (0, 1, 2 или 3, см [[GPU# | ||
| - | * Биты 7-8: TP, цветовой режим текстуры (0, 1, 2 или | + | * Биты 7-8: TP, цветовой режим текстуры (0, 1 или |
| Если при загрузке изображения известны его координаты в VRAM (tx, ty) и цветовой режим, то искомое значение tpage получается следующим образом: | Если при загрузке изображения известны его координаты в VRAM (tx, ty) и цветовой режим, то искомое значение tpage получается следующим образом: | ||
| Строка 50: | Строка 54: | ||
| </ | </ | ||
| - | При рисовании полигонов tpage определяет, | + | При рисовании полигонов tpage определяет, |
vram.1791569135.txt.gz · Последнее изменение: — gecko
