экранные координаты вершины с точным размером больше 1 - PullRequest
0 голосов
/ 26 июня 2018

при условии, что размер холста равен (wx, wy), точные координаты нижней и левой вершин равны (-1 + 1 / wx, -1 + 1 / wy). Но когда pointSize больше 1, мне не удалось найти формулу.

в этой скрипке, https://jsfiddle.net/3u26rpf0/14/ я рисую несколько пикселей размером = 1 с помощью следующей формулы для gl_Position:

float p1 = -1.0 + (2.0 * a_position.x + 1.0) / wx ;  
float p2 = -1.0 + (2.0 * a_position.y + 1.0) / wy ;
gl_Position=vec4(p1,p2,0.0,1.0);

a_position.x изменяется от 0 до wx-1.
a_position.y идет от 0 до wy-1.

но если вы измените значение размера в вершине (см. Ссылку на скрипку) моя формула не работает, есть некоторое смещение, чтобы поставить.

1 Ответ

0 голосов
/ 26 июня 2018

Из Спецификации OpenGL ES 2.0 3.3

Точечная растеризация создает фрагмент для каждого пикселя кадрового буфера, центр которого лежит внутри квадрата с центром в точке (xw, yw) с длиной стороны, равной размер точки

...