Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Eta Para El Código Fuente Del Motor?

Iniciado por , 07 de Abril de 2006, 05:05:40 AM

« anterior - próximo »

 Algúna novedad al respecto? Se puede hacer ingeniería inversa del dll ya que no está "obfuscado" pero sería más cómodo contar con los source files directamente ...

Haddd

 A ver si podemos sacarlo con la versión que salga a finales de Abril. El problema es que cambiamos tantas cosas que no hay nada afianzado, y si sacamos el código la gente ayudará, pero luego tendremos que decirle que todo eso se ha reescrito y que no sirve...pufff

Ahora mismo he reescrito de nuevo el render pipeline, antes era orientado a mesh, ahora orientado a material...

Vicente

 Hola!

eeeh, que la IA si está liberada! No le intereso a nadie :( Aquí solo se piensa en los gráficos :(

Un saludo! :P

Vicente

zupervaca

Cita de: "Vicente"Hola!

eeeh, que la IA si está liberada! No le intereso a nadie :( Aquí solo se piensa en los gráficos :(

Un saludo! :P

Vicente
Yo si le heche un vistazo ;)  


 
Cita de: "Haddd"Ahora mismo he reescrito de nuevo el render pipeline, antes era orientado a mesh, ahora orientado a material...
Pregunta de curiosidad teórica: ¿qué ventajas trae renderizar por material en vez de por meshes?

Haddd

 pues que hay muchos menos cambios de shaders. Como cada material es un shader, es más óptimo renderizar así que renderizar por mesh, e ir cambiando de material cada vez.

zupervaca

 Lo habia indicado hace tiempo en otro hilo, realizar cambios de estados en el render y en los shaders de direct3d es lentisimo, la mejor solucion es renderizar por material como dice haddd y haciendo un administrador de estados para el render y los shaders, puedes llegar a ganar mas de 1000 fps (por lo menos en mi tarjeta grafica), puedes probar todo esto en un ejemplo del sdk de direct3d, se llama "SateManager".

PD: Como puntilla decir que opengl para esto es muchisimo mejor ya que realizar cambios de estados en opengl no baja tanto los fps, en mi humilde opinion esto es debido a que las llamadas a una libreria son menos pesadas que a objetos COM, ¿alguien sabe si es por otro motivo tal vez? saber la causa del problema puede ayudar a dar mejores soluciones ;)

Haddd

 bueno, zuper. Te diré que he probado poniendo y quitando el StateManager y me va más rápido a veces sin el StateManager...Supongo que será cosas de MDX, pq yo depuro y voy viendo como llama a las funciones del effect y es todo correcto, pero se ve que por alguna razón lo ralentiza....

zupervaca

 Me imagino que te ira sobre ~10 fps mas lento, el motivo es por que no dibuja muchos materiales distintos, si dibujara 100 materiales distintos por ejemplo, algunos de ellos tendrian los mismos valores en algunas estados y es cuando se ganaria velocidad, si tienen todos diferentes estados se pierde algo de velocidad por la comprobacion previa que se hace para saber si ha cambiado o no su valor.

Explicacion mas esquematica:
- El orden de materiales: Selecciona el material una vez y renderiza todas las mallas con lo que se gana mucha velocidad.
- El administrador de estados: Solo se usa cuando se cambia de material con lo que solo gana velocidad si los materiales tienen estados parecidos, es decir, si el material madera tiene el color 255 y el material que se va a seleccionar despues de el tiene el mismo color se ganaria velocidad ya que ese estado no se cambiaria, si es diferente se pierde algo de velocidad con este administrador ya que hemos hecho una comprobacion previa para saber si ha cambiado o no (osea un if). Otra ventaja del administrador de estados es que al tener memorizados los estados en un array o variables sueltas nada mas que se pierde el device podemos restaurar los estados previos automaticamente y con el mismo codigo siempre.

A mi me gusta mucho usar los dos sistemas ya que cuando se tienen escenas muy complejas puedes llegar a ganar muchos fps.

Haddd


 Gracias por las explicaciones.

Por cierto: cuando el código esté disponible prometo que me registro al foro ...  :D  

Vicente

 Con lo majos que somos en el foro, deberías registrate antes :P

Un saludo!

Vicente


Haddd

 Pues ahora hay mucho más código por la IA de Vicente... :P

Pero bueno, yo he documentado un montón. Espero que pronto podamos sacarlo...






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.