Me gustaría tener dos sombreadores de píxeles; el primero haciendo una cosa, y luego el siguiente haciendo otra cosa. ¿Es esto posible, o tengo que empacar todo en el único sombreador?¿Puede tener sombreadores de varios píxeles (fragmentos) en el mismo programa?
Respuesta
Puede hacer esto, p. haciendo llamadas de función desde el punto de entrada principal a las funciones que se implementan en los diversos objetos de sombreado.
main() {
callToShaderObject1()
callToShaderObject2()
}
cada una de esas funciones callToShaderObject pueden vivir en diferentes objetos de sombreado, pero todos los objetos tienen que ser unido y ligado en el mismo programa antes de que pueda ser utilizado.
No se pueden ejecutar al mismo tiempo, pero puede usar diferentes sombreadores para diferentes geometrías, o para renderizar en múltiples pasadas usando sombreadores diferentes.
Entonces, ¿eso requeriría un programa diferente? Entonces, ¿un programa diferente para cada pase? Como en, podría tener un sombreador de vértices y fragmentos en un programa (¿qué es un pase?) Y luego tener un sombreador de vértices y fragmentos en otro programa (¿el segundo pase?)? ¿Puedo simplemente cambiar glUseProgram() cuando me apetezca? ¿Entonces esencialmente renderizo una escena dos veces ...? – Harry
Exactamente a la derecha. Al igual que una renderización de múltiples pasadas en una tubería fija, pero en lugar de cambiar la configuración de OpenGL entre pases, está cargando diferentes programas. –
- 1. Sombreadores sombreadores de píxeles con salidas múltiples en flash?
- 2. Puede tener varios $ (documento) .ready (función() {...}); secciones?
- 3. Cómo dividir un archivo CSV en varios fragmentos y leer esos fragmentos en paralelo en el código Java
- 4. ¿Cuál es la relación entre gl_Color y gl_FrontColor en sombreadores de vértices y fragmentos
- 5. Organizar sombreadores GLSL en el motor OpenGL
- 6. ¿Puede un programa generar una copia de sí mismo?
- 7. Fragmentos, con el mismo menú, en el mismo diseño causan menú duplicado
- 8. WPF Uso de varios filtros en el mismo ListCollectionView
- 9. ¿Cómo compilar el programa Go que consta de varios archivos?
- 10. GLKit's GLKBaseEffect y sombreadores personalizados
- 11. ¿Puedo tener múltiples Comandos de Comando para el mismo Comando en el mismo control?
- 12. ¿Puede tener iOS 2 objetivos diferentes con el mismo nombre de producto en Xcode 4.3.2?
- 13. ¿Puede un ListView contener fragmentos
- 14. Sombreadores en lugar de GPGPU
- 15. Tener varios SQLiteOpenhelper en una aplicación Android
- 16. Ant: copie el mismo conjunto de archivos en varios lugares
- 17. Tener dos versiones de ODP.NET (ODAC) en el mismo servidor
- 18. Evitar escribir el mismo algoritmo en varios idiomas diferentes
- 19. Mezcla cout y wcout mismo programa en
- 20. ¿Puede Log4net tener múltiples apéndices para escribir en el mismo archivo?
- 21. Varios sitios en varios proyectos en el mismo servidor de rieles
- 22. mezcla de códigos C y D en el mismo programa?
- 23. JPA: Cómo tener una relación uno a varios del mismo tipo de entidad
- 24. ¿Podemos usar varios archivos de fragmentos para el tipo de archivo dado en vim?
- 25. Cómo encontrar el píxel que está más alejado de otro en el mismo grupo de píxeles
- 26. La mejor manera de detectar NaN en sombreadores OpenGL
- 27. Atributos de entrada que pueden tener el mismo "nombre"
- 28. ¿Está bien tener múltiples formularios HTML con el mismo nombre?
- 29. Posible tener el mismo contrato, el mismo enlace, la misma dirección, pero diferentes puertos?
- 30. Tener dos sesiones diferentes en el mismo dominio
Fuera de la curiaisidad, ¿por qué harías esto, en lugar de simplemente tener todas las funciones en el sombreador de fragmentos en cuestión? ¿Esto es para que el código pueda ser compartido con otros programas de sombreado, sin necesidad de duplicación? –
@Nick: no lo he visto usar yo mismo. Me sorprendió la primera vez que leí la especificación de la idea de crear programas de sombreado a partir de objetos de sombreado; de ahí que yo sepa que usted puede hacerlo. Fue construido a partir del modelo de compilación estándar ... – Bahbar
Actualización: He visto esto en uso ahora, mientras estudiaba sombreadores modificados de MineCraft. En ese caso, fue muy útil ya que cada sombreador tiene muchas opciones que pueden activarse y desactivarse, con varios efectos que funcionan en conjunto con varios otros. En un escenario como ese, y en el que participan múltiples autores, resulta mucho más útil separar las funciones en archivos separados. –