Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





[OpenGL/Direct3D] Orden de Render

Iniciado por deadLock++, 27 de Mayo de 2003, 12:51:45 AM

« anterior - próximo »

deadLock++

                                ¿Cuál sería el modo mas eficiente de realizar un rendering de los objetos de un juego?

¿Agrupado por texturas de modo de minimizar glBindTexture?

¿Por oden de alejamiento de atrás hacia adelante? (si bien esto se puede solucionar utilizando z-buffer las transparencias no se ven correctamente)

o algún otro criterio.

Desde ya muchas gracias.                                

MChiz

                                Hola!

A mi me han dicho que, hoy por hoy, lo del cambio de textura no esta tan penalizado como antes; tengo mis dudas. No cuesta nada y seguro que al hard le va mejor: ordena por material. Almenos a un nivel minimo.

Sobre lo de ordenar por Z, te puedo asegurar que si que se gana un huevazo ( dependiendo de en que lugar de la escena estes, evidentemente ). Yo he hecho mis pruebas y cuando el ZBuffer fallaba casi a pantalla completa ( es decir, todo lo cercano tapa a todo lo lejano ) he llegado a ganar muchisimos frames ( hablo de la orden de 50 para arriba ). Esto si que te lo recomiendo de verdad. No hace falta que lo ordenes perfectamente todo por Zs. Con algo heuristico sobra.

Otra cosa que acelera mucho es estripificar la malla. Por supuesto, tambien indexarla :) Mientras menos envies por el BUS, mejor.

Tambien esta realmente bien calcular las oclusiones ( si es un motor de interiores, claro esta ). Aqui es donde realmente subes el numero de triangulos que dejas libre para usar ( o lo gastas en efectazos, como quieras :) )

Si tienes una nVidia, bajarte los ultimos drivers. Yo los he bajado hoy y me he quedado literalmente flipando. Me han subido casi 150 frames... una burrada, vamos. Tengo una GeForce4 Ti4200.

Si trabajas con OpenGL, utiliza, si esta disponible, la extension de las Vertex Array Range. Vienen a ser los VertexBuffers del D3D ( los que se pueden poner en la memoria de video, claro esta ). Esto para la malla estatica, por supuesto. En teoria ( yo no lo he implementado, pero si he visto demos ) se ganan muchisimos frames con esto. Y digo MUCHISIMOS.

Si puedes asegurar que SIEMPRE vas a repintar toda la pantalla, no limpies el frameBuffer a cada vuelta de bucle. Total, si lo vas a repintar... el ZBuffer si, eh? :bb

Y ahora mismo no me acuerdo de ningun truquillo mas... Si me viene alguno a la mente, te lo dire.

Adioos!!                                

JunXCosio

                                ¿¿¿¿Tambien esta realmente bien calcular las oclusiones ( si es un motor de interiores, claro esta ) ???

Que coño son las oclusiones???  :llorando:                                
a televisión es muy educativa, cuando alguien la enciende en casa, yo me marcho a la habitación a leer un libro. Groucho Marx

deadLock++

                                Gracias MChiz por tu respuesta.

El cálculo de oclusiones, JunXCosio, consiste en determinar que polígonos se encuentran no visibles por estar tapados por otros polígonos. En interiores las paredes tapan la visión al resto de los cuartos, darse cuenta de esto y eliminar estos polígonos lo mas rápidamente posible del pipeline hace ganar tiempo en la renderización.                                

MChiz

                                De nada :)
Y, efectivamente, oclusiones es lo que bien explicas.                                

JunXCosio

                                Joer, tecnicas de este tipo y donde aprenderlas donde puedo encontralas???

y si es en español ya seria la de dios... y sobre OpenGl la virgen Maria...  :D                                
a televisión es muy educativa, cuando alguien la enciende en casa, yo me marcho a la habitación a leer un libro. Groucho Marx

MChiz

                                uf, donde aprenderlas... yo lo he aprendido de haberlo visto hacer a un amigo ^_^
Hace unos meses escribi un tutorial sobre como calcular PVS de una forma general, pero como no tengo web no puedo publicarlo :b
Si alguien tiene una web o algo y lo quiere colgar...                                

ALBSIM

                                Sobre tu tut. de PVS, hoy en díapuedes encontrar espacio web gratuíto donde quieras y hacer una pág. cutre está tirado con frontpage, dreamweaver o similares, de todas formas, si me lo pasas lo puedo poner en la mía (da asco verla de lo fea, hortera y mala que es, 9 de cada 10 oftalmólogos opinan que es perjudicial para los ojos) pero así lo compartirías para la gente que quisiera bajarselo. Cuando termine los exámenes e implemente la detec. de colis. en mi motor (por llamarlo de alguna manera), también me pondré a estudiar el tema PVS, pero con OCTREES, ya he encontrado algo de inf. tuts. y código para este tema                                

MChiz

                                Lo de hacer yo una pagina web no me gusta, porque no me quiero liar ( por muy facil que sea, hay que mantenerla ).
Precisamente mi articulo trata sobre PVSs y Octrees o derivados ( Quadtrees, ... ). Te lo envio por mail. Cuando lo hayas colgado, avisame, vale? : )
Un saludote!                                

ALBSIM

                                Gracias tío, es un documento muy interesante, me va a servir de mucha ayuda. Para todo aquel que lo quiera ontener ahí va: http://be.sierra.eresmas.net/descargas/PVS.doc. A Carlos, como puedes comprobar, eso de mantener la web no es lo mío, creo que tienes razón, en vez de colgar en internet my web, creo que es mejor no poner nada y al menos no hago el ridículo, algún día de estos me pondré ha hacer una página decente de la que no me avergüence. Perdona por poner tu documento en la Web mas hortera de todo internet, creo que tu documento merece estar en algún sitio mejor, pregunta a los de stratos si quieren colgarlo en su zona de tutoriales.                                

MChiz

                                Buenaaas:

Lo primerisimo de todo, gracias por colgar el articulo, por leertelo y por que te haya gustado : ) Me alegro mucho, en serio! Espero que te sea de ayuda.
Y no se... desde que me has dicho lo de hacerme una web... es que es un coñazo mantenerla, pero me ha entrado el gusanillo de explicar tecnicas ( no por ello innovadoras ) para que la gente tenga lo que yo no tuve: tutoriales en castellano. Porque, aunque sepas ingles, nada mejor que la lengua materna. Pero para ello me gustaria pedir opinion a la gente del articulo del PVS, porque si no valgo para ello, mejor no lo hago :bb
Sobre lo de pedirselo a StRAtOS: era mi idea, junto con otra gente, pero no se ha mostrado interes alguno, asi que creo que lo hare solo. Por supuesto, sera un temario mas reducido y crecera a velocidad mas lenta : ( Hare lo que pueda!!

En fin, lo dicho: Muchas gracias por ponerlo en tu web ( que a mi me ha molao :b )

Un saludote!!                                

ALBSIM

                                Gracias por mentir tanto hacerca de lo bonita que es mi web. Respecto a tu iniciativa sólo puedo decirte ánimo y adelante, (se que es un coñazo, pero no tienes porqué hacerlo todo tu sólo, es mas, podrías proponer una página donde todo el que quisiera subiera sus tutoriales y código). Además no tiene por qué ser una página cojonuda llena de efctos y soplapolladas, lo importante sería el contenido.
 Si tienes algunos tuts mas que quieras subir a internet, estoy a tu disposición, podría mejorar algo mi web para tener una página dedicada a ellos.
Sinceramente pienso que es una gran idea, ya no solo por escribir los tutoriales en castellano, sino porque creo que el tutorial de PVS/OCTREE trata un tema muy poco detallado en internet, es frecuente encontrar artículos en inglés para crear PVS a partir de BSP y portales, pero muy poco o nada hacerca de los PVS/OCTREES.                                

MChiz

                                No miento acerca de tu pagina, en serio. Me ha molao el Shin-Chan :b
Gracias por tus animos : )
Acerca de lo de las iniciativas de este estilo, solo tengo que decir que no les tengo mucha simpatia. Siempre se empieza con muchas ganas y todo eso, pero acaba no siendo nada. La gente no colabora, etc. Internet no me gusta en ese ambito.
No tengo mas articulos escritos; era una idea que me rondaba por la cabeza.
Sobre el tema de PVS/Octrees, por eso me decidi a escribirlo. Y lo bueno es que el sistema que propongo sirve tanto para Octrees, BSP, exteriores, o lo que sea, siempre y cuando se respete la estructura que propongo.
Y ya sabes, si lo implementas, dimelo : )
Adios!!                                






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.