POV-Ray : Newsgroups : povray.binaries.images : luminance output : Re: luminance output Server Time
6 Oct 2024 05:53:58 EDT (-0400)
  Re: luminance output  
From: Alain
Date: 16 Apr 2014 19:59:52
Message: <534f1978@news.povray.org>

> scott <sco### [at] scottcom> wrote:
>>> Hello,everyone.I am a student.I am doing my graduation project recently.It is
>>> simulating radiance with ray-tracing.I have done a test with pov.But I am
>>> confronting a error with my result.Could anyboby help me check out my issue.Beg
>>> a hot.I am a student.I am confronting the pressure of graduation.I feel so
>>> worry.I have uploaded the whole process of my test,beg a hot help me!
>>> "pov-xyz"is the location of each sphere.
>>> "pov-ref"is the reflectivity of each sphere.
>>> "pov.exr"is the output image by pov.
>>> I have converted "pov.exr" to "pov.tiff".
>>> "result"is my analyse.My issue was wrote in it.
>>> Expecting somebody help me.Great gratitudes!
>>
>> Using a specular highlight on tiny spheres is going to give very
>> unpredictable results, the output pixel value will highly depend on
>> exactly where the ray hits the sphere compared to the highlight
>> position. I zoomed in on your scene and rendered it, see attached, I
>> also changed the background colour to red to highlight the spheres
>> better. Do you see the problem?
>>
>> I would use boxes rather than spheres and use diffuse rather than
>> specular reflection:
>>
>>    pigment{color rgb 1}
>>    finish {
>>     ambient 0
>>     diffuse ref
>>    }
>> }
>>
>> That should give much more uniform results and not depend on where each
>> ray hits the shapes. I don't know if that will solve your problem or not.
>
> I have modified the statements and done a test with your advice.I find the
> result changed,but not what I wanted.Besides,I only have 40000 points ,if I used
> box as my model, which needs two points to describle,but my input scene is as
> "pov.tif".One point stands for one object,corresponding,with a reflectity.If I
> used box,may need two point to descible a object,I doublt the scene is not my
> wanted.
>
>
>
>

You can use boxes instead of spheres without doubling the size of your 
file. Curently, you use this code to place your spheres:
sphere {
  <x1-center_x,y1-center_y,z1-center_z>,1.55
  finish { ambient 0
           emission 0
           specular ref
           }
        }

To use box, just use this code:
box{-1.55, 1.55 // reduce slightly is you want to keep some gap.
// The following line is the key...
	translate <x1-center_x,y1-center_y,z1-center_z>
  finish { ambient 0
           emission 0
           specular ref
           }
        }


This will give you boxes with a width identical to the diameter of your 
spheres.

Even beter, make an union containing all your objects:

union{
#fopen   Input_geom_file geom_file_name read
#fopen   Input_spec_file spec_file_name read
#while(defined(Input_geom_file))

     #read(Input_geom_file, X1, Y1, Z1)
     #read(Input_spec_file, Ref)

box{-1.55, 1.55 // reduce slightly is you want to keep some gap.
// The following line is the key...
	translate <X1-Center_X,Y1-Center_Y,Z1-Center_Z>
        }// Remove the texture from the objects
#end
// and apply it to all objects at once
  finish { ambient 0
           emission 0
           specular Ref
           }
}// End of the union

As the variable "n" is never used, I removed it.

Finaly, a general recomendation: In all of your user defined variable, 
use at least ONE upper case letter. This ensure that you don't have any 
conflict with predefined variables and primitive. It also make it clear 
that those are YOUR variables. It can realy help when debugging your code.




Alain


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.