Raycasting

Raycasting (principalmente ray casting em inglês ) é um termo da computação gráfica . Ele descreve técnicas para a representação rápida ( renderização ) de uma cena tridimensional , mas agora é usado principalmente no contexto de visualização de volume . A definição exata do termo varia dependendo do contexto.

Raycasting na visualização de volume

Raycasting é um método de visualização de funções escalares em um volume tridimensional que ocorre em muitas aplicações científicas . Na área médica, são exemplos: tomografia computadorizada (TC), tomografia por ressonância magnética (MRT) ou tomografia por emissão de pósitrons (PET); no domínio da simulação numérica, com um método de elementos finitos (FEM) para Dinâmica de Fluidos Computacional (CFD), em que é calculado o comportamento do fluxo de gases e líquidos. Os dados escalares obtidos aqui, por exemplo, densidade ou temperatura , podem ser visualizados usando vários métodos, incluindo raycasting. É feita uma distinção entre processos diretos e indiretos. Os métodos indiretos visualizam o volume com a ajuda de uma representação intermediária poligonal. Cubos marchando é um desses métodos indiretos. Os métodos diretos visualizam o volume sem gerar esses dados intermediários. Essas técnicas incluem raycasting e splatting . Uma outra distinção é feita entre processos orientados ao espaço da imagem (ordem da imagem) e processos orientados ao espaço do objeto (ordem do objeto).

Raycasting como um processo de visualização de volume

A ideia básica é como os dados de volume podem ser visualizados com a ajuda do raycasting. A base teórica é a equação de representação do volume, uma combinação de emissão e absorção . Raycasting resolve ( aproxima ) este problema.

Crânio visualizado a partir de um conjunto de dados de voxel usando raycasting

Processo de Raycasting

Raycasting envia um raio visual (raios primários) através do volume de cada pixel do visualizador (da imagem a ser calculada). O raio é rastreado dentro do volume e os valores de cor e opacidade são determinados em intervalos regulares nos pontos de amostragem do raio. O sombreamento para os valores de cor em todos os pontos de amostragem também é calculado. O vetor assim obtido para a linha de visão contém os valores da amostra ordenada (cor, valores de opacidade), os valores de cor correspondentes ao termo fonte e os valores de opacidade correspondentes ao coeficiente de extinção. Em uma etapa final, a composição , os valores de cor e opacidade são combinados e o pixel resultante da linha de visão é calculado no plano da imagem.

Raycasting como traçado de raio simples

Raycasting geralmente se refere a uma forma simples de traçado de raio , um processo de renderização bem conhecido. A cena tridimensional é regularmente digitalizada de acordo com as especificações especificadas, como o ponto de vista e a perspectiva do observador, de modo que uma imagem bidimensional de uma seção é criada. Em contraste com as variantes de traçado de raio estendido, a varredura de um raio termina quando o raio e o objeto se encontram, portanto, apenas um cálculo de oclusão ocorre. A cor determinada nesta interseção forma o valor da cor do pixel. Reflexões, refrações e transmissões do objeto não são levadas em consideração. Essa técnica permite uma visualização muito rápida de uma cena.

Ocasionalmente, o raycasting também é usado como sinônimo de raytracing.

Raycasting em jogos de computador

Raycasting em jogos de computador: digitalizando um mapa bidimensional com raios regulares

No desenvolvimento de jogos de computador , o termo raycasting se refere ao cálculo de uma visão pseudo-3D com base em um mapa bidimensional. Com base na distância a um objeto atingido por um "raio de visão", por um lado, a cor do objeto é exibida centralizada verticalmente e, por outro lado, a proporção do teto ou piso da coluna de pixel correspondente é calculada. Em contraste com a tecnologia de rastreamento de raio normal, apenas uma única linha da imagem é digitalizada para calcular a imagem inteira; o cálculo da oclusão, portanto, ocorre apenas em um plano e não no espaço. Este tipo de raycasting é usado, por exemplo, no jogo de computador Wolfenstein 3D .

A cor do pixel é determinada de acordo com o gráfico acima ("listra" superior) e uma área vertical é desenhada nesta cor de acordo com a distância. Todas as outras áreas são céu ou teto ou chão.

Uma vez que esta tecnologia não corresponde a um 3D real, está sujeita a várias restrições: não podem ser exibidos objetos tridimensionais, como pessoas e objetos, o piso e o teto têm sempre a mesma altura e não são possíveis inclinações.

Várias soluções alternativas foram encontradas com o objetivo de criar a impressão de tridimensionalidade. Gráficos bidimensionais, chamados de sprites , são usados ​​para quaisquer objetos que são dimensionados e inseridos na imagem calculada. Em jogos avançados como Duke Nukem 3D, eles eram selecionados de acordo com o ângulo, para que um objeto parecesse diferente de frente e de trás.

Texturas para paredes, pisos e céu foram construídas de modo a retratar estruturas tridimensionais. Céu ou teto e piso foram ajustados independentemente para seções de um mapa, de modo que escadas, passagens e similares fossem possíveis (por exemplo em Doom ). Com o Duke Nukem 3D, pisos inclinados ou claraboias ou tetos foram finalmente possíveis e o ponto de vista pode ser girado verticalmente para que se possa olhar para cima ou para baixo. No entanto, a tela está distorcida forte e não natural. Mesmo com as melhores extensões, nenhum objeto tridimensional sobreposto, como pontes, é possível. As representações do mesmo são sempre "falsas" com a ajuda de sprites ou outros truques.

Raycasting tornou-se popular com os primeiros jogos de tiro em primeira pessoa Catacomb , Wolfenstein 3D, Doom, Heretic e Duke Nukem 3D, pois requer consideravelmente menos tempo de cálculo do que o 3D real.

Relacionado ao raycasting está o algoritmo VoxelSpace introduzido com o jogo Comanche para a visualização de campos de altura . Os motores gráficos baseados nisso são geralmente chamados de motores de voxel , embora nenhum voxel seja visualizado.

Links da web

Wikilivros: mundos de jogos com raycasting  - materiais de aprendizagem e ensino

Evidência individual

  1. ^ Alan Watt, Mark Watt: Teoria e prática de técnicas avançadas de animação e renderização. Addison-Wesley, Reading 1992, ISBN 0-201-54412-1 , pp. 305-312.
  2. a b James Foley et al: Computação Gráfica: Princípios e Prática. Addison-Wesley, Reading 1995, ISBN 0-201-84840-6 , página 701.
  3. Stefan Becker: Representando mundos virtuais com tecnologia de raycasting. Em: c't 2/1996, ISSN  0724-8679 , p 246..
  4. Boris Bert Elson inclui: PC Underground. Data Becker, Düsseldorf 1995, ISBN 3-8158-1185-6 .