Re: lighting problem with mesa software rendering
"Wendt, Lars Henning" <[email protected]>
| Newsgroups | gmane.comp.video.mesa3d.user |
|---|---|
| Message-ID | <4F6FD2DBA5E2134E8B6F4EA5AED42D251B55538D@EXMBS1.ad.igd.fraunhofer.de> |
Yes, this would work for us too. Thanks! Lars -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Brian Paul Sent: Mittwoch, 25. Juli 2012 15:31 To: Wendt, Lars Henning Cc: [email protected] Subject: Re: [Mesa-users] lighting problem with mesa software rendering Yes, I thought of that last night too. How about this: if (FABSF(det) < 1e-25) return GL_FALSE; -Brian On 07/25/2012 01:16 AM, Wendt, Lars Henning wrote: > Hi Brian, > > I've stumbled over an issue with your patch. > The check will now fail if det is negative. > > Best > Lars > > > -----Original Message----- > From: Brian Paul [mailto:[email protected]] > Sent: Dienstag, 24. Juli 2012 19:05 > To: Wendt, Lars Henning > Cc: [email protected] > Subject: Re: [Mesa-users] lighting problem with mesa software rendering > > OK, great. I'll post a patch for review. I should go into 8.0.5 and > 8.1 when they're released. > > -Brian > > On 07/24/2012 11:01 AM, Wendt, Lars Henning wrote: >> Hi Brian, >> >> Thank you for your fast solution. >> >> It seems to work in our complex configuration too. >> >> best >> Lars >> >> -----Original Message----- >> From: Brian Paul [mailto:[email protected]] >> Sent: Dienstag, 24. Juli 2012 17:41 >> To: Wendt, Lars Henning >> Cc: [email protected] >> Subject: Re: [Mesa-users] lighting problem with mesa software rendering >> >> On 07/24/2012 07:56 AM, Wendt, Lars Henning wrote: >>> Hi all, >>> >>> I'm using mesa as software renderer and I get some strange lighting effects. >>> In some cases it looks like the source of light is relative to the model while it should be relative to the camera. >>> Attached you'll find some apitraces to reproduce the error. >>> >>> The problem was reproduced with the following versions of mesa: >>> 6.5.1 linux >>> 7.8.2 windows/linux >>> 8.0 windows >>> >>> It seems to me that it could be a numeric problem. >>> As you will see the modelview matrix contains rather small numbers. >>> Nonetheless other implementation doesn't have this problem or can cope with it. >>> >>> Does anybody have an idea what is wrong? Is it a bug? Is there any chance the behavior will be improved in future mesa versions? Or did I get something wrong? >> >> I think I see the problem. >> >> In src/mesa/math/m_matrix.c near line 518 we have: >> >> if (det*det< 1e-25) >> return GL_FALSE; >> >> det = 1.0F / det; >> >> >> The det (determinant) value is very small here and by returning false we're giving up on computing the inverse of the combined modelview * projection matrix. >> >> That check code dates back to 2000 or earlier. I'd guess it was a check to avoid floating point divide by zero. But I'm not sure why the square of det is used. >> >> I changed the check to read "if (det< 1e-25)" and it seems to fix the problem. Can you try that too and see what happens? >> >> -Brian > _______________________________________________ mesa-users mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-users