Инструменты пользователя

Инструменты сайта


rtps

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
rtps [2026/10/08 19:06] – создано geckortps [2026/10/08 19:09] (текущий) – gecko
Строка 1: Строка 1:
 ====== RTPS ====== ====== RTPS ======
  
-RTPS (Rotate-Translate-Perspective Single) - инструкция [[GTE]], которая осуществляет полный процесс проекции вершины из мирового в экранное пространство.+RTPS (Rotate-Translate-Perspective Single) - инструкция [[GTE]], которая осуществляет полный процесс проекции одной вершины из мирового в экранное пространство.
  
-1. Трансформация вершины матрицей поворота и вектором смещения:+Входные данные: 
 +  * R - Q3.12 (1 бит знака, 3 бита целой части, 12 бит дробной части; 1.0 = 2^12 = 0x1000). 
 +  * TR - 32-битное целое число со знаком. 
 +  * H - 16-битное целое число без знака. 
 +  * OFX, OFY - Q15.16 (1 бит знака, 15 бит целой части, 16 бит дробной части; 1.0 = 2^16 = 0x10000). 
 +  * DQA - Q7.8 (1 бит знака, 7 бит целой части, 8 бит дробной части; 1.0 = 2^8 = 0x100). 
 +  * DQB - Q7.8 (1 бит знака, 7 бит целой части, 8 бит дробной части; 1.0 = 2^8 = 0x100). 
 + 
 +Выходные данные: 
 +  * SXY2 - экранные координаты XY (16-битные целые числа со знаком). 
 +  * SZ3 - экранная координата Z (16-битное целое число без знака). 
 + 
 +Порядок вычислений: 
 + 
 +1. Трансформация вершины матрицей поворота (R) и вектором смещения (TRX, TRY, TRZ):
  
 <code> <code>
Строка 40: Строка 54:
 </code> </code>
  
-GTE делит H (дистанцию проекции) на SZ3 (глубина вершины) с помощью аппроксимации Ньютона-Рафсона (таблица unr_table на 256 значений). Деление неточное - это аппаратное ограничение, которое и порождает характерное дрожание вершин. Если SZ3 = 0 или H >= 2*SZ3, деление переполняется (n = 0x1FFFF), и поднимаются флаги FLAG.Bit17 и FLAG.Bit31 (вершина за камерой или слишком близко).+GTE делит H (дистанцию проекции) на SZ3 (глубина вершины) с помощью аппроксимации Ньютона-Рафсона. Деление неточное - это аппаратное ограничение, которое и порождает характерное дрожание вершин в графике PlayStation. Если SZ3 = 0 или H >= 2*SZ3, деление переполняется (n = 0x1FFFF), и поднимаются флаги FLAG.Bit17 и FLAG.Bit31 (вершина за камерой или слишком близко).
  
-Дистанция проекции (16-бит) обычно равна 0x0100.+Дистанция проекции (16 бит) обычно равна 0x0100.
  
 3. Вычисление экранных координат: 3. Вычисление экранных координат:
rtps.1791486372.txt.gz · Последнее изменение: — gecko

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki