POV-Ray : Newsgroups : povray.newusers : image_map > solid object : Re: image_map > solid object Server Time
15 Jul 2024 06:39:54 EDT (-0400)
  Re: image_map > solid object  
From: clipka
Date: 3 May 2016 10:29:31
Message: <5728b5cb$1@news.povray.org>
Am 03.05.2016 um 15:08 schrieb Paul:
> Re-creating the image from scratch, using standard Pov-Ray objects, yes, that is
> an option.
> And the example image is pretty easy, simple shapes.
> But I have lots of other different images, more "artistic", not simple geometric
> shapes.
> So I'm looking for a universal solution, for any input image.
> I also used a simple 'for' to duplicate the object 10-15 times, but the quality
> is not that good (there are still empty spaces between objects) and the
> rendering time is too big (I'm rendring lots of frames, for animations).
> But, why aren't the resulting shapes solid, as far as I understoond from Pov-Ray
> help > all object are solid by default.
> If I do a simple 'difference' between 2 boxes > the result is indeed solid.

There is probably a conceptual misunderstanding here.

In POV-Ray, you have to distinguish three different concepts:

- The *surface* of a geometric primitive: This set of points is defined
*exclusively* by what type of primitive it is, what the
primitive-specific parameters are set to, and how it is transformed
(translated, scaled or rotated).

- The *volume* of an geometric primitive: This set of points is also
defined *exclusively* by what type of primitive it is, what the
primitive-specific parameters are set to, and how it is transformed
(translated, scaled or rotated). (Usually this is the set of points
enveloped by the surface, although there are exceptions.)

- The *texture* of an object: This function of space is defined
*exclusively* by what pigment and finish you choose, and how you
transform them.

What POV-Ray actually displays is the *texture* at any *surface* that
meets certain constraints about being inside or outside other objects'
*volume* (as determined by CSG composition).

Your texture doesn't show up as 3-dimensional because there are no
surfaces in the bulk of the object. If you do a "difference" with
another object, you introduce another surface for the texture to be
displayed at.


(This is oversimplifying the situation a bit: There is also the concept
of media, which is somewhat like texture but can show up even between
surfaces; but that's always "foggy" in nature, and doesn't introduce new
surfaces.)


There is one way to turn functions of space into actual surfaces, and
that's the isosurface primitive: It takes a scalar function of space
(i.e. a function taking three coordinates and evaluating to a single
value) and defines surface and a volume based on where the function
evaluates to a given threshold.

In order to make use of this primitive type for your purpose, you need
to know that you can turn a pigment into a scalar function suitable for
an isosurface; for that you'll need a "pigment function". You'll also
need to know that a function used in an isosurface must not have any
discontinuities, so you need to activate interpolation on it.


Post a reply to this message

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