Хонич А.
Как самому создать трехмерную игру
стр. 36

NuniTexturesLump - массив из N указателей на тип short. Один из таких указателей указывает на номера картинок (которые мы рассматривали в PNAMES) в файле ресурсов в зависимости от координаты X внутри текстуры, т.е. в зависимости от номера столбца текстуры. Эта таблица напрямую связана с методом вывода текстуры на экран: развертка не по горизонтали, а по вертикали. Для текстуры п можно записать:

Если окажется, что один и тот же столбец принадлежит больше чем одной текстуре, то в таблицу NumTexturesLump по адресу данного столбца записывается -1. Например, если в текстуре BIGDOOR1 (смотрите выше) картинки W131 начинаются с нулевой координаты по X (смещение по Y значения не имеет), то в таблицу' NumTexturesLump по смещению 0 для данной текстуры записывается -1.

А теперь попытаемся объяснить, зачем используется такой подход. Как уже говорилось выше, тексту ры в DOOM’e выводятся вертикально, столбец за столбцом. Каждый раз при выводе очередного столбца программа проверяет таблицу NumTexturesLump по текущей координате X. Если значение больше О, то теку щий столбец состоит из одной текстуры и данное значение указывает на номер данной текстуры в каталоге файла ресурсов. В этом случае текстура просто загружается с диска. Если же значение меньше 0, то это говорит о том, что данный столбец состоит из нескольких текстур. Прн этом вызывается функция, которая во временной памяти создает образ данного столбца, состоящего из нескольких текстур, путем загрузки всех текстур, определенных в txdefMore по текущей координате X. После обработки текущего столбца временная память за ненадобностью освобождается.

- OffsetTextureColumn - двумерный массив на тип short. Память для него выделяется:

Как и в предыдущем случае, OffsetTextureColumn - это массив из N указателей на тип short. Один из таких указателей указывает на смещения относительно начала текстуры, указывающие на начало графических данных для конкретного столбца. Эта таблица используется для быстрой установки указателя на адрес графических данных при выводе текстуры. Например, если мы хотим вывести текстуру начиная с координат X и Y, то адрес данной текстуры будет рассчитываться как:

Новости
Sony PlayStation 5 стала последней игровой консолью в мире
Игровые консоли присутствуют в мире уже более 30 лет, за которые в них успели поиграть целые поколения игроков, то есть отцы, дети и их внуки.
Авторы новой Call of Duty объявили даты проведения бета-теста
Студия Treyarch официально озвучила даты проведения бета-тестов мультиплеерного режима ожидаемого военного шутера Call of Duty: Black Ops 4. Разработчики уже раскрыли немало особенностей соревновательной части игры, но многое остаётся за завесой тайны.