rasterize: i give up trying to make the interpolator precision good. that is a waste of time right now. just clamp material colors to the right range

This commit is contained in:
zeromus 2009-02-03 19:51:58 +00:00
parent 54b392d76b
commit 9ba8408af9
1 changed files with 10 additions and 2 deletions

View File

@ -184,8 +184,6 @@ struct Shader
u = invu/invw;
v = invv/invw;
texColor = sampler.sample(u,v);
assert(texColor.components.r<32); assert(texColor.components.g<32); assert(texColor.components.b<32);assert(texColor.components.a<32);
assert(materialColor.components.r<32); assert(materialColor.components.g<32); assert(materialColor.components.b<32);assert(materialColor.components.a<32);
dst.color.components.r = modulate_table[texColor.components.r][materialColor.components.r];
dst.color.components.g = modulate_table[texColor.components.g][materialColor.components.g];
dst.color.components.b = modulate_table[texColor.components.b][materialColor.components.b];
@ -385,6 +383,16 @@ void triangle_from_devmaster()
shader.materialColor.components.r = i_color_r.cur();
shader.materialColor.components.g = i_color_g.cur();
shader.materialColor.components.b = i_color_b.cur();
//this is a HACK:
//we are being very sloppy with our interpolation precision right now
//and rather than fix it, i just want to clamp it
//assert(texColor.components.r<32); assert(texColor.components.g<32); assert(texColor.components.b<32);assert(texColor.components.a<32);
//assert(materialColor.components.r<32); assert(materialColor.components.g<32); assert(materialColor.components.b<32);assert(materialColor.components.a<32);
shader.materialColor.components.r = max((u8)0,min((u8)31,shader.materialColor.components.r));
shader.materialColor.components.g = max((u8)0,min((u8)31,shader.materialColor.components.g));
shader.materialColor.components.b = max((u8)0,min((u8)31,shader.materialColor.components.b));
shader.materialColor.components.a = max((u8)0,min((u8)31,shader.materialColor.components.a));
Fragment shaderOutput;
shader.shade(shaderOutput);