Comments 12
Так и не понял, а какое сжатие то получается в итоге?
Предположим, что в сыром виде вектор занимает float3, это 12 байт если не считать выравнивание. В варианте с двумя углами — float2, то-есть 8 байт. В вашем случае 2 числа, но для каждого надо передать реальную и мнимую часть, то-есть по сути float2x2, то-есть 16 байт, или я ошибаюсь?
0
В вашем случае 2 числа, но для каждого надо передать реальную и мнимую частьНет, в предлагаемом сжатии это всего два вещественных числа, которые рассматриваются как одно комплексное число.
0
Осознал, просчитался. Тогда сжатие с коэффицентом 2:3, как и у двух градусов, но получается меньше "тяжёлых" операций для упаковки/распаковки. Хорошо бы побенчмаркать эту историю… Причём упаковку и распаковку отдельно, и желательно как на CPU, так и на GPU.
0
Тут не только о том, что три числа в два сжимаются. Тут ещё о том, что в предлагаемом варианте не зависимо от того, где расположена точка на единичной сфере, сжатие будет одинаково хорошим/плохим (до точности представления float). В варианте с углами, одни точки будут закодированы более точно, чем другие. Об этом автор говорит тут:
Если сгенерировать случайные сферические координаты и преобразовать их обратно в 3D-точки, они образуют скопления вокруг полюсов и будут довольно разреженными возле экватора. Это является следствием того, что 3D-векторы рядом с экватором будут менее точно различимы.
0
Равномерное распределение по сфере можно получить (сложно но можно) если взять интеграл от синуса. Это позволит представить положение на поверхности сферы одним числом. То есть выстраиваем все параллели с их разными длинами в одну прямую.
0
Впечатляет! Как же теперь быть школьнику, который не хочет математику, а хочет быть программистом и программировать игры? Возможно, аргумент, «я не хочу геометрию, я хочу топологию» не проканает.
0
Варианты:
1. Писать менее оптимизированные игры и требовать RTX2080 для своего тетриса
2. Писать только игровую логику, а всё низкоуровневое, типа передачи массивов в GPU, оставить готовому движку.
1. Писать менее оптимизированные игры и требовать RTX2080 для своего тетриса
2. Писать только игровую логику, а всё низкоуровневое, типа передачи массивов в GPU, оставить готовому движку.
+3
школьнику, который не хочет математику
Выбрать профессию по силам. Впрочем, такие постепенно кончаются.
+1
Взять готовый движок. Писать движок самому это вообще неблагодарная затея, потому что это отнимает большую часть времени, и на написание самой игры его уже не остается. Причем изменения уровня навыков в любую сторону никак особо этого не исправляет.
0
UFO just landed and posted this here
Sign up to leave a comment.
Топология и комплексный анализ для ничего не подозревающего разработчика игр: сжатие единичных 3D-векторов