Reimplemented to use surface shader.