Kdtree Lookup: PBRT Исходный код

Я пытаюсь реализовать kdtree, используя исходный код pbrt для поиска n ближайшие точки. У меня есть массив точек, распределенных по трехмерному пространству, и мне нужно вычислить количество точек, которые находятся на заданном расстоянии от контрольной точки. Так может ли кто-нибудь наставить меня, как мне поступить? По сути, я использую тот же процесс поиска (PhotonProcess), который упоминается в integrators/photonmap.cpp. Но каким-то образом я получаю странные результаты. Вот небольшая часть кода, который я использую.

const uint32_t nAbsorptionPhotons = 10;         //photons to be found
PhotonProcess proc(nAbsorptionPhotons,arena.Alloc<ClosePhoton>(nAbsorptionPhotons));
float searchDist = 0.f;
Photon p;
p.p.x = 50;    //just a reference point set arbitrarily to 50
p.p.y = 50;
p.p.z = 50;
searchDist = 0;

while (proc.nFound < nAbsorptionPhotons) {
            float md2 = searchDist;
            AbsorptionMap->Lookup(p.p, proc, md2);
            searchDist += 1.f;

      }    
printf("SearchDistance is %f \n", searchDist);

Я не получаю ожидаемое значение searchdist. Любые намеки на идеи или предложения приветствуются.

0 ответов

Другие вопросы по тегам