No Twitter, encontrei esta captura de tela de um jogo em desenvolvimento:
A imagem na parte superior parece não ter nenhuma limitação de cor. Mas as outras duas imagens na parte inferior têm uma paleta de 256 cores.
Quero obter um efeito semelhante no meu jogo (estou usando o OpenGL). Como posso fazer isso?
Respostas:
Eu sou o criador dessa imagem.
A imagem à direita é renderizada usando uma textura de pesquisa de cores. No shader GLSL final, aplico o pontilhamento, depois converto os valores RGB em números inteiros no intervalo 0 <= x <40, combine-os em um único índice e, em seguida, procure o valor de cor resultante nesta imagem:
A linha mais baixa é a paleta bruta.
A imagem à esquerda é feita puramente no sombreador através da redução da amostragem dos canais vermelho e verde em 8 valores e do canal azul em 4 valores após a aplicação do pontilhamento, resultando em RGB332. Também brinquei com 7 tons de vermelho, 9 verde e 4 azuis, resultando em apenas 252 cores, mas com uma ênfase maior no verde, ao qual o olho humano é mais sensível.
fonte
Você pode usar uma tabela de pesquisa de classificação de cores em uma etapa de pós-processamento, conforme descrito aqui e provavelmente aqui .
Depois de implementar isso, tudo o que você precisará fazer é fazer uma captura de tela, sobrepor a textura de pesquisa sobre ela e editá-la em software gráfico arbitrário até que você goste - e recuperar a textura de pesquisa modificada novamente. Isso pode ou não incluir a redução da tabela de pesquisa recuperada para um subconjunto de cores.
Ao carregar a textura de pesquisa com a limitação de cores em mente, desabilite toda a filtragem, para que não produza cores adicionais.
fonte