¿Puede alguien explicar las diferencias entre Pixel Bender en Flash y Pixel Shader (HLSL) en Silverlight en términos de flexibilidad de programación y rendimiento en tiempo de ejecución?Comparativa entre Pixel Bender (en Flash) y Pixel Shaders (en Silverlight)
Respuesta
No sé realmente sobre los sombreadores de Silverlight pero puedo hablar sobre PixelBender.
Un shader pixelbender toma datos de mapa de bits y evalúa cada píxel de 32 bits (en realidad, cada fragmento de 4 flotantes) de uno en uno y realiza cálculos en él. La entrada al sombreador es una o más imágenes y parámetros opcionales y la salida es siempre una sola imagen. El cálculo ocurre en paralelo en todos los píxeles de la imagen y es 'sin estado' entre los píxeles, lo que significa que no puede almacenar valores mientras evalúa un píxel y lo usa en otro. De hecho, en términos de la evaluación de píxeles, la función está diseñada para operar en una imagen infinitamente grande y, por lo tanto, es ignorante del tamaño y la forma de la imagen.
La funcionalidad disponible para Flash Player para sombreadores es un subconjunto de todo el lenguaje pixelbender. Excluye características de lenguaje tales como funciones de biblioteca reutilizables y funciones de región.
El sombreador de doblador de píxeles se puede ejecutar en la GPU en una hebra separada de Flash Player, lo que permite esencialmente procesos con hebras en Flash. En la práctica, esto solo es útil para el crujido de números de lotes grandes dada la apatridia y la funcionalidad limitada de pixelbender. Se puede pasar un bytearray de números al sombreador disfrazado como bitmapdata y ejecutar de forma asincrónica (o sincrónica) usando un ShaderJob.
En sintaxis, tanto HLSL como PBJ son de tipo C y se basan en GLSL. Supongo que HLSL probablemente tenga un mejor rendimiento y más características dada la experiencia de Microsoft con el hardware gráfico. Sin embargo, las diferencias entre Flash y Silverlight van más allá de sus sombreadores y creo que Flash supera a Silverlight en casi todas las áreas, por lo que se reduce a qué plataforma satisface mejor las necesidades.
No sé acerca de la programabilidad, pero en cuanto al rendimiento en tiempo de ejecución, pixelbender es genial. Actualmente, Silverlight 3 no le permite hacer este procesamiento en segundo plano, pero con PixelBender, puede hacerlo. Esto es bueno porque la IU no se ve afectada tanto cuando se usan filtros computacionalmente intensos.
Este foro tiene algunos buenos pros y contras para Silverlight 3: Pros and Cons. Sé que este tema es antiguo, pero lo estoy agregando porque me pareció un poco incompleto.
- 1. C# pixel rendering rápido
- 2. ¿Qué son los sombreadores Vertex y Pixel?
- 3. Javascript Canvas formato de pixel
- 4. Pixel perfect (firebug addon) alternativa
- 5. Opengl pixel perfect 2D drawing
- 6. Pixel Shader model> 2.0 en FireMonkey
- 7. Coordenadas de textura OpenGL en Pixel Space
- 8. PyGame: sprites translúcidos con por pixel alpha
- 9. iPhone OpenGL ES 2.0 - Pixel Perfect Textures
- 10. Detección rápida de puntos láser sub-pixel
- 11. ¿Puede detectar el valor actual para -moz-device-pixel-ratio y -o-device-pixel-ratio usando JavaScript?
- 12. Convertir texto en mapa de bits (Pixel) en Android
- 13. ancho/alto de CSS pixel y porcentaje de cálculo combintaion?
- 14. Ayuda con el efecto Pixel Shader para brillo y contraste
- 15. Cómo hacer que pixel sea perfecto Line2D en - Graphics2D
- 16. Consultas de medios CSS para la densidad de píxeles: -moz-min-device-pixel-ratio vs. min - moz-device-pixel-ratio
- 17. Cómo leer el color de un Pixel de pantalla
- 18. ¿Qué significa -webkit-min-device-pixel-ratio: 2?
- 19. ¿Cómo usar correctamente -webkit-device-pixel-ratio en iOS y Android?
- 20. GLSL: ¿Cómo obtener la posición mundial de pixel x, y, z?
- 21. Webcams en HTML5 sin Flash o Silverlight
- 22. Datos de anchura de pIxel renderizados para cada carácter en la fuente de un navegador
- 23. de pantalla en vivo Android onOffsetsChanged xPixelOffset no parece devolver el pixel verdadero compensado
- 24. resultados de conversión de Dip to pixel en el mismo valor exacto
- 25. shaders Compilar en PyQt
- 26. Filtro gaussiano con OpenGL Shaders
- 27. Comportamiento de OpenGL en un motor basado en mosaico 2D: pixel "snapping" cuando está en movimiento, ¿errores de aproximación?
- 28. ¿Hay un complemento para hacer lo mismo que Pixel Perfect para Firefox o Chrome?
- 29. ¿Cuáles son las diferencias entre Flash Professional y Flash Builder?
- 30. Lectura de los valores de píxeles del Objeto Buffer Frame (FBO) utilizando Pixel Buffer Object (PBO)
Gracias por su información detallada. Sin embargo, PB en Flash NO se ejecuta en GPU. Espero que haya más comparaciones entre los dos :) –
Gracias por señalarlo. ¡mi error! –
@Andy: Aparentemente, la versión (final) 10.1 de Flash Player tendrá un rasterizador de GPU, que supongo que requeriría una implementación de GPU de Pixel Bender. –