No OpenGL, o que é renderização de "estado zero"?

10

Recentemente, em uma entrevista de emprego, mencionei que me ensinei o OpenGL moderno e a renderização com objetos de buffer de vértice porque minha universidade só ensinou o pipeline de função fixa com renderização de modo imediato na época. O entrevistador interrompeu-me brevemente para dizer que os VBOs foram efetivamente substituídos por algo chamado "renderização em estado zero" e, em seguida, deixe-me continuar.

Esqueci de perguntar mais tarde sobre o que isso significava, porque rapidamente mudamos para assuntos diferentes e o entrevistador tinha acabado o tempo no final devido a uma agenda cheia.

Mais tarde, pesquisei on-line "estado zero do OpenGL" e "renderização do estado zero" sem resultados que parecessem relevantes, principalmente apenas sobre o estado do OpenGL.

A organização em questão é fortemente baseada em pesquisas, então existe uma chance de haver uma extensão com pouco suporte atualmente ou de que a terminologia usada varie devido à sua natureza de ponta?

usm
fonte
Você tem certeza de que era "estado zero" ou poderia ter sido outra coisa com a palavra "zero"? Meu palpite é que ele estava falando de zero sobrecarga: gdcvault.com/play/1020791
Lasse
Há uma boa chance de que possa ser 'zero ouvida', ao escanear o vídeo, embora eu esteja 100% certo de que suas palavras reais foram 'estado zero'. Minha suposição era que ele estava se referindo a um único novo recurso usado para chamadas de compra, em vez de otimizar o que já estava disponível. 'Zero overhead' é a nova maneira recomendada de desenhar coisas no OpenGL?
USM
6
Poderia ter sido "atributo zero"? Prestação Zero-atributo (muitas vezes chamado de "rendering atributos") faz substituir VBOs.
Trevor Powell
5
Esta questão não é fora de tópico, questões terminológicas são absolutamente permitidas.
1
Estou certo de que o que o entrevistador estava falando era o que é mais conhecido como Renderização Bindless. Em resumo, elimina a necessidade de vincular objetos individuais a identificadores globais para alterá-los ou utilizá-los. Você deve obter melhores resultados procurando por isso.
Kevintodisco

Respostas:

9

Seu entrevistador estava falando, com suas próprias palavras, sobre API sem ligação . A nVidia fez recentemente apresentações agradáveis ​​sobre tudo isso, a que chamam acesso direto do estado ( 1 , 2 ). Isso não substitui os VBOs.


EDIT : Na verdade, vamos considerar a sugestão de Trevor Powell:

Parece que algumas pessoas definitivamente podem decidir descartar VBOs, em favor da renderização sem atributos, usando sombreadores de geometria que buscam dados ou texturas uniformes, conforme mencionado neste artigo .

Percebo como alguém poderia decidir mudar o mecanismo de uma pessoa para menos attirubte completo, mas não aceitaria essa mudança se estivesse na equipe: O motivo - se você ler esta visão geral do pipeline com cuidado - é o atributo: menos, o cache FIFO do vértice se torna inutilizável, pois é ignorado por completo. Portanto, sem atributo remove uma boa oportunidade de otimização.

É claro que isso precisa de benchmarking, mas puramente a priori, parece uma má idéia para uma solução genérica e para todos os fins.

v.oddou
fonte