2014-11-16 2 views
0
나는 광선 추적을 쓰고 있어요 이미 퐁 음영 분야와 비행기를 렌더링 할 수 있었다

에없는 동작. C++ : 레이 트레이서 출력

그러나 나는 나의 삼각형 매우 이상한 행동을 얻고있다. 프로그램을 실행할 때마다 삼각형은 (재 컴파일하지 않아도) 임의의 색상을 취하는 것처럼 보입니다. C++을 처음 접했을 때 다른 객체가 괜찮 으면 무엇을 일으킬 수 있는지 전혀 알지 못합니다. 그리고 모두 색상을 계산하기 위해 동일한 메소드를 상속 받았습니다.

삼각형이 가장 자주 검은 색,하지만 가끔 파란색, 빨간색 또는 분홍색의 하나의 그늘로 될 것입니다 (이 다른 색상 수 있지만, 확인하지 않을 수 있습니다). 내가봤을 때, 각 그늘은 RGB 값이 1 또는 0 일 가능성이 높기 때문에, 예를 들어 청색은 (0,0,1)이라고 생각합니다.

내 질문이 이상한 비 결정론에 대한 가능한 원인이 될 수 무엇입니까? 그것은 나에게 당혹 스럽지만 다시 C++을 처음 접했습니다. 이것이 레이 트레이싱에 공통적 인 문제입니까? 객체 지향 또는 포인터/참조 문제 일 수 있습니까? 필요한 경우

나는 그냥 이런 일이 될 이유 단서가없는, 더 자세한 정보를 제공 할 수 있습니다.

도움 주셔서 감사합니다.

+3

최소한의 코드 예제를 만들어 게시해야합니다. 참조 (http://stackoverflow.com/help/mcve) –

+0

[valgrind] (http://valgrind.org/) 사용; 코드에서 초기화되지 않은 메모리를 읽는 위치를 지적해야합니다. –

답변

1

비 결정론의 가장 가능성이있는 원인은 코드에서 초기화되지 않은 있지만, 사용되는 변수입니다.