Я заметил, что не могу изменить размер точек в вершинном шейдере с gl_PointSize в приложении OpenGL ES 3.0 для Android. В конце концов я узнал, что мне нужно включить GL_PROGRAM_POINT_SIZE, хотя это значение перечисления не определено в файле заголовка gl. Поэтому я закончил тем, что добавил glEnable (0x8642);gl_PointSize не работает должным образом на Nvidia Shield
Все работает отлично, но это ошибка? Или есть причина, по которой мне нужно включить это. Я знаю, что мне нужно сделать это в контексте совместимости в Windows, но я подумал, что на Android я бы работал с чистым контекстом ES 3.0. Может быть, мой контекст GL был настроен неправильно?
Спасибо за ваш комментарий! Поэтому вчера я смог протестировать свое приложение на другом устройстве (HTC M8), и я получал ошибку, которая подразумевала, что у меня не было контекста GLES 3. Поэтому я проверил свой код и сравнил его с некоторым примером кода, и оказалось, что я создаю свой контекст, не предоставляя список атрибутов, чтобы указать, что мне нужен контекст ES 3. Итак, я думал, что экран по умолчанию не соответствует контексту ES 3, но после прочтения вашего комментария имеет смысл, что Shield имеет полную реализацию OpenGL и по умолчанию это соответствует. Спасибо за помощь! – Martin
И, кстати, я проверил его снова с помощью glEnable (GL_PROGRAM_POINT_SIZE), и теперь частицы правильного размера. – Martin