Designing a Modern Rendering Engine - Design Decisions and Implementation Details