Se os gráficos forem renderizados para um grande ângulo de visualização (por exemplo, uma TV muito grande ou um fone de ouvido VR), o espectador não poderá realmente focalizar a imagem inteira, apenas uma parte dela. (Na verdade, esse também é o caso de telas de tamanho normal.)
Combinado com uma maneira de rastrear os olhos do espectador (que é principalmente viável em VR), você poderia explorar isso teoricamente e desviar os gráficos do foco do espectador com progressivamente menos detalhes e resolução, obtendo desempenho sem perder a qualidade percebida.
Existe alguma técnica para isso disponível ou em desenvolvimento hoje?
opengl
directx
rendering
virtual-reality
Bart van Heukelom
fonte
fonte
Respostas:
Existem exemplos de tais efeitos dos quais você está falando em muitos jogos. Primeiro, há a profundidade de campo , que faz com que o objeto à distância pareça desfocado, como se a câmera estivesse focando coisas próximas a ela, como neste exemplo. Você pode explorar mais exemplos relacionados a isso no pacote DirectX SDK - eles também contêm código de exemplo. Para o OpenGL, você os encontrará na rede se pesquisar.
A segunda coisa que você pode querer ver é o que talvez seja conhecido como Geometry MipMaping ou Progressive Malhes que, como o nome sugere, é semelhante ao mapeamento de mip de textura, mas para geometria. O número de polígonos em uma malha é reduzido à medida que o objeto se afasta da câmera. Isso ajuda a aumentar o desempenho. No D3D, existe uma função que ajudará a gerar malhas progressivas automaticamente. Aqui está:
Aqui está um exemplo disso:
EDIT: considere a seguinte imagem:
Este é o frustum de abate da câmera. A linha que passa pelo meio é o vetor LookAt. Agora, assumindo que o jogador sempre deseje focar no centro da tela, você define o ângulo x. Qualquer objeto que será posicionado em um ângulo maior que o x decidido terá uma renderização de baixa resolução e os que estiverem dentro do ângulo serão renderizados com detalhes. Assim, os objetos no centro da tela serão mais detalhados que os dos lados. Se o jogador não estiver olhando para o centro, basta ajustar a linha central na direção em que o jogador está olhando. (ou talvez gire a câmera inteira nessa direção).
fonte
Sim, renderização otimizada utiliza o rastreamento ocular para renderizar apenas o que o usuário está vendo com grande detalhe. Tudo o resto pode ser renderizado com mais detalhes.
Embora seja bastante óbvio ao olhar para uma captura de tela como essa, é declaradamente invisível para o usuário em VR.
Os fones de ouvido convencionais existentes ainda não incluem rastreamento ocular, mas existem algumas soluções pós-mercado para adicionar rastreamento ocular. Além disso, é necessária uma pequena quantidade de processamento adicional para o processo de renderização. No entanto, os benefícios são significativos. Com a renderização otimizada implementada, apenas uma pequena porcentagem de FOV precisa ser renderizada com detalhes altos, o que pode resultar em taxas de quadros dramaticamente mais altas. Os números exatos dependem da implementação.
Além disso, isso não se limita aos fones de ouvido VR. Também pode ser usado em monitores de mesa (com a adição de rastreamento ocular e com um efeito mais limitado).
fonte
Expandindo a resposta do Byte56, sim, esse tipo de coisa está sendo desenvolvido na indústria. Fixed Foveated Rendering é uma técnica empregada pela Valve em sua demo de reparo de robôs ( https://youtu.be/DdL3WC_oBO4?t=769 ) e em alguns jogos comerciais (Resident Evil VII para PSVR vem à mente). A Renderização Foveated fixa não emprega rastreamento ocular, mas isso significa que funciona bem com as versões atuais de fones de ouvido VR que atualmente não possuem nenhum tipo de recurso de rastreamento ocular. Embora, no momento, o Vive deva receber um kit de atualização de rastreamento ocular, para que você possa ver alguns títulos de AAA VR utilizando isso.
Você não encontrará muitos exemplos de códigos disponíveis relacionados a esse tipo de coisa, mas a Nvidia possui algumas extensões de hardware que são decentemente documentadas. A resolução múltipla é bastante bem explicada, mas é um recurso vinculado ao seu hardware.
fonte