3d_graphics
Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| 3d_graphics [2026/10/15 15:13] – создано gecko | 3d_graphics [2026/10/15 20:39] (текущий) – gecko | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ====== 3D-графика ====== | ====== 3D-графика ====== | ||
| - | Процесс рендеринга 3D-треугольника выглядит следующим образом: | + | Типичный процесс рендеринга 3D-треугольника выглядит следующим образом: |
| * Координаты вершин загружаются в регистры [[GTE]] VXY0, VZ0, VXY1, VZ1, VXY2, VZ2; | * Координаты вершин загружаются в регистры [[GTE]] VXY0, VZ0, VXY1, VZ1, VXY2, VZ2; | ||
| * Загружается матрица поворота 3x3, вектор смещения и параметры проекции; | * Загружается матрица поворота 3x3, вектор смещения и параметры проекции; | ||
| - | * Выполняется инструкция GTE RTPT; | + | * Выполняется инструкция GTE [[RTPT]]; |
| * Результат - три вершины в экранном пространстве - считывается обратно в регистры CPU; | * Результат - три вершины в экранном пространстве - считывается обратно в регистры CPU; | ||
| * При необходимости вершины отсекаются в зависимости от направления (winding), чтобы не рисовать треугольники, | * При необходимости вершины отсекаются в зависимости от направления (winding), чтобы не рисовать треугольники, | ||
| Строка 11: | Строка 11: | ||
| * Формируется и отправляется GPU-команда для рисования треугольника. Для текстурированного непрозрачного треугольника это GP0(24h). | * Формируется и отправляется GPU-команда для рисования треугольника. Для текстурированного непрозрачного треугольника это GP0(24h). | ||
| + | Советы для повышения производительности: | ||
| + | * При рендеринге индексированных мешей не трансформируйте вершины по несколько раз. Создайте буфер для кэширования вершин в экранном пространстве. В первом цикле трансформируйте все вершины по три штуки, вне зависимости от индексов (для GTE индексы не имеют значения), | ||
| + | * Используйте буфер команд и DMA, это гораздо быстрее, | ||
| + | |||
| + | ===== Ordering Table ===== | ||
| + | |||
| + | Ordering Table (OT) - это специальный контейнер, | ||
| + | |||
| + | В основе OT лежит односвязный список, | ||
| + | |||
| + | Если какие-то примитивы будут иметь одинаковую глубину, | ||
3d_graphics.1792077193.txt.gz · Последнее изменение: — gecko
