Precompute the division.
Raise an exception instead of just using assert().
Repare, scaling is not accurate (some photons may have been lost).
is singular (i.e. if fabs(det) <= EPSILON).
is singular (i.e. if fabs(det) <= EPSILON).
Hack...
Interpolate normals with a spherical interpolation.
Hack...
Close files and free resources.
Move out of the loop.
Missing cosine factor?
Choose lights based on their occlusion-free contribution to the point being illuminated.
Avoid generating samples for point lights.
Precompute the division.
Warning: units inconsistency.
This is a hack.
Precompute.
Precompute.
Handle the case where a=0.0.
Handle the case where r.m_direction.m_y=0.0.
Handle the case where r.m_direction.m_y=0.0.
Flip the normal? Call Hit::ExtractIntersection()?
Not sure which normal to use.
This is a quick hack.
I guess joints and resting contacts should be resolved together at the same time, which is obviously not the case at the moment. I believe that making resting contacts unilateral constraints (thus a particular type of joint) will help to achieve simultaneous resolution of resting contacts and joints.
Use iterators.
Replace by object->GetBody()->IsFixed()
Fine tune the number of items to read between progress updates.
Close files and free resources.
Try to save to another file (like backup.png).
Turn the multiplication into an addition.
Turn the multiplication into an addition.
Turn the multiplication into an addition.
Turn the multiplication into an addition.
1.3.6