レンズを置いてみる6

 凸凹凸のトリプレットを再現できないかなと試行しているが、うまくいっていない。

トリプレットの前玉になっている平凸レンズを単体でおいてみると、下記のように歪曲が少なくなる。ただし、焦点距離は両凸レンズの2倍になる。



平凸のマクロは、以下の通り。

#macro lens_plano_convex(lens_radius,lens_curv1,lens_width,lens_res,lens_ior,position)
    #local lens_cnt    = (lens_radius / lens_res);
    #local lens_x      = 0.0;
    #local lens_y      = 0.0;
    #local lens_offset1 = sqrt(pow(lens_curv1,2) - pow(lens_radius,2));
    #local cnt = 0;
    lathe{ linear_spline
        (lens_cnt + 2),
        #while(cnt < lens_cnt)
            #if( cnt < (lens_radius/lens_res))
                #local lens_y = sqrt(pow(lens_curv1,2) - pow(lens_x,2)) - lens_offset1 + (lens_width/2);
                <lens_x, lens_y>,
                //#debug concat("A ",str(cnt,0,0)," ",str(lens_x,0,5)," ",str(lens_y,0,5),"\n")
                #local lens_x = lens_x + lens_res;
           #end
            #local cnt = cnt + 1;
            
        #end
        #local lens_y = lens_width;
        <lens_x,  lens_y>,
        //#debug concat("B ",str(cnt,0,0)," ",str(lens_x,0,5)," ",str(lens_y,0,5),"\n")
        <0, 0>
        //#debug concat("B ",str(cnt,0,0)," ",str(lens_x,0,5)," ",str(lens_y,0,5),"\n")
        pigment{color rgb<1,1,1> filter 1.0} interior{ior lens_ior}
        rotate x*90
        translate position
        photons{target}
    }
#end


コメント

このブログの人気の投稿

LuxCoreRenderを使ってみる

BlenderでLuxCoreRenderを使う

レンズを置いてみる2