Refactory the interface of surface shader.