--- ray/src/util/genBSDF.pl 2013/04/23 23:19:09 2.41 +++ ray/src/util/genBSDF.pl 2014/04/07 21:33:25 2.46 @@ -1,5 +1,5 @@ #!/usr/bin/perl -w -# RCSid $Id: genBSDF.pl,v 2.41 2013/04/23 23:19:09 greg Exp $ +# RCSid $Id: genBSDF.pl,v 2.46 2014/04/07 21:33:25 greg Exp $ # # Compute BSDF based on geometry and material description # @@ -123,18 +123,18 @@ print " \n"; # Output MGF description if requested if ( $geout ) { print "\t\n"; - print "\n"; + print "\t\t\n"; printf "xf -t %.6f %.6f 0\n", -($dim[0]+$dim[1])/2, -($dim[2]+$dim[3])/2; open(MGFSCN, "< $mgfscn"); while () { print $_; } close MGFSCN; print "xf\n"; - print "\t\t\n"; + print "\n"; print "\t\n"; } # Set up surface sampling -my $nx = int(sqrt($nsamp*($dim[1]-$dim[0])/($dim[3]-$dim[2])) + .5); -my $ny = int($nsamp/$nx + .5); +my $nx = int(sqrt($nsamp*($dim[1]-$dim[0])/($dim[3]-$dim[2])) + 1); +my $ny = int($nsamp/$nx + 1); $nsamp = $nx * $ny; my $ns = 2**$ttlog2; my (@pdiv, $disk2sq, $sq2disk, $tcal, $kcal); @@ -181,7 +181,7 @@ $disk2sq = ' norm_radians(p) : if(-p - PI/4, p + 2*PI, p); in_disk_r = .999995*sqrt(Dx*Dx + Dy*Dy); in_disk_phi = norm_radians(atan2(Dy, Dx)); -in_disk_rgn = floor((in_disk_phi + PI/4)/(PI/2)) + 1; +in_disk_rgn = floor((.999995*in_disk_phi + PI/4)/(PI/2)) + 1; out_square_a = select(in_disk_rgn, in_disk_r, (PI/2 - in_disk_phi)*in_disk_r/(PI/4), @@ -277,7 +277,8 @@ $cmd = "rcalc -if3 -e 'Omega:PI/($ns*$ns)' " . q{-e '$1=(0.265*$1+0.670*$2+0.065*$3)/Omega' }; if ($pctcull >= 0) { $cmd .= "-of $td/" . ($bmodnm,$fmodnm)[$forw] . ".flt " . - "| rttree_reduce -a -h -ff -t $pctcull -r $tensortree -g $ttlog2"; + "| rttree_reduce -h -ff -t $pctcull -r $tensortree -g $ttlog2"; + $cmd .= " -a" if ($tensortree == 3); system "$cmd" || die "Failure running rttree_reduce"; } else { $cmd .= "$td/" . ($bmodnm,$fmodnm)[$forw] . ".flt";