¿No se debe evitar este enfoque o estilo de codificación?
¿Por qué?
El objetivo de los sombreadores es que usted pueda hacer lo que quiera, para expresar de forma más efectiva lo que quiere hacer y para permitir un mayor control sobre el hardware.
Nunca debe, siempre tener miedo de volver a proponer algo para una funcionalidad diferente. Las texturas no almacenan colores; almacenan datos, pueden ser de color, pero también pueden ser otras cosas. Cuanto antes deje de pensar en texturas como imágenes, mejor será como programador de gráficos.
La GPU y la API existen para ser utilizadas. Úselo como usted vea ajuste; no permitas que pienses que la API debería usarse para limitarte.
shoudn't que aprender a utilizar OpenCL y utilizar el poder de múltiples hilos de GPU para indicar directamente y pasar mi código se pretende?
Ayer, habría dicho "sí". Sin embargo, hoy fue lanzado: OpenGL compute shaders.
El hecho de que OpenGL ARB y Khronos hayan creado este tipo de sombreado y demás es una admisión tácita de que la interoperabilidad OpenCL/OpenGL no es la forma más eficiente de generar datos para propósitos de representación. Después de todo, si lo fuera, no habría necesidad de OpenGL para tener una funcionalidad de cómputo generalizada. Hubo 3 versiones de GL 4.x que no proporcionaron esto. El hecho de que esté aquí ahora es básicamente el ARB que dice: "Sí, está bien, necesitamos esto".
Si el ARB, formado por muchas personas que fabrican el hardware, piensa que la interoperabilidad CL/GL no es la forma más rápida de hacerlo, entonces es bastante claro que debe usar sombreadores de cómputo.
Por supuesto, si está tratando de hacer algo en este momento, eso no ayudará; solo NVIDIA tiene soporte de sombreador de cómputo. E incluso eso solo está en los controladores beta.Tomará muchos meses antes de que AMD obtenga soporte para ellos, y muchos más antes de que el soporte se vuelva lo suficientemente sólido y estable como para ser utilizado.
Aun así, no es necesario calcular sombreadores para generar datos. La gente ha usado transform feedback and geometry shaders to do LOD and frustum culling for instanced rendering. No tengas miedo a pensar fuera de la caja "OpenGL dibuja cosas".
+1 por explicarme qué es un mouse de computadora. –
@ChristianRau oh dios, al principio pensé que estabas bromeando, pero luego lo leí. Epic – thecoshman