Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





display lists

Iniciado por Lord Trancos, 01 de Enero de 1970, 01:00:00 AM

« anterior - próximo »

Lord Trancos

                                Alguien puede explicarme q son las display lists de OpenGL ?

Asias.                                
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

Ithaqua

                                Hola Lord Trancos,

Así a grandes rasgos se podría definir como un conjunto de comandos OpenGL convertidos a instrucciones de la aceleradora.
Una display list generalmente se utiliza cuando vamos a repetir gran cantidad de veces una porción crítica de código OpenGL que no va a ser alterado.
Las display lists son la forma más óptima de renderizar geometría estática, dado que se le otorga al driver una libertad muy grande para optimizar como le convenga. Cada driver generará la display list mas adecuada a la tarjeta. Una de las cosas que puede hacer por ejemplo es meter la geometría en memoria de vídeo si se utiliza mucho.

La forma de usar display lists es la siguiente:

Primero se genera un handle nuevo con glGenLists().
Cuando queramos compilar una porción de código a display list, llamamos a glNewList() pasándole el handle anterior. A continuación metemos las instrucciones (por ejemplo el render de un objeto), y cuando hayamos terminado llamamos a glEndList().
Cuando queramos ejecutar el código que hemos compilado, solamente hace falta llamar a glCallList() desde cualquier punto del programa.
Es importante luego al finalizar el programa eliminar con glDeleteLists() todas las display lists generadas.

La gran ventaja de las display lists radica en su rapidez, la desventaja en que el código que se compila no puede ser alterado, por lo que no nos servirá para dibujar geometría dinámica.
Hay también ciertas instrucciones de OpenGL que no pueden ser metidos dentro de las lists, por lo que es recomendable leer la documentación y experimentar un poco.

Espero que te haya aclarado la duda, saludos.

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

Lord Trancos

                                Claro como el agua. Mi duda ahora es saber si existe algo parecido en DirectX y que nombre tiene ese algo... :sonriendo:                                
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

Loover

                                Pues la forma optima en Direct3D sería usando dos buffer: uno de vértices y otro de esos mismo vértices procesados. Y dibujar luego el buffer de vértices procesados.                                
IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!

ProD

                                Hombre... creo que lo mejor sería crear un Vertex Buffer estático y meter todos los vertices, y luego nada más poner los renderstates necesarios y llamar a DrawPrimitive, nunca más va a volver a tocar el VB, solo llamarás a DrawPrimitive.

Un saludo.
                               
as ideas son capitales que sólo ganan intereses entre las manos del talento






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.