Optimizing tessellation through back-face culling and dynamic Level-of-Detail