En OpenGL, ¿qué es la representación de "estado cero"?


10

Recientemente, en una entrevista de trabajo, mencioné que me enseñé a mí mismo OpenGL moderno y renderizado con objetos de búfer de vértices porque mi universidad solo enseñó la canalización de funciones fijas con renderizado de modo inmediato en ese momento. El entrevistador me interrumpió brevemente para decirme que los VBO habían sido reemplazados por algo llamado "representación de estado cero" y luego me dejó continuar.

Más tarde, olvidé preguntar qué significaba eso, porque rápidamente pasamos a diferentes temas y el entrevistador se había quedado sin tiempo al final debido a una apretada agenda.

Más tarde, busqué en línea "OpenGL zero state" y "zero state rendering" sin resultados que parecieran relevantes, principalmente cosas sobre el estado de OpenGL.

La organización en cuestión está muy basada en la investigación, por lo tanto, ¿existe la posibilidad de que sea una extensión con poco apoyo actualmente o que la terminología utilizada varíe debido a su naturaleza de vanguardia?


¿Está seguro de que era "estado cero", o podría haber sido algo más con una palabra "cero"? Mi conjetura es que él estaba hablando de cero gastos generales: gdcvault.com/play/1020791
Lasse

Existe una buena posibilidad de que pueda ser "cero escuchado", al hojear el video, aunque estoy 100% seguro de que sus palabras reales fueron "estado cero". Supuse que se refería a una nueva característica única utilizada para las llamadas de extracción, en lugar de optimizar lo que ya estaba disponible. ¿Es 'cero sobrecarga' la nueva forma recomendada de dibujar cosas en OpenGL?
usm

66
¿Podría haber sido "atributo cero"? Prestación cero atributo (a menudo llamado "sin atributos de representación") hace reemplazar OISCIV.
Trevor Powell

55
Esta pregunta no está fuera de tema, las preguntas de terminología están absolutamente permitidas.

1
Estoy bastante seguro de que de lo que hablaba su entrevistador era de lo que se conoce más comúnmente como Renderizado sin enlaces. En resumen, elimina la necesidad de vincular objetos individuales a controladores globales para cambiarlos o utilizarlos. Deberías obtener mejores resultados buscando eso.
kevintodisco

Respuestas:


9

Su entrevistador estaba hablando, con sus propias palabras, sobre API sin enlaces . nVidia recientemente hizo buenas presentaciones sobre todo eso, lo que ellos llaman acceso directo al estado ( 1 , 2 ). Esto no reemplaza los VBO.


EDITAR : En realidad, consideremos la sugerencia de Trevor Powell:

Esto parece que algunas personas definitivamente podrían decidir abandonar los VBO, a favor de la representación sin atributos, utilizando sombreadores de geometría para obtener datos o texturas uniformes, como se menciona en este artículo .

Puedo ver cómo alguien podría decidir cambiar el motor a uno sin attirubte completo, pero no toleraría tal movimiento si estuviera en el equipo: la razón, si lees esta descripción general de la tubería cuidadosamente, es que con atributo menos, la memoria caché FIFO del vértice queda inutilizable ya que se omite por completo. Sin atributos, por lo tanto, elimina una buena oportunidad de optimización.

Esto necesita una evaluación comparativa, por supuesto, pero a priori, parece una mala idea para una solución genérica de uso múltiple.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.