World类其他都一样的,就修改build函数就行了,以后测试所有代码,都是基于两个或多个球体的,不再重复阐述。

void World::build() {
	vp.set_hres(200);
	vp.set_vres(100);
	tracer_ptr = new MultiSphere(this);//这里变成MultiSphere
	Geometrics* obj = new Sphere(0, 0.5);
	obj->set_color(RGBColor(1, 0, 0));
	add_object(obj);
	obj = new Sphere(Point3(0, -100.5, 0), 100);
	obj->set_color(RGBColor(0, 0, 1));
	add_object(obj);
}

 

运行后看下测试效果:

还行吧,如果照书上的World::Render代码,你会发现,这个图像是颠倒的。哈哈哈哈。因为默认的是从左上角向右下角渲染。

posted on 2020-03-31 04:23  dalgleish  阅读(163)  评论(0编辑  收藏  举报