Fragment shader - determine valores mínimo / máximo para toda a imagem (monocromática) e use-os para outras manipulações de pixels

Eu gostaria de normalizarmonocromático pixels da imagem dessa maneira, o valor mínimo é preto, o máximo é branco e os valores intermediários são distribuídos proporcionalmente. Atualmente, faço isso na tela em duas etapas, mas acredito que deve ser mais rápido no WebGL.

Posso imaginar manipular cores por meio do shader de fragmento, mas não consegui encontrar nenhuma maneira eficiente de (1) determinar o alcance real da imagem, nem (2) abordagem para passar essas informações para outro shader de fragmento, que poderia executar esse cinza normalização de nível.

questionAnswers(1)

yourAnswerToTheQuestion