# Retail paint shader correction check, r425

This pass corrected three mismatches in the opt-in shader experiment: the reflected vector is evaluated before normalization, the diffuse alpha follows the extracted `DEFAULT` state (0.5), and the environment range is the extracted value (0.127). The corrected shader also clamps the evaluated specular color and reflection weight to the ranges used by the reference equation.

The screenshots were captured in host Chrome/WebGL2 on the Quadro. The XP guest was not asked to render the retail game. Both runs reached `City scene ready`; the local reflection probe was ready; neither run produced page/console errors or failed HTTP requests.

The correction did not recover the retail body appearance. The experimental capture is visibly much darker than the normal viewer capture. The experiment remains behind `?debug&carShader=retail-fallback` and has not been promoted. That result is consistent with the remaining evidence gap: the selected live player paint/material binding and its resolved texture/state are not in the static export. The XP VM's virtual GPU is a rendering limitation only; it does not prevent reading its disk and executable for static asset extraction and decompilation.

- [Default host-render capture](../webgl-city/review/images/564-r425-default-shader.png)
- [Corrected experimental host-render capture](../webgl-city/review/images/565-r425-retail-shader.png)
- [Scrollable screenshot review feed](../webgl-city/review/)
- [Programmable shader reverse-engineering notes](car-programmable-shaders-r267.md)
- [Live player paint audit](player-paint-live-render-audit-r419.md)
