[FEATURE] Support 10-bit (HDR) surfaces throughout the rendering process

Abierto
#1,024 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 5 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
45/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
cpp

Línea de trabajo

Start by tracing the frame render function and the creation of projectM's internal render-target textures. Read how the application-provided output framebuffer is handled, then examine the framebuffer attachment color-size queries for desktop and GLES paths. Done means internal textures follow the provided output format and support 10-bit/HDR rendering throughout the process.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement

Currently, projectM internally uses RGB(A)8 pixel formats throughout the rendering process. Since more and more people have screen capable of displaying higher per-channel color resolutions.

While presets aren't really aware of this, it's not necessary as almost all color calculations in presets are done as floating-point values, especially in shaders. Outputting the shader results onto a 10-bit texture will automatically give smoother color gradients, making presets look better, having a higher brightness range on screens supporting it.

Render target textures created by projectM internally should ideally follow the texture format provided in the application-provided output texture/framebuffer passed to the frame render function. This is for example possible by quering the color depth of the target framebuffer attachment via glGetFramebufferAttachmentParameter() (or glGetFramebufferAttachmentParameteriv() when using GLES) and the GL_FRAMEBUFFER_ATTACHMENT_<color>_SIZE query args.

Lenguaje dominante
C++
Estrellas
4.6k
Forks
498
Merge medio
3 d 23 h
PR fusionados (30 d)
1

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de projectM-visualizer/projectm

Todos los issues de projectM-visualizer/projectm

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.