Ray Tracing with Cones: cobertura, triângulos sobrepostos e adjacentes

10

Em seu artigo clássico Ray Tracing with Cones , John Amanatides descreve uma variação do traçado clássico de raios. Ao estender o conceito de um raio por um ângulo de abertura , tornando-o um cone, os efeitos de serrilhado (incluindo aqueles originários de poucas amostras de Monte Carlo) podem ser reduzidos.

Durante a interseção triângulo-cone, é calculado um valor de cobertura escalar. Este valor representa a fração do cone que é coberta pelo triângulo. Se for menor que , significa que o triângulo não cobre totalmente o cone. Testes adicionais são necessários. Porém, sem o uso de técnicas mais avançadas, sabemos apenas quanto do cone é coberto, mas não quais partes.1

Amanatides afirma:

Como atualmente apenas o valor de cobertura fracionária é usado na mistura das contribuições dos vários objetos, as superfícies sobrepostas serão calculadas corretamente, mas as superfícies adjacentes não.

Isto não faz sentido para mim. Do meu ponto de vista, é o contrário. Vamos dar um exemplo: temos dois triângulos adjacentes , um verde e um azul, cada um dos quais cobre exatamente 50% do nosso cone. Eles estão à mesma distância do visualizador.

Triângulo verde e azul

O triângulo verde é testado primeiro. Como o valor da cobertura é 0,5, o triângulo azul é testado em seguida. Com o valor de cobertura azul de 0,5, nosso cone está totalmente coberto, então terminamos e terminamos com uma mistura verde-azul 50:50. Ótimo!

Agora imagine que matamos o triângulo azul e adicionamos um vermelho a alguma distância atrás do verde - sobreposto . Greeny nos dá um valor de cobertura de 0,5 novamente. Como não temos mais o azul para testar, olhamos mais abaixo no cone e logo encontramos o vermelho. Isso também retorna um valor de cobertura maior que 0, o que não deveria, porque está por trás do verde.

Portanto, concluo que os triângulos adjacentes funcionam bem, enquanto os triângulos sobrepostos precisariam de mais mágicas como máscaras de cobertura para estarem corretos. É o oposto do que diz Amanatides. Eu entendi mal alguma coisa ou isso é um deslize no jornal?

David Kuri
fonte

Respostas:

3

Eu implementei um traçador de raios baseado no trabalho de Amantides, mas, como havia anos atrás, minha memória do papel está um pouco enferrujada.

No entanto, ignorando esse caso específico, em geral quando se trata de trabalhar com cobertura fracionada, por exemplo, composição alfa, (consulte "A sobre B" ), meu entendimento é de que a suposição usual é que os itens que estão sendo compostos não são correlacionados.

Portanto, se A com cobertura de X% estiver no topo de B com cobertura de Y% e C em segundo plano, será assumido que se verá
X% * ​​A + (100-X%) * Y% * B + (100-X %) (100% Y) * C

Isso faz sentido? Obviamente, isso dará "vazamentos" no caso em que A e B estão fortemente correlacionados.

Eu acho que poderia ter colocado uma pequena máscara nos raios para evitar esses problemas, mas isso foi há muito tempo.

Simon F
fonte
Com essa explicação, faz totalmente sentido, obrigado! Caso você se lembre, como foi sua experiência com o rastreamento de cone em comparação com o rastreamento de raio normal? Claro que é uma aproximação, mas consegue uma aceleração considerável com qualidade aceitável?
David Kuri
Oh, Deus, isso foi há muito tempo. Na verdade, eu apenas implementei o rastreamento de cone. Se realmente tentei desligar a parte do raio, simplesmente não consigo me lembrar, mas, se tiver tempo, tentarei me lembrar dos prós e contras de seguir a rota de rastreamento de cones.
Simon F