¿Porque no se representan circulos en los gráficos 3d de los juegos?

Un objeto circular de la vida real es plasmado en un juego por un conjunto de lineas rectas, si son una gran cantidad de lineas el resultado será mejor pero nunca mejor que una sola linea circular. Yo desconozco el mundo de la programación 3d pero es tan díficil para los programadores crear un motor/programa gráfico que plasme curvas y polígonos circulares simples, sabiendo que las figuras se rigen por las matemáticas y sus fórmulas, un simple círculo no creo que sea difícil plasmarlo en el ordenador. Un caso más difícil desde mi punto de vista sería la mezcla de colores en el programa de dibujo Painter, si empezamos sabiendo que la pintura es líquida y como tal no tiene una forma concreta y tiene una inexacta manipulación, en este programa se pueden mezclar los colores entre sí como si tuvieras en tus manos una paleta y un pincel, de una forma casi real muestra las mezclas de los colores. Y todos esos colores se obtienen por medio de las matemáticas, algoritmos y fórmulas para imitar algo real, que alguien me explique porqué siendo la geometria líneas y matemáticas no se ha creado un programa para este cometido.
Si lo piensas bien verás que cualquier circulo es una sucesion de lineas rectas..
PabloAM está baneado por "Se nos acabó la paciencia. No vuelvas"
Porque no hay compás en la programación.

Un saludo
El quake 3 arena o cualquier programa de cad,etc... hacen las curvas y todo exactas con formulas solo que luego segun la opcion de calidad lo divide en poligonos. Y aunque haya otras tecnicas nunca van a ser circulos de verdad porque las pantallas funcionan con "pixeles".
Haz lo siguiente, abre el paint y dibuja una curva, y luego vete ampliando, q ves?? pues muchos cuadraditos unidos y q son esos cuadraditos, pues lineas rectas.

Salu2
Pero es verdad que en los juegos los circulos se ve claramente que no son circulos, sino muchas rectas. Y no hablo de un numero de rectas que tiende a infinito, sino de un numero discreto.

yo tampoco lo he etendido nunca.
Porque no usan curvas de Bézier, supongo que por tema de consumo de recursos, y porque tienen origen poligonal, y cuantos más polígonos uses para redondear una curva, más potencia de proceso necesitas.

PD: Dejo este gif tan majo de la Wikipedia que ilustra como funcionan las curvas de Bézier:

Imagen
SI alguien conoce Matlab, le infito a que pinte 0.1 y vea q mierda hace :)

El tema de porqué no se utilizan funciones diferentes y se usan poligonos, es porque el procesador se lleva bien con los números enteros y tb con lo polinomios, es decir, es capaz de multiplicar, dividir, sumar y restar muy rápido, pero cuando se da el caso de funciones más complejas, pues lo que suele hacer es aproximar mediante polinomios.

Por este motivo, las esferas no son representadas de manera buena, sino con pequeños planos (con los que se lleva mejor nuestro procesador), cuando tienen q mover muchos de estos planos pues le cuesta la misma vida.

Por cierto, los cuerpos se almacenan como matrices (3D o 2D) y para girarlos por ejemplo, lo que se hace es una multiplicación por una matriz de paso que hace que al representar el objeto se vea girado. Es como imaginar un cubo de 1's y 0's los cuales indican partes dentro del cuerpo que se muestran o no.

De aquí por ejemplo, en la rotación, se produce el efecto polstergeist de los jeugos, y porque al girar no se considera el choque y por lo tanto se mete la pierna en la pared.

Un saludo
Pues en pocas palabras eso es debido a que las tarjetas gráficas trabajan con polígonos, normalmente triángulos o cuadrados. Toda superficie curva, aunque matemáticamente sea fácil de calcular, hay que pasarla a una representación por polígonos. Cuanto mayor número de polígonos elijas se aproximará más a su forma original, pero ello también se verá reflejado en el rendimiento del juego.
Saludos.
¿Donde has visto tu un circulo "perfecto"? Piensa que cuando ves una circunferencia dibujada con compas tiene millones de atomos (puntitos) que la forman, con lo cual... ni en la realidad se da el caso.
Quien ha dicho que no se puede? :P

Imagen

Imagen

Imagen

Y si, son ingame y sí son de hace un huevo de años.
no veo ningun circulo en esas imagenes, solo pixeles como castillos
maesebit escribió:Porque no usan curvas de Bézier, supongo que por tema de consumo de recursos, y porque tienen origen poligonal, y cuantos más polígonos uses para redondear una curva, más potencia de proceso necesitas.

PD: Dejo este gif tan majo de la Wikipedia que ilustra como funcionan las curvas de Bézier:

Imagen



No, maesebit, si curvas de Bezier también se usan, y superficies. Lo único es que como he dicho yo antes al final hay que reducirlo todo a polígonos (en el caso de las superficies) o rectas (en el caso de las curvas) . Existen métodos para dibujar superficies de Bezier mediante polígonos, como el de las diferencias avanzadas. [rtfm] jeje

Saludos.
hyrulen escribió:no veo ningun circulo en esas imagenes, solo pixeles como castillos


El Ecstatica precisamente se publicitaba por usar elipses en vez de polígonos, es lo que tiene la ignorancia con respecto a los juegos de PC [beer]
Scatsy escribió:
El Ecstatica precisamente se publicitaba por usar elipses en vez de polígonos, es lo que tiene la ignorancia con respecto a los juegos de PC [beer]

Pues no sé si preferiría que se hubiera evolucionado el desarrollo con elipses en vez de polígonos, queda realmente bien (recordando Alone in the Dark XD).
Mi pregunta iva referida a los juegos, ya se que en el paint o el autocad se pueden hacer circulos y que una linea es una sucesion de puntos, a lo que me refiero es que en tal o cual juego la mira telescopica del m16 es un polígono de 14 lados en vez de un cilindro y cosas por el estilo. Por las repuestas, entonces la cosa es como el hardware no se mueve con fluidez se baja la calidad de las curvas y por eso un circulo pasa a ser una figura de nueve lados.
Jacogl escribió:Mi pregunta iva referida a los juegos, ya se que en el paint o el autocad se pueden hacer circulos y que una linea es una sucesion de puntos, a lo que me refiero es que en tal o cual juego la mira telescopica del m16 es un polígono de 14 lados en vez de un cilindro y cosas por el estilo. Por las repuestas, entonces la cosa es como el hardware no se mueve con fluidez se baja la calidad de las curvas y por eso un circulo pasa a ser una figura de nueve lados.


Exacto, la computadora exclusivamente puede representar planos y rectas (por lo que te dije, al final tienes una matriz discreta, es decir, hay separación entre los puntos), cuanto más grande es la matriz mejor puedes representar, pero más cuesta almacenarla y moverla, desde un punto de vista general.
Scatsy escribió:Quien ha dicho que no se puede? :P



Y si, son ingame y sí son de hace un huevo de años.


Gran juego ecstatica, raro que ningún juego haya seguido su estela gráfica, la verdad es que quedaban cosas peculiares :P
scatsy escribió:El Ecstatica precisamente se publicitaba por usar elipses en vez de polígonos, es lo que tiene la ignorancia con respecto a los juegos de PC smile_[beer]


lástima que no creara escuela y siguieran triunfando los juegos con poligonos.... todas maneras el resultado de las elipses es[buaaj]

pd: tantas cosas hay que uno ignora...
AkiraSan escribió:Pues no sé si preferiría que se hubiera evolucionado el desarrollo con elipses en vez de polígonos, queda realmente bien (recordando Alone in the Dark XD).


El AITD no usaba elipses... usaba 3D primitivo por software con personajes con 4 cubos (es un decir)
hyrulen escribió:

lástima que no creara escuela y siguieran triunfando los juegos con poligonos.... todas maneras el resultado de las elipses es[buaaj]

pd: tantas cosas hay que uno ignora...


Pues no se que decirte, lo de las elpises solo lo veo util para formas orgánicas.
Scatsy escribió:
Pues no se que decirte, lo de las elpises solo lo veo util para formas orgánicas.


El tema de ese jeugo era una patraña :D, es decir, usaban un motor gráfico que presentaba con elipses, pero sólo como presentación, y a una resolución pequeñísima :)
Hombre, la resolución era de 320x240 si no recuerdo mal, el standard de aquella época.
De todos modos, en realidad esas cosas no eran 3D, lo que hacían era un reescalado del modelo a y volar :)
Vitet escribió:El AITD no usaba elipses... usaba 3D primitivo por software con personajes con 4 cubos (es un decir)

Por eso lo digo, porque el AITD era terrible con los cubos. Me he expresado mal.

Una evolución de elipses hoy en día sería asombroso, más que con polígonos quizás. O una mezcla de ambas tecnologías si fuese posible.
Lo pongo bien grande para que se vea bien.

Yo veo lineas bastante curvas XD. mas lineas curvas que rectas...

podrás quejarte de texturización, realismo, fondos... pero de lineas curvas...

Imagen
Hombre, ya esos bichos de gráficos se ven muy muy bien, pero necesitas un bicho procesando
Mmmmm, no sabia lo de las elipses, aunque habia otra tecnica,los voxels,que se usaron en el outcast y el deltaforce,creo recordar,que daba bastante buenos resultados (los personajes y casas si estaban hechos con poligonos).

outcast
La aceleración hardware que se usa actualmente en las tarjetas gráficas no esta pensada para nada que no sean polígonos pero ¿y que mas da?

Con gráficos así en pocos años desaparecerán completamente los "bordes puntiagudos":
Imagen
Bueno... los voxel buenos resultados.... no digo que fueran malos pero tampoco eran la panacea.
Pues en el delta force la tecnica de los voxels resultaba horrible XD.
mirad que redondito:
Imagen

si veis dientes de sierra, es por el tamaño de la imagen, que no es el original
Scatsy escribió:Bueno... los voxel buenos resultados.... no digo que fueran malos pero tampoco eran la panacea.


mejores que los de las elipses si que eran :-P

por cierto delroy, dejalo en triangulos. Los cuadrados solo los utilizaron en saturn y un par de sistemas mas hace años, y fue descartado en favor de los triangulos.

saludos.
hyrulen escribió:mirad que redondito:
Imagen



Buuuuu

Esto también es redondito...bueno, lo será dentro de un rato cuando le añadan unas cuantas casas más xD

Imagen

si veis dientes de sierra, es por el tamaño de la imagen, que no es el original


¿Pero lo importante no era la jugabilidad?

PD: De buen rollo eh.
Lee_Chaolan escribió:¿Pero lo importante no era la jugabilidad?

PD: De buen rollo eh.


siempre, por encima de todo.

tranqui, yo no soy de los que se enfandan/lloran/patalean cuando se dicen cosas asi. (y mas sabiendo de antemano que es cachondeo)
Lee_Chaolan escribió:
Buuuuu

Esto también es redondito...bueno, lo será dentro de un rato cuando le añadan unas cuantas casas más xD

Imagen



¿Pero lo importante no era la jugabilidad?

PD: De buen rollo eh.


una cosa es la jugabilidad, y otra cosa ver cosas como el necronesia. topoman 4 ever!!!!!!
hyrulen escribió:

siempre, por encima de todo.

tranqui, yo no soy de los que se enfandan/lloran/patalean cuando se dicen cosas asi. (y mas sabiendo de antemano que es cachondeo)


Si más que nada lo he puesto por el apunte de los dientes de sierra, que me ha hecho gracia xD (esa screen en la que sale Mario con más dientes que un cocodrilo es pa matar al que la cogió)

Necronesia mola, el hombre lagarto acojona más sin quererlo que muchos otros monstruos intentándolo a propósito xD
Es imposible lograr una circunferencia, porque en realidad, éstas NO EXISTEN. Son una sucesión de infinitas líneas rectas muy pequeñas. Si tuvieses una de metal, al acercarnos y acercarnos observaríamos que a escala atómica sería imposible esto. Y según las matemáticas también.

Además, en un monitor sería doblemente imposible, al mostrar la imagen con píxeles.
GXY escribió:por cierto delroy, dejalo en triangulos. Los cuadrados solo los utilizaron en saturn y un par de sistemas mas hace años, y fue descartado en favor de los triangulos.
saludos.


Sí, tienes razón, la tarjeta gráfica al final lo que tira son triángulos. A lo que me refería yo es que por ejemplo, en los métodos de representación de superficies de Bezier, lo que se acaba creando es una maya de polígonos cuadrados. Así en muchos otros casos. Trabajar con polígonos cuadrados es más cómodo en muchas ocasiones. Pero está claro que el hardware de las gráficas de lo que entienden es de triángulos.
Saludos.
GXY escribió:
mejores que los de las elipses si que eran :-P



Bueeeno vaaaale

Imagen

Ya has conseguido impresionarme XD.
Scatsy escribió:

Bueeeno vaaaale

Imagen

Ya has conseguido impresionarme XD.


Esto que esta hecho, ¿con el terragen? Madre de dios [mad]
Pues ni idea chico la he encontrado en Google.
Scatsy escribió:Pues ni idea chico la he encontrado en Google.


Pero a esa imagen añadirle movimiento es imposible.
Bueno, primero, lo que vemos en pantalla es una representación de aquello que se encuentra en 3 dimensiones, con lo que todas las ecuaciones son de superficies y lo que se representa es la proyección de éstas sobre uno o varios planos (en la pantalla normalmente se representa uno, pero también se pueden meter varios).

Cuando hablamos triángulos en realidad son planos delimitados por dos segmentos, mientras que para representar las curvas necesitaríamos el uso de superficies cuádricas, la principal sería la esfera o el elipsoide, cuya ecuación es mucho más complicada que la de un par de rectas.

Para simplificarte un poco simplemente basta ver lo siguiente:

Ec. Plano:
Ax+By+Cz+D=0

Ec. Recta:
Ax+By+Cz+D=0
Ex+Fy+Gz+H=0
(dada como intersección de 2 planos, si tenemos que ese plano genera un "volumen", tenemos que se pueden reusar las ecuaciones de las rectas para otros)

Ec. Elipsoide/Esfera
(x-x0)^2/a^2+(y-y0)^2/b^2+(z-z0)^2/c^2=1
donde x0, y0 z0 son el centro de la elipse
a, b, c son los ejes del elipsoide

Después tenemos que delimitar el recorrido de las rectas, así como del elipsoide, porque no queremos uno completo, por si se no sale algo, teniendo que introducir o curvas o rectas paramétricas dentro de estas superficies, siendo más facil en el plano debido a su forma de parametrización. Ahora, como es en tres dimensiones, tenemos que pasarla a dos dimensiones (la pantalla), con lo que tenemos que proyectar éstas ecuaciones, realizando aun más cálculos.

Si queremos que exista continuidad en los volúmenes para que se generen formas no convencionales (no me vale suponer el volumen de una vaca esferico), éstos tienen que ser más o menos tangenciales, porque si no, tendríamos ángulos cóncavos (hacia dentro) en las uniones de éstos, complicando más la cosa.

Por último, ponte a pensar que para realizar movimientos, expansiones en algunos elementos, deformaciones, etc. tenemos que cambiar uno de las superficies elipsoidales, eso conlleva a que se tendrán que cambiar las contiguas para que se mantenga la continuidad, haciendo que los cálculos se multipliquen increiblemente. Por tanto, es más facil usar unos triángulos, en los que un cambio sobre éstos se puede facilmente llevar a los contiguos al usar parte de esas mísmas ecuaciones.

Claro ésto es al nivel digamos más bajo que se puede realizar, la capa que nosotros vemos es una proyección, y las herramientas que utilizan, debido a la potencia actual de procesado para generar superficies hacen que hoy en día se utilicen sistemas parecidos a crear una estatua con barro e ir modelandola, pero al final, todo se simplificará al uso de triángulos para una mayor simplicidad en el procesado.

Y de todas maneras, con la cantidad triangulos (o polígonos) que ya se pueden usar, y los futuros, llegará el momento en el que no percibamos esos triángulos
43 respuestas