API cleanup: Roughness models should use polymorphism instead of enum