Home › Forums › GAMES在线课程(现代计算机图形学入门)讨论区 › 关于作业6框架中bvh成员的疑问 Tagged: c++ This topic has 4 replies, 4 voices, and was last updated 4 years, 7 months ago by V_V. Viewing 4 reply threads Author Posts 2020年4月9日 at 上午12:10 #5283 Score: 0 V_VParticipant Karma: 1 pt 请问各位大佬,作业6中 类MeshTriangle的成员BVHAccel* bvh; 和 类Scene的成员BVHAccel *bvh; 有啥区别? 1. 在类MeshTriangle的构造函数里调用了bvh = new BVHAccel(ptrs); 2. 在类Scene的成员函数void buildBVH();中调用了this->bvh = new BVHAccel(objects, 1, BVHAccel::SplitMethod::NAIVE); 构造bvh应该是MeshTriangle的构造函数里构建的,那scene里的bvh和MeshTriangle里有啥区别与联系? 2020年4月9日 at 上午10:13 #5285 Score: 0 KeneyrParticipant Karma: 7 pts 没联系,不同类下声明的成员变量而已。 2020年4月14日 at 下午6:51 #5554 Score: 0 sublimationParticipant Karma: 3 pts 我推测这个框架应该是不只想要做三角形的,为了其它的也方便。 scene里的bvh调用了MeshTriangle的成员BVHAccel* bvh。因为scene里面是三角形,如果是Sphere就会调用Sphere的bvh,这样做是为了方便,有一点继承的感觉。 2020年4月14日 at 下午6:54 #5555 Score: 0 BearParticipant Karma: -11 pt MeshTriangle 里 BVH 只是在各自的 object 上构建了, scene 里那个是为了构建整个场景的 BVH(其实就是找根节点) 2020年4月15日 at 下午8:39 #5618 Score: 0 V_VParticipant Karma: 1 pt 嗯嗯,对的,scene里面是对objects构建bvh,object里面是对triangles构建bvh,实际计算先针对scene进行ray-object求交,再针对object进行ray-triangle求交。 Author Posts Viewing 4 reply threads You must be logged in to reply to this topic. Log In Username: Password: Keep me signed in Log In