From 27724b010694549f17cad50158cf73ca035e9cad Mon Sep 17 00:00:00 2001 From: rodri Date: Thu, 4 Jul 2024 15:11:40 +0000 Subject: med,vis: fix normal map sampling. recent changes in libgraphics assume every texture resides in an sRGB color space, which is not the case for material resources like normals. --- vis.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'vis.c') diff --git a/vis.c b/vis.c index ce45b0c..1cf67a2 100644 --- a/vis.c +++ b/vis.c @@ -161,9 +161,9 @@ gouraudshader(FSparams *sp) { Color tc, c; - if(sp->v.mtl != nil && sp->v.mtl->diffusemap != nil && sp->v.uv.w != 0){ + if(sp->v.mtl != nil && sp->v.mtl->diffusemap != nil && sp->v.uv.w != 0) tc = texture(sp->v.mtl->diffusemap, sp->v.uv, tsampler); - }else if(sp->su->entity->mdl->tex != nil && sp->v.uv.w != 0) + else if(sp->su->entity->mdl->tex != nil && sp->v.uv.w != 0) tc = texture(sp->su->entity->mdl->tex, sp->v.uv, tsampler); else tc = Pt3(1,1,1,1); @@ -240,6 +240,7 @@ phongshader(FSparams *sp) else{ /* TODO implement this on the VS instead and apply Gram-Schmidt here */ n = texture(sp->v.mtl->normalmap, sp->v.uv, neartexsampler); + n = linear2srgb(n); /* TODO not all textures require color space conversion */ n = normvec3(subpt3(mulpt3(n, 2), Vec3(1,1,1))); TBN.p = Pt3(0,0,0,1); -- cgit v1.2.3