Hola a todos, alquien sabe si a través del programmable pipeline se le pueden asignar los valores de rasterizado?
Es decir, yo actualmente asigno antes de usar un shader, por fixed pipelines los diferentes estados de render. por ejemplo:
- Vertex: glEnable(GL_CULL_FACE);
- Fragment: glEnable(GL_DEPTH_TEST);
Cambiar entre instancias que tienen el mismo shader la configuración es muy costoso, y encima por fixed pipelines me voy a comer todo el ancho de banda xD de hecho es lo que me pasa al renderizar 500 instancias.
Creo que asignar esos valores solo se puede hacer con el geometry shader, pero puede que me equivoque.
Un saludo
Realmente no sé ni lo que preguntas, pero te diré algo:
pseudo-instancing -- pseudo-instancing -- pseudo-instancing -- pseudo-instancing -- pseudo-instancing -- pseudo-instancing -- pseudo-instancing -- pseudo-instancing
Y yo respondo:
Eso ya lo hago
Y te digooo:
NVX_instanced_arrays no se cual es el del ARB xD
Existe desde hace tiempo ya instancing "de verdad".
Desde el 2006 http://developer.nvidia.com/object/opengl-nvidia-extensions-gdc-2006.html (http://developer.nvidia.com/object/opengl-nvidia-extensions-gdc-2006.html)
queda pues respondida tu pregunta. No hay nada como solucionarse las cosas uno mismo
Y ahora despues de hablar en clave podeis iluminarnos traduciendolo a lenguaje terrenal?
El tema es que me interesa el instancing pero pensé que solo estaba en DX.
Realmente no entiendo lo que pregunta ni el problema que tiene, pero no debe ser muy importante ya que en vez de explicar el problema nos explica cosas a los demás.
Cita de: ethernet en 25 de Agosto de 2008, 05:44:13 PM
Realmente no entiendo lo que pregunta ni el problema que tiene, pero no debe ser muy importante ya que en vez de explicar el problema nos explica cosas a los demás.
Te he respondido pero mi pregunta no ha quedado contestada.
Cita de: tamat en 25 de Agosto de 2008, 03:38:32 PM
Y ahora despues de hablar en clave podeis iluminarnos traduciendolo a lenguaje terrenal?
El tema es que me interesa el instancing pero pensé que solo estaba en DX.
El pseudo-instancing es basicamente pasarle por coordenadas de textura la matriz de la instancia para que el shader la tenga ahí. Por qué en las coords de textura, pues porque luego no se "miran" ni se "reformatean" etc... y es un canal rápido para pasar información. Tipicas cosas del driver... tips and trics.
Por qué OpenGL no empezó directamente con la extensión de instancing... pues la tenía pero no estandarizada, y mientras lo "standard" era el pseudo-instancing, glDrawElements en OpenGL funciona muy rápido comparado con el homologo de DX. ( Y no lo digo yo, son specificaciones de nVidia... ¬¬ )
El instancing de DX funciona mucho más rápido que el pseudo-instancing de OpenGL ( está claro ). Pero, y el instancing de OGL vs instancing de DX? pues ni idea.
En el GPU Gems 2, tienes el articulo de instancing (genérico).
Mi pregunta ya no necesita respuesta, pero no tiene nada que ver con el instancing, sino con la asignacion de estados de renderizado.
Un saludo!
Ethernet, acabas de echar por tierra la idolatrada imagen que tenía de ti años de frugalidad espartana con ese horrible marquee :shit: