Pergunta

Pode alguém me aponte para um papel / algoritmo / recurso / whatever que me diz como implementar um filtro de textura minification (aplica-se quando texels são menores do que pixels) em um raytracer?

Obrigado!

Foi útil?

Solução 4

agradecer a vocês por suas respostas, mas desde que eu não encontrou qualquer techinque apropriado eu criei algo me que acabou por funcionar muito bem:

i assumir meu raio de ser um cone com um coneradius de metade de um pixel na imageplane. quando o raio atinge uma superfície, i calcular a elipse, que está projectado sobre a superfície (a elipse da intersecção do plano de cone). Em seguida, utilizando os derivados de texturecoordinate no ponto de intersecção, i projectar este elipse em texturespace. agora eu sei que parte das mentiras textura sob minha pixels e pode subamostra desta área

Eu também uso RipMaps para melhorar a qualidade - e eu escolhi o nível RipMap com base no tamanho da elipse em Texturespace

Outras dicas

Uma vez que você estiver usando ray tracing eu suspeito que você está procurando uma alta qualidade de filtragem que mudanças de amostragem dinamicamente com base na quantidade de "erro". Partindo desse pressuposto, eu diria dar uma olhada em "Diferenciais ray". Há um papel agradável neste aqui: http://graphics.stanford.edu/papers/trd/ e leva efeitos como refração e reflexão em conta.

A sua resposta para si mesmo parece ser a abordagem certa, mas desde que outros podem tropeçar a página que eu vou adicionar um link de recursos, conforme solicitado. Além de discutir mipmapping (ripmapping é basicamente mais avançado mipmapping), eles discutem os efeitos de reflexão e refração de derivados e seleção de nível mip.

Homan Igehy. "Ray tracing Diferenciais". 1999. Proceedings of SIGGRAPH. http://graphics.stanford.edu/papers/trd/

Ao aproximar lendo vejo que Rehno Lindeque mencionado neste documento. No início não sabia que era a referência certa, porque ele diz que as amostras método dinamicamente com base no erro da amostragem, o que é incorreto. Filtragem é feita com base no tamanho da pegada e usos do pixel apenas um raio, assim como você descreveu.

Edit: Outra referência que possa ser útil ( http: //www.cs.unc. edu / ~ awilson / class / 238 / # desafios ). Role para a seção "Derivativos de coordenadas de textura." Ele sugere mapeamento trás de derivados textura da superfície para a tela. Eu acho que isso seria incorreto para raios refletida e refratada, mas é possivelmente mais fácil de implementar e deve estar bem para raios primários.

Eu acho que você quer dizer mipmap 'ing.

Aqui está um artigo falando de usá-los.

Mas digamos inferior como escolher qual mipmap para uso, mas eles são muitas vezes misturada (o mipmap maior e menor).

Aqui está um mais um artigo sobre como o Google Earth funciona , e ele fala sobre como eles mipmapping a terra.

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