No he estudiado tan a fondo la diferencia entre renderizar y rasterizar, pero sí como para decirte que hoy en día no es tan trivial como cuando se usaban ordenadores de 8bits ^^U
Más que nada porque, como dices hay códigos simples, pero son simples para máquinas simples. Hoy día se buscan métodos que hagan varias operaciones en un sólo ciclo de reloj, que se haga uso de la paralelización de hilos, cores y las capacidades múltiples de las GPU, teniendo en cuenta todas las alternativas posibles de HW (tipos de CPU, número de nucleos, uso de gráficas en puente (no recuerdo el nombre)...).
Lemure-siz te ha respondido mejor de lo que lo habría hecho yo.
Aunque por "analfabetos" me refiero a esa gente que, sin haber estudiado una carrera que te de competencias, o sin siquiera haber hecho nada de eso en su vida, se les da un curso de dos meses y ya se les firma un papelito que les da capacidades. Vamos, lo que se conoce vulgarmente como "intrusismo laboral", y de lo que hay más d eun aprovechado, tanto a un lado como al otro del contrato.
Por eso decía que necesitas varias carreras: en una aprendes matemáticas, en otra la física, y en otro la computación. Con esos conocimientos básicos y un coco capaz de mezclar lo aprendido puedes tener una idea general que puedas ir desglosando con los años.
Y quien dice carreras, quiero decir, por lo menos, haber estudiado el tema muy a fondo o haber adquirido herramientas mentales para trabajar en el tema :P
La programación en este tipo de cosas no es como los videojuegos, que puedes triunfar con una idea simple: hoy puedes ganar millones con un flappy bird que funciona en una atari 2600, pero usar un motor 3D de la época del Spectrum no te va a dar ni la cuarta parte de rendimiento que un motor que haga uso de aceleración gráfica.
Vamos, que hoy día existan empresas dedicadas a drivers de gráficas, otras a motores gráficos (Unreal, DirectX...), otras a la capa de herramientas de diseño (puede que aquí entre también unreal, pero me refiero más a cosas como Havok, Softdeck, CryEngine, Unity o UbiArt) y finalmente las que desarrollan el juego en sí es porque la complejidad a la hora de programar es bastante alta.
PROYECTOS REALIZADOS: FrikiMusic, Motor Scroll Tileado v3.2, Venturer2X (GP2X/WIZ), Echo, Screen Break Time
PROYECTOS EN MARCHA (algunos): Bennu GP2X: 95% (necesito ayuda) ¡Antes de Halloween!: 92% SpaceH2H: 8%
Intrusismo hay en muchos sitios y no sólo en la informática. Yo lo único que digo es que por tener un papel no demuestras más que tienes una base de algo pero nada más. Y que hay gente muy competente sin carrera que ha hecho cosas así, o a ver si te crees que todos los que trabajan en Cytek o Unity o lo que sea tienen el título
Se pueden aprender muchas cosas por tu cuenta y hay gente muy válida. Ah y hay empresas de videojuegos que usan su propio engine, por ejemplo Guerrilla Games (los del Killzone) con los que he trabajado. No usan Unreal, ni Cryengine ni nada sino uno propio hecho por gente que algunos tienen carrera y otros no xD
Dado un triángulo, sacar los pixels en pantalla donde esta es "igual" sea el cacharro que uses.
Antes se hacia calculando las pendientes de cada arista, en las tarjetas modernas o procesadores con SSE y cosas así se suele usar un algoritmo que usa la ecuación de las rectas de cada arista para saber si un punto esta dentro del triángulo o no mirando los signos, es mas paralelizable que el metido de las pendientes y la parte de setup de cada triángulo es mas simple y rápida (ahora que las multiplicaciones son rápidas).
Una vez que tienes eso ya decides como vas a rellenar los pixels, si estas en un ordenador de 8 o 16 bits pues con uno color o trama, si esta en un PC pues le metes texturas, si tienes GLSL pues le metes todo lo que quieras. Pero eso ya se sale del "rasterizador".
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
No se... en un spectrum hacer un motor 3d es complicado porque para empezar no tienes ni instrucciones para multiplicar ni dividir, y si quieres que funcione rápido tienes que usar ensamblador.
En un PC no te tienes que molestar por eso, ni por falta de memoria, ni por aplicar texturas con la corrección de perspectiva, ni ordenar polígonos porque tienes zbuffer, pero claro no vas a sacar un juego por polígonos planos, o con textura al estilo de los primeros juegos en 3D... te piden mucho mas y ahi esta lo complicado. Y el motor de físicas lo tienes que hacer realista, ademas hay que añadir sombras...
Asi que mas o menos se compensan, salvando las diferencias.
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
Lo sé, yo mismo he aprendido más por mi cuenta que en la carrera, y eso me ha sido más útil a la hora de hacer cosas, profesionalmente o no.
Pero quieras que no, la base que tengo de mi carrera es lo que me permite aprender las cosas.
Aunque también es verdad que la búsqueda de trabajo ahora es mi obsesión, y me hace ver las cosas de otra manera... en concreto que la falta de papeles que dicen que he estudiado tal o cual cosa durante X tiempo es lo que hace que no me contraten en ninguna parte
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
PROYECTOS REALIZADOS: FrikiMusic, Motor Scroll Tileado v3.2, Venturer2X (GP2X/WIZ), Echo, Screen Break Time
PROYECTOS EN MARCHA (algunos): Bennu GP2X: 95% (necesito ayuda) ¡Antes de Halloween!: 92% SpaceH2H: 8%
Esa falta de papeles se suple normalmente con experiencia. Incluso experiencia en proyectos propios en según qué casos. Lo digo porque llevo trabajando en esto como 10-11 años y yo no tengo ninguno de esos papelesNo he tenido problemas nunca para encontrar trabajo.
EDIT: Y yo no digo que la carrera no sea util o no sea una base, que lo es. Lo que digo que tampoco es imprescindible para según qué trabajos y que hay gente muy válida sin ella. Ahora, tampoco todo el mundo vale para ser autodidacta
Los papeles son imprescindibles para algunas cosas, puestos públicos, docemcia, empresas grandes que les gustan la titulutis, etc.
Yo no terminé mi carrera, de hecho el 99% de lo que sé lo aprendí por mi cuenta pero admito que lo que aprendí fue una buena base.
Igual seguramente son cosas que se podrían aprender por libre, pero es distinto y no es fácil.
Una carrera bien aprovechada te da una base mucho mejor de lo que muchos autodidactas admiten.
Un autodidacta motivado puede absorber conocimientos que muchos titulados no tendrán en su vida.
Ninguna de las dos cosas es generalizable.
'A story in a game is like a story in a porn movie. It's supposed to be there but it's not that important' -John Carmack
Ole, que grande el Johnny!![]()
![]()
Por supuesto de acuerdo con ambas. Sólo me refería a que por no tener carrera no significa que no puedas hacer ciertas cosas (no todo el mundo vale para ello tampoco claro)Ni que la carrera tampoco es la panacea y por tenerla ya directamente eres capaz de hacer el nuevo CryEngine. Porque eso no es el mundo real
Discrepo, con el ágebra de Informática y cautro cosa más ya se puede hacer un motor de raytracing sencillo si hay un poco de curiosidad, pero la universidad está llena de patanes que no saben ni que es la informática en plan "Para que necesito el cálculo, el álgebra, la estadística, el anñalisis matemático y el electromagnetismo, eso en informática sobra". Pues no señores, no sobra, si quieres picar código en plan FP igual si que sobra.
Sabiendo un poco de matemáticas y sabiendo programar se pueden hacer grandes cosas que no se pueden hacer sabiendo siempre programar.
A veces hago cosas
Marcadores