Pergunta

O algoritmo de oclusão é necessário em CAD e indústria de jogos. E eles são diferentes nas duas indústrias que eu penso. Minhas perguntas são:

  1. Que tipo de oclusão algoritmos são aplicados, respectivamente, nos dois indurstries?
  2. e qual é a diferença?

Eu estou trabalhando em desenvolvimento de software CAD, eo algoritmo de oclusão adotamos é - definir o identificador do objeto como sua cor (um inteiro) e depois renderizar a cena, finalmente, ler o pixel para descobrir os objetos visíveis. O desempenho não é tão bom, por isso quero obter algumas boas idéias aqui. Obrigado.


Depois de ler os anwsers, quero esclarecer que o oclusão algoritmos aqui significa "abate oclusão." - descobrir superfície ou entidades visíveis antes enviá-los para o gasoduto

Com o Google, eu encontrei um algoritmo em Gamasutra . Qualquer outra boas idéias ou descobertas? Obrigado.

Foi útil?

Solução

Ele me preso que a maioria das respostas até agora só discutir oclusão imagem de ordem. Eu não sou inteiramente certo para CAD, mas em jogos oclusão começa em um nível muito mais elevado, usando árvores BSP, outubro árvores e / ou prestação portal para determinar rapidamente os objetos que aparecem dentro do tronco de visualização.

Outras dicas

Em jogos de oclusão é feito por trás da cena usando um dos dois 3D bibliotecas: DirectX ou OpenGL. Para entrar em detalhes, oclusão é feito usando uma Z tampão . Cada ponto tem um componente Z, pontos que são os pontos mais próximos ocluir que estão mais longe.

O algoritmo oclusão geralmente é feito em hardware por um dedicado gráficos 3D processamento de chips que implementa DirectX ou OpenGL funções. Um programa de jogo usando o DirectX ou OpenGL irá desenhar objetos no espaço 3D, e tem a biblioteca OpenGL / DirectX renderizar a cena tendo em conta a projeção e oclusão.

O termo que você deve procurar é sobre escondido remoção superfície .

Realtime tornando geralmente leva vantagem de um método simples de remoção da superfície oculta: abate backface. Cada poli terá um ponto "superfície normal" que é pré-calcular a uma distância definida a partir da superfície. Ao verificar o ângulo da superfície normal com relação à câmera, você saberia que a superfície é de costas, e, portanto, não precisa ser renderizado.

Eis alguns interativo demonstrações e explicações com base em flash .

Pixel Hardware Z-buffering é de longe a técnica mais simples, no entanto, em cenas de objetos de alta densidade você ainda pode estar tentando tornar os mesmos pixels várias vezes, o que pode tornar-se um problema de desempenho em algumas situações. -. Você certamente precisa ter certeza de que você não está mapeando e texturização milhares de objetos que não são apenas visíveis

Atualmente estou pensando sobre esta questão em um dos meus projetos, eu encontrei este estimulado algumas ideias: http: // www .cs.tau.ac.il / ~ decoração / Gráficos / aDV-lâminas / short-imagem baseada em-culling.pdf

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top