Я реализовал простой трассировщик лучей и теперь пытаюсь реализовать отражения, но объекты ведут себя как прозрачные. Вот мой код для получения отраженного луча.
ray* reflected = new ray();
reflected->direction = rayIn.direction - (2 * glm::dot(rayIn.direction, normal)) * normal;
reflected->origin = int_point + epsilon * normal;
outColor += ((int_object->reflectivity)*intersectray(*reflected, depth - 1));
Вот изображения с кодом:
![img](https://i.stack.imgur.com/x5h5r.png)
Без кода:
![img](https://i.stack.imgur.com/lobRe.png)
Я отредактирую сообщение, если потребуется больше кода.
Редактировать : Кажется, проблема в том, что я перебираю объекты на сцене , Я вставляю объекты как
scene->add(sphere1);
scene->add(sphere2);
Но когда я изменяю это на:
scene->add(sphere2);
scene->add(sphere1);
, вывод выводится правильно. Сфера 1 находится ближе к камере, чем сфера 2, и они не перекрываются.