>>2783631Thanks for the reply. Regarding AL, it's been a while since I looked at it (in AL_Object.fxsub), and it turns out the 'extra data' is just tex coords; but float4. Then it has special math to determine if this data was meant for AutoLuminous, and if so it decodes the data by using each digit for a different flag and so on.
I think the important thing, though, is that just like MMD modifies the position of vertices for pmx objects before sending them to the vertex shader (but not position of accessory vertices), it also rotates normals of pmx objects using the weights of all the parent bones and so on before providing them to the vertex shader. To use tangent vector, MMD would either need to rotate the tangent vector or give us the rotation matrix is used for the normals.
There's a small chance that if a model provided tangents, the 'TANGENT' semantic would rotate them, just like some weird semantics like vertex count work. But if the model format can't handle tangents, then we obviously can't do this.
I'm not surprised you stopped caring about specular values for models. I assume GS means Greener Shader? Which I tried like once but don't know much about. My understanding is that with RayCast, people select a specific material shader for each object material, so basically ignoring the properties except for texture. And with the default shader, the main reason people never got into the habit of using specular with models is that MMD doesn't do proper gamma. It doesn't convert sRGB textures to linear before processing and then convert the linear color output back to sRGB, and without this, specular looks very wrong.
However, if you fix the specular math, then people can start making models with useful specular values.
I guess I've seen models that raise colors (diffuse/ambient) above 1 using sliders, but I don't think I've ever seen one that had base colors above 1 with all sliders at 0. Is that possible, specifically for specular?
sRGB math spotlight: