Início Exemplos Capturas de ecrã Manual do utilizador Logótipo Bluesky YouTube ☰
OghmaNano Platforma symulacji wielofizycznych dla urządzeń optoelektronicznych i systemów fotonicznych DESCARREGAR Guia de início rápido

Como funciona o rastreamento de raios em sistemas óticos.

1. Introdução

OghmaNano showing 3D ray tracing through a Cooke Triplet lens
Implementação completa de rastreamento de raios em 3D no OghmaNano. Os raios são emitidos a partir de uma fonte, propagam-se através de um sistema ótico com múltiplos elementos e são registados num plano detetor.
Light bending by refraction at material interfaces
A refração altera a direção de um raio de luz quando este passa de um material para outro com diferentes índices de refração. Num sistema ótico completo, a refração repetida em várias superfícies determina a imagem final e o desempenho do sistema.

O rastreamento de raios em sistemas óticos consiste, em essência, na aplicação repetida de leis óticas geométricas em três dimensões. Um raio é definido por uma posição \(\mathbf{x}\), direção \(\mathbf{k}\), comprimento de onda \(\lambda\) e poder ótico \(P\). À medida que se propaga através de uma cena, interage com as superfícies por meio de refração, reflexão, absorção e corte.

Em cada interface, a direção do raio é determinada pela lei de Snell. Na sua forma escalar:

\[ n_1 \sin(\theta_1) = n_2 \sin(\theta_2) \]

Em simulações práticas, o rastreamento de raios é realizado em três dimensões. Isso exige uma formulação vetorial, na qual a direção incidente \(\mathbf{k}_i\), a normal da superfície \(\mathbf{n}\) e a direção transmitida \(\mathbf{k}_t\) são calculadas explicitamente. Uma forma comum é:

\[ \mathbf{k}_t = \frac{n_1}{n_2}\mathbf{k}_i + \left(\frac{n_1}{n_2}\cos\theta_i - \cos\theta_t\right)\mathbf{n} \]

onde \(\cos\theta_i = -\mathbf{k}_i \cdot \mathbf{n}\) e \(\cos\theta_t\) são obtidos a partir da lei de Snell. Esta operação é aplicada em cada interface do sistema, permitindo que os raios de luz sejam rastreados através de conjuntos de lentes, filmes e superfícies estruturadas de complexidade arbitrária (ver ?? e ??).

Além das mudanças de direção, cada interação redistribui a potência ótica entre os raios refletidos e transmitidos. Este fenómeno é regido pelas equações de Fresnel. Para luz não polarizada, a forma compacta é:

\[ R = \left|\frac{n_1 \cos\theta_i - n_2 \cos\theta_t}{n_1 \cos\theta_i + n_2 \cos\theta_t}\right|^2, \quad T = 1 - R \]

De forma mais geral, podem ser utilizados os coeficientes dependentes da polarização \(R_s, R_p\) e \(T_s, T_p\). Estes determinam como a potência ótica é distribuída em cada interface e são essenciais para prever as perdas, a transmissão e a eficiência.

2. Rastreamento de raios por força bruta, sem otimizações.

Em teoria, o rastreamento de raios é, portanto, um processo simples: propaga-se um raio, encontra-se o próximo ponto de interseção, aplicam-se a lei de Snell e as relações de Fresnel e continua-se. No entanto, ao simular sistemas óticos realistas (por exemplo, OLEDs, lentes ou a extração de luz de dispositivos), muitas vezes é necessário rastrear centenas de milhares ou milhões de raios. O custo principal não reside na física, mas no problema da pesquisa: determinar qual objeto é o primeiro a ser interceptado por um raio.

Numa cena discretizada, as superfícies são geralmente representadas como malhas triangulares. Uma implementação simples testaria cada raio em relação a todos os triângulos da cena. Para um raio \(\mathbf{r}(t) = \mathbf{o} + t\mathbf{d}\) e um triângulo definido pelos vértices \(\mathbf{v}_0, \mathbf{v}_1, \mathbf{v}_2\), a interseção pode ser expressa na forma baricêntrica:

\[ \mathbf{o} + t\mathbf{d} = \mathbf{v}_0 + u(\mathbf{v}_1 - \mathbf{v}_0) + v(\mathbf{v}_2 - \mathbf{v}_0), \quad u,v \ge 0,\; u+v \le 1 \]

Resolver a equação para \(t,u,v\) (por exemplo, através do algoritmo de Möller-Trumbore) permite determinar se o raio intersecta o triângulo. Uma pesquisa exaustiva tem uma complexidade de \(\mathcal{O}(N)\) por raio para \(N\) triângulos, o que rapidamente se torna computacionalmente inviável.

3. Rastreamento de raios mais rápido.

Bounding volume hierarchy (BVH) showing a ray intersecting bounding boxes before testing individual triangles
Uma hierarquia de volumes delimitadores (BVH) acelera o rastreamento de raios, agrupando a geometria em caixas aninhadas. Inicialmente, um raio é testado em relação a grandes caixas delimitadoras; apenas se uma caixa for atingida, o algoritmo prossegue para caixas menores e, eventualmente, testa triângulos individuais. Regiões inteiras da cena podem ser ignoradas se as suas caixas delimitadoras não forem interceptadas.

Para resolver este problema, a cena é dividida utilizando estruturas de aceleração espacial, como hierarquias de volumes delimitadores (BVH). A geometria é subdividida recursivamente em caixas delimitadoras alinhadas aos eixos (AABBs), formando uma estrutura em árvore. Cada nó contém um volume delimitador que envolve um subconjunto de triângulos. Em seguida, o rastreamento de raios prossegue de forma hierárquica: primeiro, verifica-se a interseção com a caixa delimitadora e, apenas se houver interseção, passa-se para os nós filhos.

Isto reduz a complexidade dos testes de interseção de \(\mathcal{O}(N)\) para \(\mathcal{O}(\log N)\) na prática, acelerando significativamente as simulações. Uma estrutura BVH esquemática é ilustrada em ??.

As otimizações adicionais incluem o uso de múltiplos processamentos em paralelo nos núcleos da CPU, a eliminação precoce de triângulos que se encontram atrás do raio e o processamento em lote de comprimentos de onda. No entanto, o problema principal continua a ser um problema de pesquisa: identificar de forma eficiente a primeira superfície com a qual o raio interage.

4. O que significa isto para si enquanto utilizador? (ou seja, como posso fazer com que a minha simulação seja executada mais rapidamente?)

Ao definir uma cena ótica, o desempenho é fortemente influenciado pelo número de elementos geométricos básicos. Deve-se procurar minimizar o número de triângulos, mantendo a precisão física. Por exemplo, ao importar modelos CAD, os detalhes desnecessários (como parafusos, roscas ou elementos mecânicos complexos) devem ser removidos.

Cada triângulo adicional aumenta o custo do cálculo da interseção entre raios e a geometria. Esse custo aumenta ainda mais quando se simulam múltiplas comprimentos de onda ou grandes conjuntos de raios. Portanto, ao contrário dos fluxos de trabalho CAD convencionais, a modelagem ótica eficiente exige uma geometria cuidadosamente simplificada, que inclua apenas as características relevantes do ponto de vista ótico.

Em resumo, o rastreamento de raios em sistemas óticos consiste em: a aplicação repetida da lei de Snell em 3D, a reflexão e a transmissão de Fresnel e a pesquisa eficiente na geometria da cena. Em conjunto, estes elementos constituem a base da simulação ótica baseada em princípios físicos no OghmaNano.