추적기 및 예기치 않은 문제를 발견했습니다. 나는 광선 추적의 두 가지 주요 루프를 작성하는 경우, 이미지 픽셀에 책임이있는 사람, 그런 식으로 :레이 트레이서 루프 순서
for (int y=0; y<image.getWidth(); y++) {
for (int x=0; x<image.getHeight(); x++) {
나는이 왜곡 된 이미지를 얻을. (실제로, 페이스 북의 나사 이미지, 어떻게 든, 심지어 실제보다 더 있지만, 포인트는 코드가 실제로 작은 주사선의 일종으로 여러 미러 구()
그러나 경우를 생성하는 것입니다 나는에 작은 변화를 만들 경우 :
for (int y=0; y<image.getHeight(); y++) {
for (int x=0; x<image.getWidth(); x++) {
아래에서 볼 수 있듯이 그것은, 매력으로 작동합니다
getHeight
, getWidth
은 나에게 이미지의 높이와 너비를 제공합니다.
Ray viewRay = { {float(x), float(y), -1000.0f}, { 0.0f, 0.0f, 1.0f}};
첫 번째 부분은 카메라 위치, 그것은 이런 일이 왜 모르겠어요 방향 그리고 모든 입력을 부탁드립니다 두 번째입니다 : 는 여기에 내가 도움이 될 수 믿고 좀 더 코드입니다. 문제를 평가하기 위해 더 많은 코드가 필요한 경우 그냥 물어보십시오.
잘못된 이미지가 이전의 잘못된 이미지와 다르더라도 작동하지 않았습니다. 결과는 다음과 같습니다. http://s72.photobucket.com/user/john_smith140/media/zzz_zps83ed0c45.jpeg.html?filters[user]=139318132&filters[recent]=1&sort=1&o=0 – user2752471
내가 게시 한 루프는 다음과 같습니다. 꽤 표준적인 것 - 나는 당신의 코드를 더 보지 않고는 정말로 도움이되지 못합니다. 루프 안에있는 것을 게시 할 수 있다면 디버깅에 도움이 될 것입니다. –
오랫동안 답변을 드려 죄송합니다. 나는 내가하는 것과 동일한 문제를 겪고있는 광선 추적기에 대한 링크를 게시 할 것이다 : http://www.scratchapixel.com/assets/Uploads/Lesson001/Source%20Code/raytracer.cpp 루프를 교환하면 같은 문제가 발생한다. 내가 가진 것. 내가 인용 한 두 번째 코드 조각이 이미지를 수평으로 구성한다는 것을 이해하면 이미지는 행 단위가 아닌 세로 열 단위로 구성되어야하지만 둘 다 작동해야합니다 – user2752471