问题三十六:ray tracing中的Inverse Mapping(6)——汇总

198 篇文章 12 订阅
195 篇文章 27 订阅

----------------------------------------------main.cpp ------------------------------------------

main.cpp

 

//triangle
        vec3 vertexes3_1[3];
        vertexes3_1[0] = vec3(-6.75, 0.0, 0.0);
        vertexes3_1[1] = vec3(-4.25, 0.0, 0.0);
        vertexes3_1[2] = vec3(-5.25, 2.5, 0.0);

//quadrilateral1
        vec3 vertexes4_1[4];
        vertexes4_1[0] = vec3(-6.5, 3.0 ,0.0);
        vertexes4_1[1] = vec3(-1.5, 3.0 ,0.0);
        vertexes4_1[2] = vec3(-1.5, 5.5 ,0.0);
        vertexes4_1[3] = vec3(-6.5, 5.5 ,0.0);
//quadrilateral2
        vec3 vertexes4_2[4];
        vertexes4_2[0] = vec3(-1.25, 3.0 ,0.0);
        vertexes4_2[1] = vec3(3.75, 3.0 ,0.0);
        vertexes4_2[2] = vec3(3.0, 5.5 ,0.0);
        vertexes4_2[3] = vec3(-0.0, 4.0 ,0.0);

        hitable *list[8];
        list[0] = new sphere(vec3(0.0,-100,0), 100, new lambertian(vec3(0.8, 0.8, 0.0)));
        list[1] = new sphere(vec3(-2.75, 1.25, 0), 1.25, new lambertian(vec3(0.8, 0.8, 0.0)));
        list[2] = new polygon(vertexes3_1, 3, new lambertian(vec3(0.8, 0.8, 0.0)));
        list[3] = new polygon(vertexes4_1, 4, new lambertian(vec3(0.8, 0.8, 0.0)));
        list[4] = new polygon(vertexes4_2, 4, new lambertian(vec3(0.8, 0.8, 0.0)));
        list[5] = new elliptic_plane(vec3(0.0, 1.25, 0), vec3(0, 0, 1), 1.25, 1.25, 1.25, new lambertian(vec3(0.8, 0.8, 0.0)));
        list[6] = new quadratic(vec3(2.75, 1.25, 0), 1.25, 1.25, 1.25, 0, 1, 1.25, new lambertian(vec3(0.8, 0.8, 0.0)));
        list[7] = new quadratic(vec3(5.5, 2.5, 0), 1.25, 2.5, 1.25, -1, 0, 2.5, new lambertian(vec3(0.8, 0.8, 0.0)));

        hitable *world = new hitable_list(list,8);

        vec3 lookfrom(0, 2.5, 20);
        vec3 lookat(0, 2.5, 0);
        float dist_to_focus = (lookfrom - lookat).length();
        float aperture = 0.0;
        camera cam(lookfrom, lookat, vec3(0,1,0), 20, float(nx)/float(ny), aperture, 0.7*dist_to_focus);


 

输出图片:



uv原图:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值