현재 Kevin Beason (smallpt : http://www.kevinbeason.com/smallpt/)이 개발 한 광선 추적 장치를 이해하려고하는데 코드를 올바르게 이해하면 무작위로 반사 또는 굴절을 선택합니다 광선 (표면이 반사적이고 굴절 인 경우).광선 추적 : 반사 및 굴절 광선 대신 단일 광선 만 사용하십시오.
라인 71 ~ 73 :
return obj.e + f.mult(depth>2 ? (erand48(Xi)<P ? // Russian roulette
radiance(reflRay,depth,Xi)*RP:radiance(Ray(x,tdir),depth,Xi)*TP) :
radiance(reflRay,depth,Xi)*Re+radiance(Ray(x,tdir),depth,Xi)*Tr);
누군가는 대신 둘의 단일 광선을 캐스팅의 단점을 설명해 주시겠습니까? 나는이 기술에 대해 들어 보지 못했고, 복잡성을 대폭 감소 시켰을 때 트레이드 오프가 궁금합니다.
모든 것을 설명하고 해당 사이트에 분명하게 링크되어있는 [이 프레젠테이션] (https://docs.google.com/open?id=0B8g97JkuSSBwUENiWTJXeGtTOHFmSm51UC01YWtCZw)을 보았습니까? – KillianDS
예, 프리젠 테이션을 읽었으며 훌륭합니다! 내가 찾고있는 것은 단일 광선을 주조하는 것이 알고리즘의 효율성에 어떻게 영향을 미치는지에 대한 깊이있는 설명이다. 왜 그는 2까지의 깊이에 대해 두 개의 광선 모두 평가해야하지만 이후에는 그렇지 않다는 결론을 내 렸습니다 (즉, 정확히 2 인 이유 또는 다소 불규칙한 이유에 대한 이유가 있습니까?). – crapper
다소 불규칙하지만 아이디어는 아마도 당신이 처음 몇 번의 반사와 흡수로부터 대부분의 색 강도를 얻을 것이라는 것입니다. 반사/굴절을할수록 더 작은 공헌이 있어야합니다. – KillianDS