|
|
2010-11-02 10:15, Le_Forgeron skrev:
> Le 02/11/2010 09:05, none a écrit :
>> I tried to declare the scene as an array of objects instead of a union,
>> and then call trace() and eval_pigment() on each object separately.
>> However, then the trace function "sees through" objects since they are
>> tested separately. For example, I get points both on a foreground object
>> and the background behind it, which should be occluded.
>>
>> Is there another way?
>
> What about simply render your scene with the camera at the scanner spot
> (and using the right camera type according to your scanner).
I suppose I could do it that way, although it seems to require a bit of
work. If I correctly understand your idea, it would be like this.
I would first run my POV macro to generate a text file with all the
"traced" points. Then I would render the the scene (with +Q0) to get the
pigment at each pixel. I would first have to change the camera
parameters so that each pixel in the image corresponds to one of the
rays that I trace to get the 3D position of a point (not sure how to do
that, but it's probably possible). And then I would make some other
program that would match the traced points with the colour pixels.
> But notice that the "colour" that a laser-scanner would get would in
> fact be the level of reflected laser-beam in the ray direction.
Yes, that's true. But in this case I actually do want the pigment of the
object that is hit by the ray, and not a simulation of the remission of
the laser beam, so you can actually disregard the application I
described. Sorry for the confusion.
Post a reply to this message
|
|