ACNH and packed PBR textures
According to my notes:
The colors texture has RGB for albedo and A for some fresnel bullshit.
The "mix" texture is packed PBR with R=occlusion, G=likely roughness, B=specularity.
There's something funky going on with villager body textures compared to their face, where there's only an occlusion map.
Normal maps are as expected.
Opacity, where needed, is in an "op" texture.
Looking at the downloaded models from The Models Resource, the packed stuff is all unpacked and labeled:
The fresnel bullshit from the albedo A channel is "crv", which sent me down a rabbit hole and a half before.
Mix G is missing entirely, leaving only R="ocl" and b="spc".
For body textures, there's no specular map either.
Now, looking into it a little deeper in RenderDoc, I see why:
vec2 _640 = texture(fp_t_tcb_C, vec2(_86, _88)).xz; float _642 = _640.x; float _644 = _640.y;
Or more readable:
vec2 oclSpc = texture(mixSampler, uv.xy).xz; float occlusion = oclSpc.x; float specular = oclSpc.y;
And for the body specifically, it's like this:
float occlusion = texture(mixSampler, uv.xy).x;
So that's why there's several different shaders in use here, huh? But wait, it gets better!
According to my notes, this applies to outfits too. Nothing could be wronger.
vec4 mixStuff = texture(mixSampler, uv.xy)).xyzw;
This is grabbing all the stuff and one more to boot! In the RenderDoc capture I'm using here, Audie is wearing a tracksuit, which has these textures:
That's albedo RGB, albedo A (fresnel stuff), mix R (metalicity?) G (occlusion) B (some "edge" bs?), and A (roughness?). Not shown: the opacity map.
I got that from comparing things to the tropical muumuu that Audie normally wears, whose textures are included in the TMR download.
It's a good thing the Beckett Engine already has a way to handle these different shaders (I use it for the player) or I'd be so fucking pissed right now.












