Sua imagem definitivamente não parece correta e parece que você não está computando corretamente o caminho interno dos raios de luz enquanto eles viajam através da sua malha. Pela aparência, eu diria que você está calculando a distância entre o ponto em que o raio de visão entra primeiro no cubo e onde ele atinge a parede interior, e o usa como sua distância de absorção. Isso pressupõe essencialmente que a luz sempre sai do vidro na primeira vez que atinge uma parede, o que é uma suposição ruim.
Na realidade, quando a luz entra no vidro do ar, geralmente não sai imediatamente do vidro. Isso ocorre quando a luz atinge a interface vidro / ar, um fenômeno conhecido como reflexão interna total (TIR) pode ocorrer. O TIR ocorre quando a luz viaja de um meio com um índice de refração mais alto (IOR) para um com um IOR mais baixo, que é precisamente o que acontece no caso de a luz atingir a parede interior de um objeto de vidro. Esta imagem da Wikipedia é uma boa demonstração visual de como é quando ocorre:
Em termos básicos, o que significa é que, se a luz atingir um ângulo raso, ela refletirá completamente no interior do meio. Para explicar isso, você precisa avaliar as equações de Fresneltoda vez que seu raio de luz atinge uma interface de vidro / ar (também conhecida como superfície interna da sua malha). As equações de Fresnel dirão a proporção da luz refletida para a quantidade de luz refratada, enquanto será 1 no caso de TIR. Em seguida, é possível calcular as direções adequadas da luz refletida e refratada e continuar a traçar o caminho da luz pelo meio ou fora dela. Se você assumir uma malha convexa simples com um coeficiente de dispersão uniforme, a distância a ser usada na lei de Beer será a soma de todos os comprimentos de caminho interno antes de sair do meio. Aqui está a aparência de um cubo com seus coeficientes de dispersão e o IOR de 1,526 (copo de soda), renderizado usando meu próprio traçador de caminho que é responsável por reflexões e refrações internas e externas:
Por fim, as reflexões e refrações internas são uma parte importante do que faz o vidro parecer vidro. Aproximações simples realmente não são suficientes, como você já descobriu. Fica ainda pior se você adicionar várias malhas e / ou malhas não convexas, pois você não só deve considerar as reflexões internas, mas também os raios que saem do meio e entram em um ponto diferente.