На лету

Nov 05, 2019 16:48


Одна из штук, к которой мне было сложно привыкнуть в графике и в программировании, это способность чертовски быстро вычислять кучу штук на лету.



Одинаковых штук. Абсолютно. Которые можно было бы вычислить заранее один раз и потом прочитать, а не считать по 60 раз в секунду на миллионе тредов.


Но фиг там. Каждая операция чтения из памяти дополнительной информации оборачивается в десяток раз дороже, чем операция умножения. И чем больше байт инфы читаешь, тем больше эти затраты.

Сейчас работаю с упаковкой вершин, чтобы они занимали в полтора раза меньше места в памяти. Не 6 байт, а всего лишь 4.

Для этого в одно 32-битное беззнаковое целое число заносятся аж три числа дробных. Первые 11 бит отводятся под одну координату, еще 11 под вторую, ну а третья довольствуется жалкими 10 битами и точностью похуже.

Сначала запаковать, потом каждый кадр, в каждой чертовой вершине (а на экране их сотни тысяч) проводить операцию распаковки, которая состоит из жутко выглядещей последовательности умножений и сложений...

И это работает быстрее. Реально быстрее, чем раньше.

С ума сойти.

программирование, работа

Previous post Next post
Up