![](/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) |
I've made a highly reflective blimp using a union of several bicubic_patch
elements. My problem is that the reflection of the horizon is extremely
blocky. The u_steps and v_steps have been set to 3 and I get slightly
better results when setting them higher, but at a huge cost in render time
(I'm making an animation).
Here is a snippet of code for the blimp;
// blimp_body
#declare blimp_body = union {
bicubic_patch {
type 1
flatness 0
u_steps blimp_usteps
v_steps blimp_vsteps
<-2.742, 0.003, -0.002> <-2.742, 1.486, -0.002> <-1.480, 2.748, -0.002>
<0.004, 2.748, -0.002>
<-2.742, -1.481, -0.002> <-2.742, 0.003, -0.002> <-1.480, 2.748, -3.872>
<0.004, 2.748, -3.872>
<-1.480, -2.743, -0.002> <-1.480, -2.743, -3.872> <0.004, 0.003, -9.752>
<0.004, 1.628, -9.752>
<0.004, -2.743, -0.002> <0.004, -2.743, -3.872> <0.004, -1.623, -9.752>
<0.004, 0.003, -9.752>
}
bicubic_patch {
type 1
...
...
You can see a small sample image showing the blocky horizon at;
http://home.attbi.com/~sblaufuss/scene250.bmp
Any help with this would be appreciated.
Thanks,
Scott
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) |
> You can see a small sample image showing the blocky horizon at;
> http://home.attbi.com/~sblaufuss/scene250.bmp
>
> Any help with this would be appreciated.
Patches (IIRC) are converted into triangles during parsing, and the only
way to get a truly smooth reflection is either a) up the U and V steps to
higher, more processor intensive values, or b) try and figure out another
way to make the surface you want using CSG or an isosurface, for example.
Somebody else may have ideas though, so don't take my waffling to be the
final word.
Jamie.
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) |
> Patches (IIRC) are converted into triangles during parsing
Are they? I doubt it... that wouldn't be consistent with the functionality
of a raytracer.
I'm willing to bet the normals of the patches don't match up. That would
explain square blocks as opposed to triangular blocks.
- Slime
[ http://www.slimeland.com/ ]
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) |
Slime wrote:
> > Patches (IIRC) are converted into triangles during parsing
>
> Are they? I doubt it... that wouldn't be consistent with the functionality
> of a raytracer.
6.5.2.1 Bicubic Patch
A bicubic_patch is a 3D curved surface created from a mesh of triangles.
--
-Jide
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) |
"Jide" <jid### [at] koti soon fi> wrote in
news:3d4ef32d$1@news.povray.org
>> > Patches (IIRC) are converted into triangles during parsing
>> Are they? I doubt it... that wouldn't be consistent with the
>> functionality of a raytracer.
> 6.5.2.1 Bicubic Patch
> A bicubic_patch is a 3D curved surface created from a mesh of
> triangles.
there must be function (isosurface) for bicubic path, what is the expresion
for it ?
--
#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
|
![](/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 <3d4ee807@news.povray.org>, "Slime" <slm### [at] slimeland com>
wrote:
> > Patches (IIRC) are converted into triangles during parsing
>
> Are they? I doubt it... that wouldn't be consistent with the functionality
> of a raytracer.
They are converted into triangles, type 0 does everything at render time
and type 1 does some of the work at parse time. It doesn't have anything
to do with POV being a raytracer. It is just easier to solve for a
tesselated patch than to solve for the mathematical surface...more
reliable as well, it doesn't give as many artifacts. Height fields are
also tesselated, and POV supports triangles and two kinds of mesh
primitives...being a raytracer does not make triangles forbidden.
--
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) |
In article <Xns### [at] 204 213 191 226>,
"Rafal 'Raf256' Maj" <raf### [at] raf256 com> wrote:
> there must be function (isosurface) for bicubic path, what is the expresion
> for it ?
A bicubic patch is a parametric shape, not an isosurface. You could come
up with a function to describe some cases, but clipping it to the right
shape would be a huge pain and you wouldn't be able to do it for all
cases (a self intersecting patch, for example). It would be much easier
with the parametric primitive, but still much more of a pain than simply
using the internal primitive. And if you are going to do either of
these, why limit yourself to a bicubic patch?
It sounds like the problem here is simply with the parameters to the
bicubic patch. I'm not familiar enough with using that shape to be of
any help though...
--
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:
> being a raytracer does not make triangles forbidden.
In fact, many things can only be made in a rational way with triangle
meshes (eg. human shapes). They are also really fast (POV-Ray can render
millions of triangles in less than a minute).
--
#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) |