DWARF Debug Format Visualizer

Thinking about building a DWARF debug format visualizer. GUI For lightweight GUI, I am considering WxWidget. Development Tools Using Windows Visual Studio is ideal. And since Windows 10 Anniversary edition is supporting light weight bash, which they call Windows Subsystem Linux, so that I can actually use dwarfdump to generate …

Continue reading

Ray-tracing Refraction – Floating Point Error

To implement refraction in ray-tracing rendering, we can simply use the refraction equation: sin(theta1)/sin(theta2) = n2/n1   To compute sin(theta1), simply: cos(theta1)= v1.dot(N); sin(theta1) = sqrt(1-cos(theta1) * cos(theta1));  where v1 is the incomming ray direction, and N is the surface normal. However, there may be trouble when this implementation runs …

Continue reading

Be careful when dealing with C++ floating point.

Look at this piece of code: Vector3 colPlaneNor; float dx = abs(aabb1->getPosition().x() – aabb2->getPosition().x()); float dy = abs(aabb1->getPosition().y() – aabb2->getPosition().y()); if(dx < (aabb1->_width + obb2->_width)/2.0f)     colPlaneNor = Vector3::UNIT_Y; else if(dy < (aabb1->_height + aabb2->_height)/2.0f)     colPlaneNor = Vector3::UNIT_X; The idea of these lines of code is to determine the collision plane normal when two …

Continue reading