Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: Lord Trancos 2 en 18 de Abril de 2004, 01:59:35 PM

Título: Tnl En Opengl
Publicado por: Lord Trancos 2 en 18 de Abril de 2004, 01:59:35 PM
 ¿Como se usa TnL (por HW claro..) en OpenGL? ¿Son las displays lists? ¿Es alguna extension? ¿Alguien me puede iluminar (y transformar :D) sobre este tema?
Título: Tnl En Opengl
Publicado por: ethernet en 18 de Abril de 2004, 03:36:30 PM
 Yo no hago nada especial y desde luego por soft no lo hace.

saludos
Título: Tnl En Opengl
Publicado por: TheAzazel en 18 de Abril de 2004, 04:42:07 PM
 Hola,
en OpenGL al contrario q con Direct3D no tienes que hacer nada "raro" para utilizar el TnL del chip grafico..creo q en Direct3D tienes q averiguar si lo tiene y luego si lo vas a usar para almacenar las listas de vertices en la memoria de la tarjeta para que funcione bien..pero en OpenGL va todo automatico...si la tarjeta tiene soporte TnL lo utilizara...si no...no lo hara :)
Asiq creo q todo lo q hayas hecho hasta ahora sobre OpenGL ya sta usando el TnL jeje
pos na, un saludo
Título: Tnl En Opengl
Publicado por: Lord Trancos 2 en 18 de Abril de 2004, 07:23:04 PM
 Osti tu que guay! :D
Una "feature" mas y sin mover un dedo! xDD
Título: Tnl En Opengl
Publicado por: Zeigon en 19 de Abril de 2004, 09:56:12 AM
 y yo me pregunto, sin saber nada de opengl ni direct3d, q pasa si no quieres usar el TnL, por no sobrecargar la tarjeta o por cualquier razón¿? :huh:  no puedes desacitvar esto de opengl (aunq supongo q sí)?
Título: Tnl En Opengl
Publicado por: DraKKaR en 19 de Abril de 2004, 01:18:44 PM
 No estoy nada seguro de lo que voy a decir pero... no se donde leí/me dijeron que: no hay que utilizar primitivas indexadas para aprobechar el TNL? ¿O lo de las primitivas indexadas era solo para la caché de vértices?

Zeigon: la filosofia con la que está construido OpenGL impide que el API tenga decisión sobre estas cosas. En teoria opengl te abstrae del hardware gráfico.
Título: Tnl En Opengl
Publicado por: seryu en 19 de Abril de 2004, 02:59:09 PM
 tienes qe tirar de TnL vertex caches
Citar
When rendering using the hardware transform-and-lighting (TnL) pipeline or vertex-shaders, the GPU intermittently caches transformed and lit vertices. Storing these post-transform and lighting (post-TnL) vertices avoids recomputing the same values whenever a vertex is shared between multiple triangles and thus saves time. The post-TnL cache increases rendering performance by up to 2x.

Because the post-TnL cache is limited in size, taking maximum advantage of it requires rearranging triangle rendering-order. The easiest way to rearrange triangle-order for the post-TnL cache is to use the NVTriStrip library (.LIBs and source are available for free: here).

If you are interested in exploring the performance characteristics of the post-TnL cache yourself, here are the details: The post-TnL cache is a strict First-In-First-Out buffer, and varies in size from effectively 10 (actual 16) vertices on GeForce 256, GeForce 2, and GeForce 4 MX chipsets to effectively 18 (actual 24) on GeForce 3 and GeForce 4 Ti chipsets. Non-indexed draw-calls cannot take advantage of the cache, as it is then impossible for the GPU to know which vertices are shared.
Título: Tnl En Opengl
Publicado por: BeRSeRKeR en 19 de Abril de 2004, 03:02:27 PM
 La verdad es que hace mucho tiempo que no estoy demasiado al tanto de estos temas pero creo que para depurar los vertex & pixel shader en Direct3D, tienes que activar el modo REF por lo que, he ahí la utilidad de poder intercambiar entre un modo u otro.

Saludos.
Título: Tnl En Opengl
Publicado por: Lord Trancos 2 en 19 de Abril de 2004, 07:41:58 PM
 A ver,... que me he perdido.... osea que para utilizar TnL si que tengo que hacer algo, ¿no? ¿De que extension o intrucciones he de tirar mano?  (nooo)  
Título: Tnl En Opengl
Publicado por: seryu en 20 de Abril de 2004, 01:50:30 AM
 resumiendo:

·El T&L se activa solo.
·No puedes desactivarlo.


Si te da soporte hard el API sin hacer nada, para que quieres complicarte? vamos, si quieres saber como OPTIMIZAR tu codigo para sacar provecho, oka, pensaba que querias algo asi.

Y comentar que el TnL existe desde la primera gforce, de hecho esa era su 'gran' novedad. La gama de radeon tb las tienen todas, a menos que exista algun modelo mu raro que no conozca claro.  :)  
Título: Tnl En Opengl
Publicado por: Ithaqua en 20 de Abril de 2004, 02:37:11 AM
 Cuando usas OpenGL, describes tanto la iluminación como las transformaciones:

- Iluminación: glLight, glMaterial etc
- Transformación: glRotate/Scale/Translate, glLoadMatrix etc

Cuando vas a dibujar, le envías toda la geometría a la tarjeta y es ella la que opera con toda ella para "transformarla e iluminarla" y mostrar el resultado final. Te da exactamente igual el hardware que haya debajo porque tú te limitas a describir cómo va a tener que ser transformada e iluminada, pero el proceso en cuestión no lo haces tú. Si el hardware que hay debajo soporta TnL y es compatible con el modo gráfico que tú le has pedido, se usará. Si no lo soporta mala suerte, pero la gran ventaja es que tú no tienes que preocuparte por ello a la hora de picar código.

Drakkar:

Lo que comentas de las primitivas indexadas es para que la tarjeta pueda hacer uso de la caché T&L de vértices. Si no hay índices no hay manera de distinguir entre vértices, por lo que en modos no indexbZ§t no se hace uso de ella.
Título: Tnl En Opengl
Publicado por: Lord Trancos 2 en 20 de Abril de 2004, 08:35:02 PM
 Asias de nuevo por aclararme las cosas  :lol: