Tuesday, March 11, 2008

pbrt渲染器的一个bug

pbrt这个渲染器有个bug,渲染带光子贴图的场景时,会产生access violation。原因是kdtree.h这个文件有问题。第96行,


std::nth_element(&buildNodes[start], &buildNodes[splitPos],
&buildNodes[end], CompareNode(splitAxis));
改成
std::nth_element(buildNodes.begin() + start, buildNodes.begin() + splitPos,
buildNodes.begin() + end, CompareNode(splitAxis));

就好了。

感觉是个挺奇怪的问题。还没有细想过。
kdtree是存储光子贴图的结构。

No comments: