El efecto de demostración es un nombre para los efectos visuales en tiempo real basados en computadora que se encuentran en las demostraciones creadas por demoscene .
El objetivo principal de los efectos de demostración en las demostraciones es mostrar las habilidades del programador. Por este motivo, los programadores de demostraciones a menudo han intentado crear nuevos efectos cuya base técnica no puede ser fácilmente descifrada por otros programadores.
A veces, sobre todo en el caso de plataformas con limitaciones severas como Commodore 64 , un efecto de demostración puede hacer que la máquina de destino haga cosas que supuestamente están más allá de sus capacidades. La capacidad de superar de forma creativa las principales limitaciones técnicas es muy apreciada entre los aficionados a las demostraciones.
Las demostraciones modernas no se centran tanto en los efectos como las demostraciones de los años 1980 y 1990. Los efectos rara vez son elementos de contenido independientes y su papel en la presentación de los programadores ha disminuido, en particular en las demostraciones para PC . En la actualidad, es más probable que los programadores de demostraciones para PC demuestren sus habilidades de programación con generación de contenido procedimental o funciones de motor 3D que con efectos visuales superiores.
Existen demostraciones escritas para muchos dispositivos diferentes que varían considerablemente en sus características gráficas y capacidades de procesamiento de datos. La variabilidad en el hardware también se refleja en los tipos de efectos inventados para cada plataforma, así como en los métodos utilizados en la implementación.
La escena de las demostraciones despegó en los ordenadores domésticos como el Commodore 64 y el Amiga , que tenían chips y CPU personalizados relativamente avanzados y muy "hackeables". Antes del uso generalizado del diseño avanzado asistido por ordenador para circuitos integrados , los chips se diseñaban a mano y, por lo tanto, a menudo tenían muchas características no documentadas o no previstas. La falta de estandarización también significaba que el diseño del hardware tendía a reflejar las propias ideas y el talento creativo de los diseñadores. Por esta razón, la mayoría de los efectos de demostración de la "vieja escuela" se basaban en la explotación creativa de las características de un hardware en particular. Se puso mucho esfuerzo en la ingeniería inversa del hardware para encontrar posibilidades no documentadas que se pudieran utilizar para nuevos efectos.
Sin embargo, los IBM PC compatibles de los años 90 carecían de muchas de las características especiales típicas de los ordenadores domésticos y utilizaban en su lugar componentes estándar. Esto se compensaba con una mayor potencia informática de uso general. La posibilidad de realizar trucos avanzados de hardware también estaba limitada por la gran variabilidad del hardware de los PC. Por estos motivos, los democodificadores de PC de la era DOS prefirieron centrarse en algoritmos de renderización de software a nivel de píxel.
Los programadores de demos a menudo han buscado desafíos y respeto "transfiriendo" efectos de una plataforma a otra. Por ejemplo, durante la "época dorada" de las demos de Amiga, muchos efectos conocidos de Amiga fueron rehechos con Atari ST , Commodore 64 y PC, algunos de los cuales fueron considerados inferiores en las características clave requeridas en los efectos en cuestión. Desde mediados de los años 90, cuando el PC se había convertido en una plataforma importante, las demos para Amiga y C-64 comenzaron a presentar también "efectos de píxeles" similares a los de PC.
Los primeros programas informáticos que se asemejaban a efectos de demostración son anteriores a la escena de las demostraciones durante varias décadas. Tal vez el primer ejemplo de estos llamados trucos de visualización sea un programa llamado Bouncing Ball en la computadora Whirlwind a principios de la década de 1950. Otro famoso truco de visualización, munching squares , se creó originalmente en la PDP-1 en aproximadamente 1962.
Estos efectos eran típicos en los años 80 y principios de los 90 y se implementaron por primera vez en Commodore 64, Atari ST o Amiga. A menudo dependían del hardware personalizado del sistema o se consideraban difíciles por ello. Por ejemplo, los objetos 3D renderizados en puntos son algo complicados en sistemas sin pantallas de bytes por píxel o ancho de banda de memoria de video limitado, o sistemas con CPU lentas y/o limitadas (por ejemplo, 8 bits, sin FPU ).
Los efectos basados en la renderización por software en buffers de fotogramas de píxeles grandes eran típicos a mediados y finales de los años 90 y, por lo general, se implementaron por primera vez en PC o Falcon030. Se hicieron populares a medida que se generalizaron los sistemas con memoria de video de alta velocidad direccionable por píxeles y procesadores más rápidos (para permitir cálculos en tiempo real más exigentes).
Algunos de estos efectos se trasladaron posteriormente a máquinas de píxeles planos como Amiga , sin depender de la conversión de gráficos gruesos a planos. Por ejemplo, el grupo Sanity implementó un rotozoomer utilizando una combinación de mapas de bits planos pre-renderizados y efectos de cobre .
Los gráficos por computadora en 3D han aparecido en demostraciones desde fines de la década de 1980. Hoy en día, un motor 3D de propósito general es una parte integral de la mayoría de las demostraciones nuevas.
A finales de los años 1980 y principios de los años 1990, la rotación de objetos 3D se consideraba un efecto por derecho propio debido a la dificultad de calcularlos y renderizarlos. En particular, la mayoría de los sistemas no tenían una unidad de punto flotante. En lugar de algoritmos 3D de propósito general, los democodificadores solían utilizar trucos de propósito especial altamente optimizados para la rotación y renderización de un objeto en particular, como un cubo o una esfera . Dado que incluso dibujar puntos, líneas o polígonos rellenos era una tarea difícil en sí misma, la competencia a menudo giraba en torno a simplemente optimizar las rutinas de dibujo mientras se usaban matemáticas precalculadas.
Para un espectador ocasional, muchos efectos de demostración parecen algo que se puede lograr con un motor 3D de uso general. Sin embargo, los efectos clásicos con un aspecto 3D aparente a menudo no tienen ningún cálculo 3D en tiempo real. Por ejemplo, las tablas de consulta estáticas de pantalla a textura se pueden utilizar con objetos 3D simétricos que giran alrededor de su eje de simetría.
Antes de la llegada del hardware de aceleración 3D comercializado en masa, los democodificadores a menudo se centraban en técnicas de iluminación y sombreado en motores 3D de software, incluido el sombreado Gouraud , el sombreado Phong , el mapeo de texturas , el mapeo de relieve , el mapeo del entorno , la radiosidad e incluso el trazado de rayos en tiempo real .
Los motores 3D de propósito general rara vez se denominan "efectos", aunque las escenas renderizadas a menudo contienen algo que puede considerarse como tal.