Мне нужно установить цвет по типу байтов или целому числу, а не поплавковым значениям. Как назначить этот тип gl_FragColor
? Разделение значения на 256 не даст мне нужную точность. Моя основная цель - узнать конкретное значение каждого бита в цветовом буфере, если я рисую линию только с определенным цветом. например, я хочу, чтобы в буфере цвета при красном значении пикселя было включено только 2 lsbits, какое значение цвета я должен передать на gl_FragColor
? Если бы у меня была возможность писать значения типа байта, я бы записал значение 3 в красный компонент СпасибоНазначение целочисленных значений для цвета в opengl es 2.0
ответ
Насколько я знаю, gl_FragColor всегда должен быть плавающей точкой. Однако, если вы знаете, что цветной буфер составляет 8 бит на канал, не должно быть трудно заставить все, что вы хотите в него. Вы можете рассмотреть
gl_FragColor = vec4(floor(number)/255.0, 0, 0, 0);
например. Более поздние версии GLSL поддерживают побитовые операции, но я сомневаюсь, что GLES2 делает.
Если вы хотите, чтобы привлечь к конкретным битам, может быть ...
glEnable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ONE);
...
gl_FragColor = vec4(pow(2.0, bitIndex)/255.0, 0, 0, 0);
Я не проверял это, но не вижу причин, почему она не может работать предполагая, что геометрия никогда не перекрывается (в этом случае бит переполнится в следующий).
Спасибо, я проверю – user893269
- 1. Неоднородные значения цвета для фрагментарного шейдера в OpenGL ES 2.0
- 2. OpenGl ES 2.0 invalid_Value
- 3. OpenGL ES 2.0 3d
- 4. OpenGL ES 2.0 Вершинная позиция для Overlay
- 5. OpenGL ES 2.0 смешивания
- 6. OpenGL ES 2.0 многопоточность
- 7. OpenGL эквивалент расширения OpenGL ES 2.0 GL_EXT_shader_framebuffer_fetch
- 8. OpenGL 2.0 ES-координаты
- 9. OpenGL ES 2.0 текстурирование
- 10. OpenGL ES 2.0 цвет вычитание
- 11. OpenGL ES 2.0 для Android - Triangle определение цвета
- 12. OpenGL ES 2.0 viewport
- 13. OpenGL ES 2.0 матрицы
- 14. OpenGL ES 2.0 Альфа
- 15. Как отключить интерполяцию цвета в opengl es 2.0?
- 16. Сглаживание в OpenGL ES 2.0?
- 17. Вращение в OpenGL ES 2.0
- 18. GLPaint в OpenGL ES 2.0
- 19. glDrawArrays аварии на благоприятных массив цвета вершин OpenGL ES 2.0
- 20. Шейдеры в OpenGL ES 2.0 для Android
- 21. Выбор цвета на Android в OpenGL ES 2.0
- 22. Передача однородного цвета в фрагмент-шейдер (openGL ES 2.0)
- 23. Управление цветовыми данными в OpenGL ES 2.0
- 24. Прозрачность dotted OpenGL ES 2.0
- 25. Изменение уровня непрозрачности в OpenGL ES 2.0
- 26. OpenGL ES 2.0 - Рисование Parallels
- 27. OpenGL es 2.0 реализация glDrawElements
- 28. OpenGL ES 2.0 Реализация glMultMatrixf
- 29. OpenGL ES 2.0 вершинное освещение
- 30. OpenGL ES 2.0 эквивалент glOrtho()?
Если вы используете glVertexAttribPointer для отправки своих данных, установите для параметра * normalized * значение true и укажите свои данные как int. – Kimi