![](/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 news:3bf672a4@news.povray.org JRG wrote:
> Only msm.inc is missing.
No, msm.pov should not have been in there :(
Ingo
--
Photography: http://members.home.nl/ingoogni/
Pov-Ray : http://members.home.nl/seed7/
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 17 Nov 2001 08:36:51 -0500, ingo <ing### [at] home nl> wrote:
> Here's some mesh making macros I'd like to have some feedback on. Don't
> rely too much on them as they are still changing and some depend on the
> buggy POV-Ray 3.5 splines that also may change.
I played with similiar system like this set of macros. It is supposed to be
standard inlude files for POV 3.5 ?
Here are my propositions:
1. Coons
========
Change header of Coons macro to:
#macro Coons(
Spl1, Min1, Max1,
Spl2, Min2, Max2,
Spl3, Min3, Max3,
Spl4, Min4, Max4,
Iter_U, Iter_V, FileName)
and change calculation of P0 to
#local P0=LInterpolate(
I,
<0,0,0>+Spl1(LInterpolate(J,Min1,Max1)),
<0,0,0>+Spl3(LInterpolate(Jm,Min3,Max3))
) +
LInterpolate(
Jm,
<0,0,0>+Spl2(LInterpolate(I,Min2,Max2)),
<0,0,0>+Spl4(LInterpolate(Im,Min4,Max4))
)-C0;
this way you achive possibility of use smaller number of splines
old syntax
#macro Coons_Simple(Spl1, Spl2, Spl3, Spl4, Iter_U, Iter_V, FileName)
Coons(Spl1,0,1,Spl2,0,1,Spl3,0,1,Spl4,0,1, Iter_U, Iter_V, FileName)
#end
new possibilities
#macro Closed_Surface(Spl, Iter_U, Iter_V, FileName)
Coons(Spl,0,.25,Spl,.25,.5,Spl,.5,.75,Spl,.75,1,Iter_U,Iter_V,FileName)
#end
This way you can simplier control inner behaviour of surface becouse you can
play with it on grid of splines by evaluating subsets.
2. Makemesh
===========
Macros from Makemesh.inc are IMO designed to be more general than only for other
zipped macros they should allow meshes with no normals and no uvvectors. It
could be for example done this way:
//necessary declarations
#declare Empty_List=array[1];
#macro Make_List(Array) array[1]{Array} #end
// sample usage
BuildWriteMesh2(VecArr, Make_List(NormArr), Empty_List, U, V, FileName)
// changed begining of macros
#macro BuildWriteMesh2(VecArr, NormArr, UVArr, U, V, FileName)
#local Normals_Defined=(defined(NormArr[0])?yes:no);
#local UV_Defined=(defined(UVArr[0])?yes:no);
// rest of macro with reference to normals and uv extended with [0]
#end
Also if it is designed as standard include file I think it shuld be better to
refer to standard Interpolate macro or function adjust_range from math.inc.
> *Make the macros that use splines more general so they can take arrays
> with points as input. Then provide macros that turn splines, functions
> etc. into point arrays?
yes.
ABX
--
#declare _=function(a,b,x){((a^2)+(b^2))^.5-x}#default {pigment{color rgb 1}}
union{plane{y,-3}plane{-x,-3}finish{reflection 1 ambient 0}}isosurface{ //ABX
function{_(x-2,y,1)|_((x+y)*.7,z,.1)|_((x+y+2)*.7,z,.1)|_(x/2+y*.8+1.5,z,.1)}
contained_by{box{<0,-3,-.1>,<3,0,.1>}}translate z*15finish{ambient 1}}//POV35
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) |
wrote:
> Here are my propositions:
I forgot about lathe proposition.
There could be yes/no switch to rotate on/off spline during rotation around y
axis. Somethin like (corosssection):
/ | \
/ | \
< | >
\ | /
\ | /
and
/ | /
/ | /
< | <
\ | \
\ | \
ABX
--
#declare _=function(a,b,x){((a^2)+(b^2))^.5-x}#default {pigment{color rgb 1}}
union{plane{y,-3}plane{-x,-3}finish{reflection 1 ambient 0}}isosurface{ //ABX
function{_(x-2,y,1)|_((x+y)*.7,z,.1)|_((x+y+2)*.7,z,.1)|_(x/2+y*.8+1.5,z,.1)}
contained_by{box{<0,-3,-.1>,<3,0,.1>}}translate z*15finish{ambient 1}}//POV35
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) |
wrote:
> Here are my propositions:
Another things.
1. Clipping
It could be interesting when the macros could support clipping_object.
I know - clipped_by could be added to mesh2 but with clipping on the calculation
level you can eliminate triangles outside clipping object. It could save memory
a lot.
2. Output
At this level your macros return file or memory allocation of mesh. It could be
interesting if they could return data structures: arrays with vertices, normals,
uv-vectors and triangles (they are produced temporary). It could be useful for
further ....
3. Manipulation
It could be interesting when two meshes could be joined and produce large arrays
and/or connect similiar vertices and/or smooth normals on the border. Don't
forget about PCM posiibilities.
Do you read my propositions ?
ABX
--
#declare _=function(a,b,x){((a^2)+(b^2))^.5-x}#default {pigment{color rgb 1}}
union{plane{y,-3}plane{-x,-3}finish{reflection 1 ambient 0}}isosurface{ //ABX
function{_(x-2,y,1)|_((x+y)*.7,z,.1)|_((x+y+2)*.7,z,.1)|_(x/2+y*.8+1.5,z,.1)}
contained_by{box{<0,-3,-.1>,<3,0,.1>}}translate z*15finish{ambient 1}}//POV35
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) |
Skiba wrote:
> It is supposed to be standard inlude files for POV 3.5 ?
No
> Here are my propositions:
>
> 1. Coons
>Change header of Coons macro to:
> #macro Coons(
> Spl1, Min1, Max1,
> Spl2, Min2, Max2,
> Spl3, Min3, Max3,
> Spl4, Min4, Max4,
> Iter_U, Iter_V, FileName)
If, then I think it should be part of a method that allows a more
general input than just splines.
> 2. Makemesh
>===========
>
> Macros from Makemesh.inc are IMO designed to be more general than
> only for other zipped macros they should allow meshes with no
> normals and no uvvectors.
Yes.
Ingo
--
Photography: http://members.home.nl/ingoogni/
Pov-Ray : http://members.home.nl/seed7/
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) |
Skiba wrote:
> There could be yes/no switch to rotate on/off spline during
> rotation around y axis.
Nice. Also thought about adding a 'twist' option to the prism.
Ingo
--
Photography: http://members.home.nl/ingoogni/
Pov-Ray : http://members.home.nl/seed7/
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) |
Skiba wrote:
> 1. Clipping
>
Don't know, I'll think about it.
> 2. Output
>
Yes, it's one of the things I'm working on.
> 3. Manipulation
>
> It could be interesting when two meshes could be joined and produce
> large arrays and/or connect similiar vertices and/or smooth normals
> on the border. Don't forget about PCM posiibilities.
> Do you read my propositions ?
Yes, had lost my connection for a few days :(
Ingo
--
Photography: http://members.home.nl/ingoogni/
Pov-Ray : http://members.home.nl/seed7/
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 28 Nov 2001 07:18:04 -0500, ingo <ing### [at] home nl> wrote:
> > 2. Output
>
> Yes, it's one of the things I'm working on.
Look at the attached file.
ABX
--
#declare _=function(a,b,x){((a^2)+(b^2))^.5-x}#default {pigment{color rgb 1}}
union{plane{y,-3}plane{-x,-3}finish{reflection 1 ambient 0}}isosurface{ //ABX
function{_(x-2,y,1)|_((x+y)*.7,z,.1)|_((x+y+2)*.7,z,.1)|_(x/2+y*.8+1.5,z,.1)}
contained_by{box{<0,-3,-.1>,<3,0,.1>}}translate z*15finish{ambient 1}}//POV35
Post a reply to this message
Attachments:
Download 'structs.inc.txt' (11 KB)
|
![](/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 28 Nov 2001 07:11:32 -0500, ingo <ing### [at] home nl> wrote:
> If, then I think it should be part of a method that allows a more
> general input than just splines.
Ok, I try write something about my system. I tried it more general - it could
work with set of points, splines, functions, spline on surface, qurve joined
from any previous one etc.
I just created macros/initializers
Create_Qurve_From_Spline("Name",Spline)
Create_Qurve_From_Function("Name",Function)
Create_Linear_Qurve("Name",Points)
Create_Joined_Qurve("Name","Qurve1","Qurve2")
end every above have created methods and properties like Get_Name_Length,
Get_Name_Point(S) etc. They were fast becouse they were parsed as ready macros.
So when I called Get_Length("Name") calculated Get_Name_Length was used. The
same I started with surfaces. Surface get any kind of qurve becouse it calls
global methods Get_Point("Name",U). Internally it still uses original function
or spline or set of points or set of any other qurves.
ABX
--
#declare _=function(a,b,x){((a^2)+(b^2))^.5-x}#default {pigment{color rgb 1}}
union{plane{y,-3}plane{-x,-3}finish{reflection 1 ambient 0}}isosurface{ //ABX
function{_(x-2,y,1)|_((x+y)*.7,z,.1)|_((x+y+2)*.7,z,.1)|_(x/2+y*.8+1.5,z,.1)}
contained_by{box{<0,-3,-.1>,<3,0,.1>}}translate z*15finish{ambient 1}}//POV35
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) |
Skiba wrote:
> Look at the attached file.
>
>
I'll investigate.
Thanks for the feedback,
Ingo
--
Photography: http://members.home.nl/ingoogni/
Pov-Ray : http://members.home.nl/seed7/
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) |