My camera preserves a 9:16 view by adding side bars in a wide window. During one failing Web test, the screen was 1500×938, while targetCamera.pixelRect was approximately (486, 0, 528, 938). Enabling SkeletonRenderTexture made the creature invisible during both spawn and death fades; disabling it showed the normal Spine mesh.
Diagnostics showed that the source mesh and shader pass 0 were valid. The RenderTexture existed, and a manual magenta clear could be read back, but the sample’s draw produced zero pixels with alpha. Drawing the same mesh into that texture with a simple projection produced visible pixels.
The issue is in SkeletonRenderTextureBase.CalculateOrthoMatrix(): it divides full-screen coordinates by pixelRect.size without first subtracting pixelRect.position. I changed the normalization to:
Vector2 viewportOrigin = targetCamera.pixelRect.position;
Vector2 min = (new Vector2(screenSpaceMin.x, screenSpaceMin.y) - viewportOrigin) / fullSizePixels;
Vector2 max = (new Vector2(screenSpaceMax.x, screenSpaceMax.y) - viewportOrigin) / fullSizePixels;
With that change, the diagnostic Web build showed both fades correctly. RenderTexture readback then found nontransparent pixels during spawn and death. This appears to be a viewport-origin issue, rather than a WebGL texture-format issue.