2011-08-27 12 views
12

Primero; ¿Cómo se compilan los sombreadores OpenGL? ¿Están compilados en la CPU, o la GPU, o varía según la implementación? ¿Los diferentes proveedores tienen diferentes salidas binarias? si es así, ¿es posible compilar de forma cruzada un binario para un tipo de GPU en otra GPU? Estoy desarrollando un juego que planeo ejecutar en chips Intel GFX, tarjetas ATI y tarjetas NVidia. Preferiría enviar solo las partes binarias de los sombreadores, sin tener que compilar la fuente en las computadoras cliente. es posible? ¿Cómo funciona el proceso de compilación de sombreadores?¿Los sombreadores OpenGL están compilados en la GPU o la CPU? ¿Cómo varía la salida binaria por fabricante de la GPU?

Respuesta

11

El proceso de compilación, en general, se realiza en la CPU. Sin embargo, el resultado difiere no solo por proveedor, sino también por modelo. Como tal, los sombreadores deben recompilarse en la máquina del usuario para seguir siendo compatibles con cualquier modelo de GPU que el usuario pueda estar utilizando (incluidos los modelos de GPU que pueden no existir cuando está escribiendo su juego).

+0

Esto es ¿Cómo lo hacen la mayoría de los juegos comerciales? – IDWMaster

+2

Sí. Puede tratar de hacerlo menos obvio al ofuscar el contenido de su sombreador (por ejemplo, encriptarlo para que no aparezca en texto plano, eliminar comentarios y renombrar locales, etc.) pero al final tiene que tener ese código fuente. – bdonlan

Cuestiones relacionadas