![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In article <3d503959@news.povray.org>, Warp <war### [at] tag povray org>
wrote:
> Of course this raises the question why do you want to use an isosurface
> to create a heightfield at all?
> The only thing I can think of is that you want to use non-linear
> transformations on the heightfield. Creating a mesh instead of an isosurface
> will lead to enormously faster render times, and you can move the vertex
> points at will, which simulates non-linear transformations.
Less memory, no trouble with faceting or other triangle problems.
> I think there are macros in the official distribution for this (I don't
> remember if they allow transformations, but if they don't, you can make
> your own version of the macro with vertex transformations).
There are height field generator macros, they don't really have any
advantage over the height_field primitive except that there are
cylinderical and spherical versions available. (and I like the smoothing
better)
You still have the "no overhangs" restriction, for example. However, the
code is there, so you could modify it to do whatever you want.
--
Christopher James Huff <chr### [at] mac com>
POV-Ray TAG e-mail: chr### [at] tag povray org
TAG web site: http://tag.povray.org/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Christopher James Huff <chr### [at] mac com> wrote:
> no trouble with faceting
He is using an image to create the heightfield...
--
#macro N(D)#if(D>99)cylinder{M()#local D=div(D,104);M().5,2pigment{rgb M()}}
N(D)#end#end#macro M()<mod(D,13)-6mod(div(D,13)8)-3,10>#end blob{
N(11117333955)N(4254934330)N(3900569407)N(7382340)N(3358)N(970)}// - Warp -
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Warp wrote:
>
> Of course this raises the question why do you want to use an isosurface
> to create a heightfield at all?
Using image maps in isosurfaces can be very useful if you want to add a
fine structure to a rough geometry defined by an image.
Christoph
--
POV-Ray tutorials, IsoWood include,
TransSkin and more: http://www.tu-bs.de/~y0013390/
Last updated 03 Aug. 2002 _____./\/^>_*_<^\/\.______
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Christoph Hormann <chr### [at] gmx de> wrote:
> Using image maps in isosurfaces can be very useful if you want to add a
> fine structure to a rough geometry defined by an image.
You could do that with a mesh as well, and get a much faster rendering. :)
--
#macro N(D)#if(D>99)cylinder{M()#local D=div(D,104);M().5,2pigment{rgb M()}}
N(D)#end#end#macro M()<mod(D,13)-6mod(div(D,13)8)-3,10>#end blob{
N(11117333955)N(4254934330)N(3900569407)N(7382340)N(3358)N(970)}// - Warp -
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Warp wrote:
>
> > Using image maps in isosurfaces can be very useful if you want to add a
> > fine structure to a rough geometry defined by an image.
>
> You could do that with a mesh as well, and get a much faster rendering. :)
>
That's quite difficult and it would take incredible amounts of memory.
Christoph
--
POV-Ray tutorials, IsoWood include,
TransSkin and more: http://www.tu-bs.de/~y0013390/
Last updated 03 Aug. 2002 _____./\/^>_*_<^\/\.______
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On 6 Aug 2002 17:02:17 -0400, Warp <war### [at] tag povray org> wrote:
> Of course this raises the question why do you want to use an isosurface
>to create a heightfield at all?
Because I want to have the sides of the HF as well. I spent a whole
afternoon trying to resurrect the old HF clipping trick that I used so
often in the past, but I just can't get it to work anymore.
The render times are not impossible with a 16-bit grayscale PNG image
as a source and interpolate 4. The render time for my last picture was
just over 16 hours with two such isosurfaces, one of them refractive
and filled with media, and nested in a refractive CSG object, and well
over 5000000 photons. 16hr is not that bad for such a monster,
especially on a puny computer like my 400 MHz K6.
I ditched the idea and used a ridged multifractal function instead,
just because I couldn't make the HF I wanted in WorldMachine.
Peter Popov ICQ : 15002700
Personal e-mail : pet### [at] vip bg
TAG e-mail : pet### [at] tag povray org
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Christoph Hormann <chr### [at] gmx de> wrote:
> That's quite difficult and it would take incredible amounts of memory.
Subdividing a mesh is not difficult at all, and it does not take
"incredible amounts of memory", just the extra memory needed for the
extra vertex points and triangles.
--
#macro N(D)#if(D>99)cylinder{M()#local D=div(D,104);M().5,2pigment{rgb M()}}
N(D)#end#end#macro M()<mod(D,13)-6mod(div(D,13)8)-3,10>#end blob{
N(11117333955)N(4254934330)N(3900569407)N(7382340)N(3358)N(970)}// - Warp -
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Peter Popov <pet### [at] vip bg> wrote:
> Because I want to have the sides of the HF as well.
Sorry, but I didn't understand this.
--
#macro M(A,N,D,L)plane{-z,-9pigment{mandel L*9translate N color_map{[0rgb x]
[1rgb 9]}scale<D,D*3D>*1e3}rotate y*A*8}#end M(-3<1.206434.28623>70,7)M(
-1<.7438.1795>1,20)M(1<.77595.13699>30,20)M(3<.75923.07145>80,99)// - Warp -
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Warp wrote:
>
> [...]
>
> Subdividing a mesh is not difficult at all, and it does not take
> "incredible amounts of memory", just the extra memory needed for the
> extra vertex points and triangles.
>
Subdividing a mesh and displacing in normal direction is not camparable to
distorting an isosurface function and it can take enormeous amounts of
memory to generate a mesh of such a resolution.
Christoph
--
POV-Ray tutorials, IsoWood include,
TransSkin and more: http://www.tu-bs.de/~y0013390/
Last updated 03 Aug. 2002 _____./\/^>_*_<^\/\.______
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In article <3d5084d3@news.povray.org>, Warp <war### [at] tag povray org>
wrote:
> Christopher James Huff <chr### [at] mac com> wrote:
> > no trouble with faceting
>
> He is using an image to create the heightfield...
And what does that have to do with faceting?
--
Christopher James Huff <chr### [at] mac com>
POV-Ray TAG e-mail: chr### [at] tag povray org
TAG web site: http://tag.povray.org/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |