|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
isosurface from mesh from official sample files
do not ask how long rendered
ABX
Post a reply to this message
Attachments:
Download 'f_teapot.png' (84 KB)
Preview of image 'f_teapot.png'
|
|
| |
| |
|
|
|
|
| |
| |
|
|
> do not ask how long rendered
Render time? ; )
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On Mon, 13 Jan 2003 11:29:43 +0100, "Daniel Prien"
<wil### [at] gmxnet> wrote:
> > do not ask how long rendered
>
> Render time? ; )
about 0,5 weeks
of course using IC_Triangle from IsoCSG Library
ABX
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
ABX <abx### [at] abxartpl> wrote in
news:jo552vs74rk5sbo8hkgdcfc6ppc2jjqkef@4ax.com
> about 0,5 weeks
> of course using IC_Triangle from IsoCSG Library
Imho it would a good idea to invent some optimizations for isosurfaces, and
for displacment. I have a few ideas, maybe some of them would be usefull :)
--
#macro g(U,V)(.4*abs(sin(9*sqrt(pow(x-U,2)+pow(y-V,2))))*pow(1-min(1,(sqrt(
pow(x-U,2)+pow(y-V,2))*.3)),2)+.9)#end#macro p(c)#if(c>1)#local l=mod(c,100
);g(2*div(l,10)-8,2*mod(l,10)-8)*p(div(c,100))#else 1#end#end light_source{
y 2}sphere{z*20 9pigment{function{p(26252423)*p(36455644)*p(66656463)}}}//M
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On 13 Jan 2003 06:36:19 -0500, "Rafal 'Raf256' Maj" <raf### [at] raf256com> wrote:
> > about 0,5 weeks
> > of course using IC_Triangle from IsoCSG Library
>
> Imho it would a good idea to invent some optimizations for isosurfaces, and
> for displacment. I have a few ideas, maybe some of them would be usefull :)
To optimize anything you should know it internally. To know something
internally you should know already implemented optimizations and solutions. Do
you know optimizations already implemented in isosurfaces as well as used
algorithms? Would you like to list them so community could get advantages from
your knowledge?
ABX
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
ABX wrote:
<snip>
>algorithms? Would you like to list them so community could get advantages from
>your knowledge?
>
>ABX
>
I'll second that request, ABX.
IMNSHO the whole purpose of publishing on a newsgroup such as this is to
share knowledge as opposed to publishing just to demonstrate how "amazing"
you are.
John
--
Run Fast
Run Free
Run Linux
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
ABX <abx### [at] abxartpl> wrote in
news:rv952vckkflqsalno9vj8m7rb95kg43aq4@4ax.com
> To optimize anything you should know it internally. To know something
but if I have only a concept how isosurface work, I can still make
suggestions, even if they are not good - they can 'inspiere' someone with
better knowlage of isosurface code
--
#macro g(U,V)(.4*abs(sin(9*sqrt(pow(x-U,2)+pow(y-V,2))))*pow(1-min(1,(sqrt(
pow(x-U,2)+pow(y-V,2))*.3)),2)+.9)#end#macro p(c)#if(c>1)#local l=mod(c,100
);g(2*div(l,10)-8,2*mod(l,10)-8)*p(div(c,100))#else 1#end#end light_source{
y 2}sphere{z*20 9pigment{function{p(26252423)*p(36455644)*p(66656463)}}}//M
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On 13 Jan 2003 12:31:40 -0500, "Rafal 'Raf256' Maj" <raf### [at] raf256com> wrote:
> > To optimize anything you should know it internally. To know something
>
> but if I have only a concept how isosurface work, I can still make
> suggestions
Sure, you can. So what is the first? I have also some isosurface related ideas
and I would like to listen your proposition before coding anything.
ABX
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
ABX <abx### [at] abxartpl> wrote in
news:aju52vkn21i8o83452s558bq1p00t9ot05@4ax.com
> Sure, you can. So what is the first? I have also some isosurface
> related ideas and I would like to listen your proposition before
> coding anything.
Most simple - to buid complex bounding boxes, or rather bounding shapes.
And to use 2 shapes. Bound and InnerBound.
Best scene to ilustrate this speed up is :
+ simple isusurface (i.e. sphere, torus, blob etc)
+ but with displaced surface (i.e. +f_noise3d(x*10,y*10,z*10)*.1)
+ casting a big shadow (i.e. on plane under surface)
+ with area light
Shape A is stanart bounding_box - it covers MINIMU area where MIGTH be our
isosurface
Shape B (inner-bounding) is a simple shape that coverw MAXIMUM area where
MUST be our isosurface.
When ray (or shadow-ray) hits shape B - it is 100% shure that shadow is
there (we do not have to do isosurface calculations). If it hits neither
boxes - there is no shadow (this is now - standart bounding box).
Example :
* light
.......... <-- isosurface
...........
..........
..........
----------------- plane
* light
.......... <-- isosurface
..XXXXXXX..
..XXXXXXX. X-the inner bounding box
.XXXXXXX..
----------------- plane
12345678901234 - this 14 spots neede shado ray tests. most of them hit X,
so we have about 80% less isosurfaces tests.
In some cases determinating inner-bounding-box shape is simple, i.e.:
isosurface {
#local e=0.1;
function { x*x+y*y+z*z - 1 + f_noise3d(x,y,z)*e }
contained_by { sphere { 0 1+e } }
inner_bound { sphere { 0 1-e } }
[...]
}
--
#macro g(U,V)(.4*abs(sin(9*sqrt(pow(x-U,2)+pow(y-V,2))))*pow(1-min(1,(sqrt(
pow(x-U,2)+pow(y-V,2))*.3)),2)+.9)#end#macro p(c)#if(c>1)#local l=mod(c,100
);g(2*div(l,10)-8,2*mod(l,10)-8)*p(div(c,100))#else 1#end#end light_source{
y 2}sphere{z*20 9pigment{function{p(26252423)*p(36455644)*p(66656463)}}}//M
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
"Rafal 'Raf256' Maj" <raf### [at] raf256com> wrote in
news:Xns### [at] 204213191226
> function { x*x+y*y+z*z - 1 + f_noise3d(x,y,z)*e }
> contained_by { sphere { 0 1+e } }
> inner_bound { sphere { 0 1-e } }
function { x*x+y*y+z*z - 1 + f_noise3d(x,y,z)*e }
contained_by { sphere { 0 1 } }
inner_bound { sphere { 0 1-e } }
-or-
function { x*x+y*y+z*z - 1 - f_noise3d(x,y,z)*e }
contained_by { sphere { 0 1+e } }
inner_bound { sphere { 0 1 } }
oh and I forgot, Imho for shapes where calculations are *very* expensive
(like isosurfaces) we whould use comples shapes to bound them, or even
hierarchies, like :
isosurface is bounded with:
..a very complex mesh (10,000 faces[1])
..and this compelx mesh is bounded with simple mesh (100 faces)
..and simple mesh is finaly bounded by box
[1] - this complex mesh can be builded automaticly i.e. by trace funcion,
and results may be saved to some file and re-calculated only when
isosurface will change.
--
#macro g(U,V)(.4*abs(sin(9*sqrt(pow(x-U,2)+pow(y-V,2))))*pow(1-min(1,(sqrt(
pow(x-U,2)+pow(y-V,2))*.3)),2)+.9)#end#macro p(c)#if(c>1)#local l=mod(c,100
);g(2*div(l,10)-8,2*mod(l,10)-8)*p(div(c,100))#else 1#end#end light_source{
y 2}sphere{z*20 9pigment{function{p(26252423)*p(36455644)*p(66656463)}}}//M
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|