Я пишу трассировщик лучей и уже смог визуализировать сферы и плоскости с затенением Фонга.
Однако я получаю очень странное поведение с моими треугольниками. Всякий раз, когда я запускаю программу, треугольник, кажется, принимает произвольный цвет (даже без перекомпиляции). Я новичок в C++, и я понятия не имею, что вообще может быть причиной этого, поскольку с другими объектами все в порядке, и все они наследуют один и тот же метод для вычисления своих цветов.
Треугольник чаще всего будет черным, но иногда может иметь один оттенок синего, красного или розового (могут быть и другие цвета, но это не точно). Что я заметил, так это то, что каждый оттенок согласован, вероятно, со значениями RGB, равными 1 или 0, я бы предположил, что синий, например, будет (0,0,1), основываясь на моем наблюдении.
Мой вопрос в том, что может быть возможной причиной этого странного недетерминизма? Это немного сбивает меня с толку, но опять же, я новичок в C++. Является ли это общей проблемой для трассировки лучей? Может ли это быть объектная ориентация или проблема с указателем/ссылкой?
Я могу предоставить более подробную информацию, если это необходимо, я просто понятия не имею, почему это происходит.
Спасибо за помощь!