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