POV-Ray : Newsgroups : povray.unofficial.patches : Seems that the tesselation patch died before even being born : Re: Seems that the tesselation patch died before even being born Server Time
2 Sep 2024 00:19:42 EDT (-0400)
  Re: Seems that the tesselation patch died before even being born  
From: Jérôme Grimbert
Date: 18 Jan 2001 11:36:32
Message: <3A671B8F.A4774B74@atosorigin.com>
Wlodzimierz ABX Skiba wrote:
> 


> > Moreover I found it counter-productive and dangerous:
> > let's say we have a CSG operation (not a union) and
> > you modify ONE of the component to tesselate while the
> > other components remained unchanged.
> > I'm not sure the CSG would still be possible.
> 
> sometimes when you translate/rotate/scale component of CSG
> rest of CSG dissapeare
> 

This may be a bug (unless the intersection/difference leave nothing,
in such case I would considere that it is normal).
But I do not think it may be a reason for the tesselation as
an object modifier.


> > Sincerely, I just like the way the tesselation object was introduced:
> > it is a new object. dot.
> 
> if you have large definition of object you must
> jump over source to tesselate it : "tesselation {" at beginning and "}" at end
> when you put this as object modifier you must type only in one place.
> 

This is only a problem for the editor.
And you may as well have a single line
#local to_be_tessalated = <<your big construct>>

tesselate { object { to_be_tessaleted } }

If clear and understandable source is your purpose.




> But consider that I'm talking about ideal tesselation with inheritance of
> parameters such no_image, texture, hollow etc. from base object.
> 

Ring some bells here about 'object'

> > > I know that some peoples don't like such word like "modeller" according to
> > > POV-script
> > > but in modellers there is taskbar with operations applied to object and
> > > rotation, scale and other linear operations are neighbours for
> >
> > Yes the classical mods,
> >
> > > twisting,
> > > bending, screwing
> >
> > This is the 'classical' problem with the POV approach: the intersection
> > of an object with a curved ray...
> 
> But I've resolved this in my putch a little :-)
> 

Yep, looks like we do not have the same definition for 'object'
If I understand your definition, and abuse it somehow,
all we need in Pov is the sphere object.

to make a cylinder, add a cylinder modifier
to make a box, add a box modifier
to make a cone, add a cone modifier
to make a superellipsoid, add a superellipsoid modifier
to make a quartic, ...

My definition of object is based on the internal structure,
once parsed.
So, if you look at the source, there is a sphere object and
another one which is an ellipsoid. 
and a box object,
and a cone/cylinder object,
and a superellipsoid object, and so on...

Basically, an object has a method which return all the intersection
of a ray with the object.

So from my current understanding of the tesselate patch (not opened yet),
it is an easy way to obtain a mesh object. I can hardly see tesselate as
a generic modifier, because pov does not end with the same parsed structure:

 without the modifier, the object structure holds pointers to the csg functions,
 with the modifier, the object structure holds pointers to the mesh functions.

It's too much for a modifier, at least for me ! 
(probably the only object which play this
kind of trick is the sphere when scaled unevenly: it replace the pointers
with the ones for the ellipsoid. But then, they are really similar object
and they are coded in the very same file, so that's very different from
your suggestion with tesselate).



> > The 'twist/bend/screw' cannot be applied to all objects, but you
> > could make them to be some new 'object' (?) that would take a
> > mesh-like object and some parameters:
> 
> What you mean by "cannot" ?
> In my patch they can.

Please, tell me where I can see the code for it.
I'm interested to see how you perform this miracle.

> 
> > twist { object {my_mesh}, <center.x,center.y,center.z>,<axis.x,axis.y,axis.z>,
> >angle... }
> > bend { object {my_mesh}, <center.x,center.y,center.z>,...}
> > screw { object {my_mesh}, <center.x,center.y,center.z>,<axis.x,axis.y,axis.z>,
> > pitch... }
> >
> > Then when parsing, your 'object' is twisted/bent/screwed by 'simply' applying
> > a blind transformation to each vertex of the mesh
> 
> This cause a lot of new types of objects.
> All this stuff shuld be IMO in object modifiers.

May be they may be just MESH modifiers. But I cannot still understand
how you can apply them into the resolving intersection of a line
and a sphere (e.g. as is currently the function for the sphere object)
when applied to a true basic object (and not a set of triangles)

> 
> > (beware: you not only have to transform the position of the vertex, but also
> > the normal... so the 'simply' is an overstatement).
> 
> perhaps you missed some images in p.b.i
> just look at topics with word "deform" sended by me

I also probably missed the deformation of the texture!
And in p.b.i, all I see from you is about ten posts, but
none with deform (but I seems to remember some sliced/twisted box,
so may be my newsreader is bogus)

> 
> when I twist box, my eyes see twisted box, not another type of object
> even if it is triangulated

Your eyes see a twisted box, but the code will probably see a mesh,
which may look like a box but is not really a box.
And if it is not really a box, it should not be parsed as a box...

Best regards, and probably more to come once I will have read the
tesselation patch...


Post a reply to this message

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