
Iniciado por
Drumpi
Esa es la parte simple, pero antes, para pintar un triángulo necesitabas tener la info de tres puntos, convertirlos a coordenadas 2d, dibujar las aristas, calcular la iluminación y rellenarlo con una textura, todo a mano. Luego salieron los mtores que con darle los tres puntos y la textura ya te hacían eso sólos, incluso usando una única textura para varios polígonos.
Y hoy día existen funciones hardware que te permiten dibujar en pantalla una esfera texturizada como si fuera un comando en lugar de una función, y lo mismo que digo esferas, digo conos, cilindros y muchos poliedros básicos. Lo dicho, con una sóla instrucción (y ese HW lo ha tenido que diseñar alguien que conozca los algoritmos y sepa electrónica).
Y esto es sólo un ejemplo HW, no quiero ni imaginar lo que existirá en la capa software tanto en alto como en bajo nivel.
A lo que voy es que lo que antes se hacía escribiendo 3000 líneas de código y varias iteraciones, hoy se puede hacer con una sóla línea y sin bucles de por medio... y aun así debes valorar si te conviene o no, o si existen funciones que te ahorran trabajo, o si existe un algoritmo que puedas crear y que te haga varias cosas a la vez.
Pero a ver si explico mi idea: dices que pintar un triángulo es trivial, pero a lo mejor hay un algoritmo que, con el mismo coste computacional y el mismo HW, te permite dibujar 4 a la vez porque existe una transformada matemática que trasladada a las 6 dimensiones convierte las multiplicaciones en coma flotante en sumas y restas que se pueden paralelizar. Y lo gracioso es que me suena que existe algo así. Y a menos que seas un matemático digno de Einstein, no lo vas a ver en tu vida :P
No te creas.
En general, creas una matriz de 4x4 para transformar los puntos, otra para pasar los puntos transformados a pantalla y ya esta. Eso ha sido desde los inicios hasta ahora.
La diferencia es que con el nivel de integración HW puedes meter una burrada de circuitos para hacer un montón de operaciones, ademas la ventaja de los algoritmos gráficos es que son muy paralelizables. Solo tienes que mirar libros antiguos de algoritmos gráficos y te dicen que el Zbuffer es una forma sencilla para resolver el problema de dibujar superficies ocultas, pero que ocupa mucha memoria y por eso te recomendaban que lo implementaras scanline a scanline. Pasan los años y desde las primeras aceleradoras ya lo implementaban por hardware y no la version por scanlines, el algoritmo es el mismo (bueno desde hace años muchas implementa el zbuffer jerárquico) lo único que ha cambiado es el proceso de fabricación de chips que te permite meter mas cosas.
No es lo mismo tener diez años de experiencia, que tener un año de experiencia diez veces.
It is an undisputed truth that the Atari ST gets the best out of coders. No dedicated hardware, just the CPU and a frame buffer! Some call it Spartan, others name it Power Without The Price, and a select few say `challenge accepted'! --- by spkr from smfx
Marcadores