Если кейсы не срабатывают, то default ОБЯЗАН сработать
switch
единая область видимости для всех case
. И ты в этой области определяешь переменные.switch
прыгнет в case
, в котором видна переменная, объявленная выше этого case
?Казалось бы, всё элементарно
matrix
- это секрет, которым ты с нами не поделишься? Я просмотрел важную штуку: Python 3.8, а glib максимум 3.6 поддерживает.
Я вот просто никак не могу уложить эту идею в голове
aOffset
, именно они у тебя сейчас обозначают физическую позицию каждой капли. Посчитать 2D координату проще даже для 200к инстансов чем посчитать матрицу и выполнить с ней операцию на всех инстансах. А передается твой буфер aOffset
на GPU сравнительно так же быстро, как и та же матрица. Иными словами, матрица - это просто альтернативное решение. Неудачное альтернативное решение.glDrawArraysInstanced
.if ((result.x < -0.5 && result.y > -0.5) || (result.x > 0.5 && result.y > -0.5) || (result.x >= -0.5 && result.x <= 0.5 && result.y > 0.5))
gl_Position = result;
discard
можно применять только в пиксельном шейдере. Преждевременный return
без установки gl_Position
ведет к неопределенному поведению. gl_Position
нужно всегда определять.gl_Position = vec4( -1.0, -1.0, -1.0, 0.0 );
не портит порядок обработки вершин. Если это сделать для всего примитива, то он будет выброшен из дальнейшей обработки целиком.
Предположения, догадки или рассуждения знания не передают и задачу не решают.