Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Tutoriales sobre programacion de engines (en castellano)

Iniciado por Javier, 01 de Enero de 1970, 01:00:00 AM

« anterior - próximo »

Emotion

                                Buenas..,

Es cierto que, en el fondo, da igual usar OpenGL o DirectX (yo he usado los dos), pero en OpenGL hay menos codigo al final.

En cuanto a las extensiones, pues si, te pegas el trabajo padre de crear un .h con todas las extensiones, pero despues solo tienes que añadir las nuevas extensiones y ya esta funcionando.

Con respecto a lo de los poligonos, da igual que una aceleradora te de, pongamos 100 millones de poligonos, pues esta es la cantidad de poligonos que la aceleradora puede gestionar en TRANSFORMACIONES BASICAS (escalado, rotacion y traslacion). el resto va de tu parte, asi que pon que al final tienes en bruto unos 20 millones de poligonos por segundo, que te da mas de 300000 poligonos por frame. De todas formas, con 10000 o 15000 tienes de sobra para representar lo que quieras... para que usar un mesh de 10000 poligonos si con uno de 1000 tienes resolucion de sobra? ademas, para utilizar mas poligonos, siempre se puede recurrir a la tecnica del LOD para los modelos (MRM/VIPM u otros esquemas).

Y con lo de los shaders, pues es normal. De algun sitio tendra que sacar el hardware las normales, los vertices y los parametros para iluminar, vamos que no se los va a sacar de la manga...

Y mas en el proximo mensaje... :sonriendo:

Saludos.
                               
G3: Get the Power!

Emotion

                                Bueno, pues aqui voy con otro mensaje mas...

Mirad, este es para desmitificar la figura de John Carmack, ya que he escuchado por ahi lo de su plan de programacion, y esto es lo que tengo que decir al respecto...

Afortunadamente, en este foro no he visto esa clase de comportamiento, pero...

Señore, un poco mas de originalidad. Carmack NO es un dios, NI SIQUIERA un guru de la programacion, como la comunidad le pinta, tan solo es INGENIERO, nada mas simple. Sus unicos logros fueron 2:

1. El motor 2D que utiliza DOOM (ya que DOOM no es un juego 3D, ya que comba la Y para tapar ciertos efectos visuales)

2. La tecnica de la SURFACE CACHE en QUAKE 1.

3. La tecnica de los LIGHTMAPS.

Aparte de eso, no ha hecho nada mas. Si os fijais bien, cada vez que Carmack hace una implementacion de algo, la gente lo sigue como si fueran sus fieles. ERROR.

Y digo ERROR por decirlo de alguna manera, ya que: que casualidad que carmack utiliza una consola en Quake y ahora todos los engines 3D, como no..., tienen que llevar consola... Pues bueno, el que quiera....

Ahora llega otra vez el señor Carmack y utiliza lightmaps para simular iluminacion compleja o mas realista. y TACHAN!!! todo el mundo utilizando los lightmaps (oh... como no lo hemos descubierto antes... que gran invento...)... y otras cosas por el estilo...

MIRAD... El mismo Carmack dijo una vez, y muy acertadamente, que el no es ningun genio de la programacion, y que la gente se preguntaba como era capaz de hacer esos efectos especiales en sus juegos... Pues a eso el dijo la verdad: LEE ARTICULOS DEL SIGGRAPH, es decir, tecnicas que se utilizan en principio en infografia, y mas tarde se adaptan a los juegos.

NADA MAS. como veis, no es un dios ni mucho menos es COMO NOSOTROS. ni mas, ni menos :sonriendo:

Moraleja: Cualquiera puede implementar motores tan buenos como el de Carmack y cualquiera puede INCLUSO superarle.

Saludos.
                               
G3: Get the Power!

Drácula

                                Estoy deacuerdo con Julio. Sin embargo, el hecho de que Carmack haya sido el primero en utilizar estas técnicas en juegos no le desmerece en absoluto:no es fácil darse cuenta de lo que se puede utilizar!

Pero sí pienso que si Quake usa BSP, NO todo tiene que ser BSP. Y de hecho la gente debería buscar otras salidas a los problemas de partición del espacio. A veces por seguir a alguien nos limitamos a nosotros mismos.

Respecto a lo de los Shaders, me parece que no me has entendido. Digo que limita mucho saber de antemano qué luces afectan a que objetos. Ya expliqué en el foro hace poco este razonamiento. Si tienes un shader que calcula 4 luces, y el programa en ese momento sólo utiliza 2, porque las otras están muy lejos y no afectan, NO puedes indicárselo al shader, por lo que éste calcula las 4 luces en lugar de las 2 que sólo sería necesario calcular. Aparte de esto la complejidad de las mil y una variaciones que se pueden hacer con las luces y los efectos en los shaders:¡es imposible controlarlo todo! Y te remito al artículo de tomshardware. Allí se explica muy bien.                                
ltimas mejoras en Merlín: Multitextura.Control y generación automática de LOD.Importa ASE y X. Frustum Clipping por BB.Render añadido de wireframe y del BB.Animaciones por interpolación.Animaciones de textura...
Actualmente:Octree y jerarquías

BeRSeRKeR

                                Emotion

Efectivamente debemos pensar por nosotros mismos (al fin y al cabo así es como se evoluciona) pero también es cierto que no es malo fijarse en el trabajo de los demás pero aún así te doy toda la razón en que lo que verdaderamente puede revolucionar el mundo del videojuego se encuentra en los papers del Siggraph o de las universidades por ejemplo...e incluso de personas anónimas!...pero aún así no podemos obviar que Carmack siempre va por delante de sus competidores y cuando saca un engine siempre hay una pequeña o gran revolución (el sistema de shaders de quake3 me parece muy bueno y lo hemos adquirido; ampliándolo eso si, para nuestro engine) y si no piensa en una cosa...qué engines han superado (en igualdad de tiempo) a los de id Software?...yo creo que ninguno...y seguramente así ocurrirá en el momento de salida de Doom3. Y es que como dijo una vez Carmack a ellos no les preocupa la competencia conocida (ej: Epic) sino ese grupo de personas que trabaja duro en el anonimato en busca de revolucionar el software de entretenimiento al igual que hizo id en sus comienzos.

Drácula

Efectivamente el tema de los vertex shaders me parece aún bastante lioso como para utilizarlo (el caso más claro es el que tu dices de las luces) de echo en nuestro engine estamos utilizando la fixed pipeline ¡y por ahora estamos muy contentos! :sonriendo:

Un saludo                                
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Drácula

                                De todas formas, me alegro que esto vuelva a estar animado.

Berserker

Si necesitas ayuda con tu motor, ya sabes. Esto también va para todo el mundo. Yo no soy de aquellos que responden a preguntas del estilo...¿Como se hace un juego? ¿Qué es DX? Sin embargo, sí me gusta responder a problemas concretos de 3D que pueda resolver.                                
ltimas mejoras en Merlín: Multitextura.Control y generación automática de LOD.Importa ASE y X. Frustum Clipping por BB.Render añadido de wireframe y del BB.Animaciones por interpolación.Animaciones de textura...
Actualmente:Octree y jerarquías

Ithaqua

                                Emotion: Sobre lo de los .h de extensiones, lee mi anterior mensaje :sonriendo:
Sobre lo de Carmack, yo soy de los que opinan que es exageradamente sobrevalorado. De hecho la gente suele contestar enseguida "J. Carmack" cuando les preguntas acerca de su programador favorito. Pero es que solo conocen a ese y a un par mas :ojo:
Por otra parte la tecnología (ojo, solo tecnología) del Unreal siempre me ha parecido mucho mas interesante que la del Quake.
Ah, y otra cosa. Carmack ha innovado en alguna cosilla más de las que tu listas. Por poner un simple ejemplo: El Carmack's reverse en el cálculo de sombras dinámicas usando shadow volumes.
Aun asi, por mucho que digas que se basa en papers del Siggraph, siempre es de los que estan en la cresta de la ola en cuando a tecnologia se refiere. Definitivamente Carmack no es un cualquiera como tu dices, pero si que es desmesurado el grado de fanatismo que genera.

Dracula: Lo de las luces de los vertex shaders se puede abstraer para generalizarlo, y sino échale un vistazo al trabajo que hicieron unos de la universidad de stanford (google: opengl shading language creo).
Una cosa es que en principio no se pueda realizar (= funcionalidad básica) y otra que con un poco de curro no se pueda conseguir :sonriendo:

Nada mas. Un saludo,


           Ithaqua.

http://ithaqua.stravaganza.org

                                         
thaqua^Stravaganza
http://ithaqua.stravaganza.org

Drácula

                                Ithaqua

He leido por encima el documento. Eso es exactamente lo que se debería hacer, sin embargo es imposible de hacer con los vertex shaders actuales. Yo ya dije que el trabajo de los vertex shaders debería hacerlo la CPU y no la GPU, y expuse que además algunas veces necesitas el valor que te ha calculado la GPU para calcular las colisiones(Animación In-Between), con lo que al final no ganas nada ya que lo tienes que calcular también por CPU.

Quizás el VertexShader 2.0 arregle por fin este problema.                                
ltimas mejoras en Merlín: Multitextura.Control y generación automática de LOD.Importa ASE y X. Frustum Clipping por BB.Render añadido de wireframe y del BB.Animaciones por interpolación.Animaciones de textura...
Actualmente:Octree y jerarquías

BeRSeRKeR

                                Drácula

Gracias por la proposición. Sin duda, si tengo alguna duda o algo que comentar aquí lo pondré...y la verdad, yo también me alegro de que el foro vuelva a ser lo de antes incluso mejor (por ahora los posts están siendo muy interesantes)

Un saludo                                
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Ithaqua

                                Drácula, sí se puede hacer. Échale un vistazo a estas librerías:
http://graphics.stanford.edu/projects/shading/
Lo único que haces es 'registrar' las luces y ya.

En todo caso, aunque no se pudiese abstraer, el añadir o quitar código de iluminación es bastante trivial. Incluso podrías currarte una tool simple para automatizar el proceso de adaptación de código.


         Saludos,

              Ithaqua.


http://ithaqua.stravaganza.org                                
thaqua^Stravaganza
http://ithaqua.stravaganza.org

deadLock

                                Creo que utilizar BSPs puede seguir siendo útil. Sin embargo cuando Carmack decidió utilizar este algoritmo para su engine3D fue principalmente porque las placas 3D no tenían Zbuffers y necesitaba ordenar los polígonos previa a su renderización.

Hoy día el BSP está en retirada, aunque eso no significa que ya no se utilice o no tenga ventajas, ya que muchos engines combinan portales con este algortimo.

                               

Drácula

                                Ithaqua, quizás no hablamos de lo mismo. Piensa que en el vertex shader hay me parece que espacio sólo para 128 instrucciones(aunque de esto no estoy seguro. Creo que lo leí en la SDK pero ahora no lo encuentro!) Por tanto, me limita mucho ya sólo este aspecto. Después tengo que compilar el vertex shader en tiempo de ejecución. Y ya sabes que según que tarjeta tengas, al final podrás usar uno u otra shader!! Y todo esto para qué:¡sólo para ganar velocidad! Es decir que complico la historia un montón, elimino un montón de tarjetas que no soportan el shader en hardware, para que se puede jugar a 80 fps en 1600x1200!! Pues yo prefiero que el juego funcione en muchas más ordenadores, con TODAS las características, pero que jueguen a 80 fps en 1024x768.

Sin embargo, esto es una opinión. Es evidente que algo falla en los Shaders cuando Microsoft saca una nueva versión en cada revisión de DX. Y en la 9 aparecerá la 2.0, con control de flujos!!                                
ltimas mejoras en Merlín: Multitextura.Control y generación automática de LOD.Importa ASE y X. Frustum Clipping por BB.Render añadido de wireframe y del BB.Animaciones por interpolación.Animaciones de textura...
Actualmente:Octree y jerarquías

Emotion

                                Para Ithaqua:

Es cierto lo que dices respecto a lo de que el siempre dio un paso por delante, pero fue suerte, como bill gates (aunque sobradamente sabido por todos, carmack se merece el lugar que hoy en dia ocupa, y bill gates no).

En cuanto a lo de las tecnicas de sombra y calculo, me remito a lo que dije anteriormente: es INGENIERO. es normal. por eso digo que no tiene merito.

Y por lo demas, y puesto que hoy en dia los juegos se elaboran con el mismo concepto de una pelicula, DA IGUAL que tu engine muestre graficos ultrafinos y realistas. Si tienes un buen guion o un buen ojo para las producciones, da igual lo bueno o malo que sea tu motor. Un ejemplo: METAL GEAR SOLID.

Metal Gear es, ha sido y seguira siendo una de las aventuras mejor hechas (por no decir la mejor, junto con los final fantasy) en la historia de los videojuegos. Y no tiene unos graficos de ensueño. Ademas, quiero que tengais en cuenta una cosa: HIDEO KOJIMA, el creador de Metal Gear, NO ES PROGRAMADOR, sino DIRECTOR ARTISTICO. Eso dice mucho de el, pues ha sido capaz de conjugar el concepto escenico y artistico con la tecnologia.

Señores, para hacer buenos graficos ya estan las APIs. Para hacer buenos juegos, hay que estar entrenado y tener lo que todo director de cine tiene: la ESENCIA.

Es todo.

Saludos.
                               
G3: Get the Power!

Kabila

                                Es cierto que se endiosan a algunos gurus de la programacion (lease Carmack) y que algunos de ellos se pegan el gran tortazo cuando elevados por fama y fortuna, deciden costruir su propia "basilica" (lease john Romero). A veces los fieles tienen poca memoria y no perdonan un alejamiento de las virtudes pregonadas. :ojo:
 Pero tambien es cierto que se ediosan a empresas españolas (lease Dinamic , Pyro). Y algunas tambien se dan el batacazo. Encambio se olvidad de pequeñas empresas que estan dando el cayo bastante mas tiempo que estas y son las que de verdad estan aguantando el software español y haciendo cantera.
Asi que resumiendo ni unos son tan buenos, ni otros tan malos y tanto los algoritmos como los demas efectos introducimos por unos y otros no son mas que un aprovechamiento del momento de saber encauzar un algoritmo en su sitio o de una manera que nadie habia pensado u ocurrido y a partir de ahi es todo muy facil. Una vez visto un tema, es facil copiarlo y decir que no es tanto como dicen. Lo complicado no es programarlo, sino ocurrirsele a uno y saber donde ponerlo...la programacion, pienso que, cualquier programador podria implementarla.
Y se acabo el rollo.



[ Este Mensaje fue editado por: Kabila el 2002-03-18 18:21 ]

[ Este Mensaje fue editado por: Kabila el 2002-03-18 18:23 ]                                

BeRSeRKeR

                                Emotion

John Carmack no es ingeniero (si con ingeniero te refieres a tener una carrera de ingeniería). El mismo lo ha repetido hasta la saciedad (no tiene ninguna carrera) en respuesta a aquellos que no paraban de preguntarle si era necesario una carrera para ser programador de juegos...o sea que todo lo que John sabe ha sido por libros, documentos...y por su propia experiencia y práctica lo cual tiene mucho más mérito aún...

Un saludo                                
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Emotion

                                Juurrrllll pues yo creia que era ingeniero. Puff... que chasco. Pero da igual... sigo con mi exposicion en pie.

Es mas importante un buen fondo para un juego que su aspecto grafico, mal que le pese a aquellos y aquellas que se gastan una pasta gansa en la ultima aceleradora del mercado y piensan que por esa razon todos los juegos tienen que tener un aspecto inmejorable. Deplorable actitud, me temo...

Saludos.
                               
G3: Get the Power!






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.