Блог страдающего Лиса
Lorem ipsum hello dolor sit world amet

27 фев 2023 Пн Треугольное чтиво

Короче, решил я делать треугольники не такими, как ранее. Я думал, что буду хранить их в кеш-памяти, но так не пойдет, потому треугольники будут храниться в памяти SDRAM и рисоваться по следующему алгоритму:
  • Получаем треугольники из последовательности
  • Применяем матрицу преобразования камеры
  • Проверяем треугольник на видимость — если вообще невидим, не добавляется в очередь. Если видим — добавляется он один. Если треугольник разрезается на части — режем его и добавляем 2 треугольника.
  • Рендерим очередь треугольников, если заполнилась
  • Если еще есть что сканировать, возвращаемся к 1
Это приблизительный план того, что будет делаться. По мере разработки я буду уточнять. Сам треугольник в памяти будет занимать 32 байта: (x,y,z,u,v) — это ровно 8 байт, так как на x,y,z будет требоваться всего лишь 16 бит в формате half precision float point. Хотя, можно сделать и signed shoft, где занимаемый диапазон значений будет от -32768 до 32767, целочисленно. Я пока что не знаю, стоит ли так делать. Три точки по 8 байт это 24 байта, остальные 8 байт под параметры самого треугольника, например, номер текстуры или шейдерной программы.
Теги: Графика