Assuntos técnicos
Se você já fez níveis ou mapas para Half Life ou jogos com Unreal engine 1, certamente já se deparou com o problema do lightmap esverdeado. A causa é a limitação de bits nos mapas de iluminação. RGB (Vermelho Verde Azul) como conhecemos formam uma tripla de valores que vão de 0 a 255. São 8 bits por cor, 256 valores possíveis. Faça a conta e temos 256 elevados a 3 ou 24 bits por pixel. O que resulta nas milhões de cores que o olho humano consegue ver. Com tecnologias mais antigas havia uma limitação em como as cores eram armazenadas e quando as luzes eram muito brilhantes, o excesso, a luminosidade acima de certos valores, era cortada. Toda cor é um vetor com três componentes, uma por cor primária. O efeito esverdeado é causado por valores de cada componente que foram cortados de tal forma que sobrou um excesso de verde.
(Em tradução livre do inglês: Luz laranja = paredes verdes? Experiências de outro mundo com luzes coloridas | O reino da magia dos blogs) Orange light = green walls? Far out experiences with colored light | The Realm of Blog Magic (wordpress.com)
Eu escrevi isso há mais de uma década atrás. Cobre a teoria por trás dos hint brushes e oclusão nos tempos da visibilidade pré calculada. Hoje em dia deve ser obsoleto, porque os jogos atuais contêm cenas complexas e o poder computacional do hardware moderno elimina esta necessidade de pré-calcular a visibilidade. Nos motores mais modernos a visibilidade da geometria e a oclusão podem ser calculados em tempo real sem precisar colocar portais manualmente. Eu posso garantir que PVS (Conjunto de Visibilidade pré-calculada) era mais adequado para mundos fechados, como o Quake. Esta etapa de pré-processamento consumia muito tempo. Deixo aqui para fins de estudo e razões de história.