diffuse and intersection done