gl_PointSize, соответствующий размеру мирового пространства
Если вы хотите визуализировать геометрию самозванца (скажем, каксфера), тогда стандартная практика состоит в том, чтобы нарисовать его, используя два треугольника (скажем, пропустив одну вершину и сделав полосу треугольника с геометрическим шейдером).
Это хорошо, потому что позволяет довольно просто установить экстент рекламного щита: вы вычисляете фактические позиции в мировом пространстве напрямую.
Геометрические шейдеры могут попеременно выводить точечные примитивы, и я не вижу причины, по которой они не должны этого делать. Единственная проблема - найти способ масштабированияgl_PointSize
так что вы получите этот эффект.
Единственный прецедент, который я мог найти, былэтот вопрос (чей ответ я не уверен, правильно) иэтот вопрос (что остается без ответа).
Стоит отметить, что довольно просто правильно масштабировать точку с расстоянием (gl_PointSize = constant/length(gl_Position)
, но это не контролируемо; Вы не можете сказать, например: я хочу, чтобы эта точка выглядела как две мировые единицы.
Итак: кто-нибудь знает, как это сделать?