¿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?
Yo no hago nada especial y desde luego por soft no lo hace.
saludos
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
Osti tu que guay! :D
Una "feature" mas y sin mover un dedo! xDD
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í)?
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.
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.
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.
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)
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. :)
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.
Asias de nuevo por aclararme las cosas :lol: