Exemplo n.º 1
0
func castRay(r geometry.Ray, scene geometry.Object, recursionLimit uint) (bool, geometry.Vector) {
	if scene.Collides(r) {
		depth, object, objectColour := scene.Collision(r)
		// if depth < 0 {
		// 	return false, geometry.MakeVector(0,0,0)
		// }
		// if recursionLimit == 4 {
		// 	fmt.Println("Reflected")
		// }
		return true, calculateColour(r, depth, scene, object, objectColour, recursionLimit)
	}
	return false, geometry.MakeVector(0, 0, 0)
}