Occlusion Culling é uma das inúmeras técnicas usadas em jogos para melhorar a performance final do game.
Pois, é frustrante iniciar um jogo que você estava muito ansioso pra jogar, e ter bugs, quedas de FPS, etc.
E o desafio dos desenvolvedores é criar um mundo rico, vivo e cheio de detalhes, mas principalmente muito bem otimizado.
O que é Occlusion Culling?
Antes é preciso entender que a câmera em jogos, tem o objetivo de simular a visão do jogador.
Pois, tudo que o jogador observa em sua tela, é renderizado através do campo de visão de uma câmera ou mais câmeras.
E no mundo do jogo, temos inúmeros objetos espalhados pelo cenário.
Mas a câmera vai exibir na tela do jogador, tudo que alcançar em seu campo de visão programado.
E Occlusion Culling é uma técnica onde apontamos para engine, quais objetos podem ser renderizados pela câmera do jogo.
Pois se a câmera renderiza tudo que está em seu campo de visão, porque procesar objetos que não vemos?
E esse é o princípio dessas técnicas, tudo que a câmera do jogo não enxerga, a Engine não precisa renderizar.
Occlusion Culling: Descarte por campo de visão
Existem algumas técnicas de oclusão que juntas trazem um resultado significativo na melhora da performance do seu jogo.
E o Descarte por campo de Visão, é feito através da análise do campo de visão da câmera.
E em formato de base de piramide, calculando e renderizando todos os objetos que estão dentro dessa visão.
Pois, irá desativando a renderização de todos os outros que não estão.
E quando o jogador se movimenta, os objetos vão sendo ativados e desativados, conforme o campo de visão muda.
Occlusion Culling: Oclusão em Objetos Estáticos
Um problema nesse tipo de oclusão é que se tivermos uma parede, objetos atrás dela não deveriam ser renderizados.
Mas, acabam sendo renderizados da mesma forma, e aqui é necessário fazer uma configuração extra.
Na Unity, por exemplo, selecionamos as opções Occluder Static e Ocludee Static.
E fazendo isso em cada Objeto estático que desejamos, a Unity consegue desativar objetos que estejam atrás de paredes.
BackFace Culling
Consiste em descartar ou ignorar os polígonos que estão de costas para a câmera.
As faces que não são visíveis a partir do ponto de vista da câmera, por exemplo.
E assim o mecanismo de renderização não precisa gastar recursos para desenhar as faces poligonais traseiras.
Por exemplo, um cubo exatamente de frente para a nossa visão, Laterais e a parte de trás não seriam renderizados.
Contribution Culling
Objetos que têm uma contribuição mínima, para a cena são descartados durante o processo de renderização.
Pois, normalmente as câmeras possuem uma distância para o seu campo de visão.
E objetos fora desse alcance não são renderizados.
Por exemplo, montanhas ou construções muito longe.
E praticamente todo o mapa de um jogo mundo aberto deixa de ser renderizado aqui.
Suavização
Mas, a renderização dos objetos não podem ser interrompidas de maneira brusca.
Pois, se uma montanha some de uma vez, tira toda a imersão do jogador.
E para suavizar, os desenvolvedores reduzem a qualidade de renderização das texturas do modelo.
A medida que ele vai se distanciando nesse campo de visão, até sumir completamente, por exemplo.
E também é feito a adição de fogs, por todo o ambiente como poeira, nuvens, neblinas.
E assim suavizando naturalmente essa redução considerável na qualidade do objeto.
Por fim, usar essas técnicas de otimização trazem inúmeras melhorias no desempenho do jogo.
E reduzem a carga de processamento, taxas de quadros mais altas e uma experiência de jogo mais suave.
E assim economizar recursos valiosos, como poder de processamento da CPU e recursos gráficos da GPU.
Seja o primeiro a comentar.