|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Hello all,
First-time POV-Ray user here. I've been reading up and experiementing, and
decide I want to do something.
For my first real project, I thought I'd start small, so I decided to do the
Chevrolet logo. For those of you who don't know, here it is:
http://questautosale.com/html/chevy_logo.jpg
Ok so, I've decided probably the best approach is to break it up until multiple
pieces. The center square will be one piece, the crossbar another, and the left
and right angled tips will be two more.
Well I'm finding it's not as easy I thought.
I'm first starting with the central square. Looks to me like it's a cut-off
pyramid, so I created a prism with conic_sweep and a bezier_spline profile.
Works well, but the problem is at the pyramid's cut-off point, the edges are
sharp. I was wondering how I could smooth these out? I was thinking something
like a lathe, except instead of revolving around a single axis, revolve around a
path.
I'm sorry if my description is not very accurate, I can't really describe what I
mean.
Here's some sample code. (There's probably a MUCH easier way of creating the
bezier but at the moment I'm very new and am just starting to get a grasp on
things.)
#include "colors.inc"
#local CAM_POS = <0, 0, -20>;
#local LIGHT_POS = <10, 10, -25>;
camera
{
location CAM_POS
look_at <0, 0, 0>
}
light_source
{
LIGHT_POS
rgb <1, 1, 1>
}
#local SIZE = 1;
prism
{
conic_sweep
bezier_spline
0.8, 1, 48
// lower right
<0, -SIZE>, <0.1*SIZE, -SIZE>, <0.7*SIZE, -SIZE>, <0.8*SIZE, -SIZE>,
<0.8*SIZE, -SIZE>, <SIZE, -SIZE>, <SIZE, -SIZE>, <SIZE, -0.8*SIZE>,
<SIZE, -0.8*SIZE>, <SIZE, -0.7*SIZE>, <SIZE, -0.1*SIZE>, <SIZE, 0>,
// upper right
<SIZE, 0>, <SIZE, 0.1*SIZE>, <SIZE, 0.7*SIZE>, <SIZE, 0.8*SIZE>,
<SIZE, 0.8*SIZE>, <SIZE, SIZE>, <SIZE, SIZE>, <0.8*SIZE, SIZE>,
<0.8*SIZE, SIZE>, <0.7*SIZE, SIZE>, <0.1*SIZE, SIZE>, <0, SIZE>,
// upper left
<0, SIZE>, <-0.1*SIZE, SIZE>, <-0.7*SIZE, SIZE>, <-0.8*SIZE, SIZE>,
<-0.8*SIZE, SIZE>, <-SIZE, SIZE>, <-SIZE, SIZE>, <-SIZE, 0.8*SIZE>,
<-SIZE, 0.8*SIZE>, <-SIZE, 0.7*SIZE>, <-SIZE, 0.1*SIZE>, <-SIZE, 0>,
// lower left
<-SIZE, 0>, <-SIZE, -0.1*SIZE>, <-SIZE, -0.7*SIZE>, <-SIZE, -0.8*SIZE>,
<-SIZE, -0.8*SIZE>, <-SIZE, -SIZE>, <-SIZE, -SIZE>, <-0.8*SIZE, -SIZE>,
<-0.8*SIZE, -SIZE>, <-0.7*SIZE, -SIZE>, <-0.1*SIZE, -SIZE>, <0, -SIZE>
pigment { color Yellow }
scale <10, 10, 10>
rotate <90, 0, 0>
}
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
After doing some reading and stumbling across this thread
http://news.povray.org/povray.general/thread/%3C4a85a542@news.povray.org%3E/
this seems like exactly what I'd like to do.
Unfortunately I am unable to define a bezier spline using #declare. It seems I
can only specify linear, quadratic or cubic/natural.
So I started experimenting, trying to recreate the profile I want using a cubic
spline, with no success. I seem to end up having kinks in the spline no matter
what I try.
With a bezier spline it was easy; I just opened up Inkscape, plotted my profile,
and exported to a .pov file. But Inkscape seems to only work with beziers, as
oppose to cubic splines.
Does anyone have any advice?
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
http://leroywhetstone.s5.com/
Jovian Ghost wrote:
> Hello all,
>
> First-time POV-Ray user here. I've been reading up and experiementing, and
> decide I want to do something.
>
Welcome to wonderful world of POV!
> For my first real project, I thought I'd start small, so I decided to do the
> Chevrolet logo. For those of you who don't know, here it is:
> http://questautosale.com/html/chevy_logo.jpg
>
> Ok so, I've decided probably the best approach is to break it up until multiple
> pieces. The center square will be one piece, the crossbar another, and the left
> and right angled tips will be two more.
>
Good Idea!
> Well I'm finding it's not as easy I thought.
>
Been there!
> I'm first starting with the central square. Looks to me like it's a cut-off
> pyramid, so I created a prism with conic_sweep and a bezier_spline profile.
> Works well, but the problem is at the pyramid's cut-off point, the edges are
> sharp. I was wondering how I could smooth these out? I was thinking something
> like a lathe, except instead of revolving around a single axis, revolve around a
> path.
>
> I'm sorry if my description is not very accurate, I can't really describe what I
> mean.
>
I don't know what others may say, but I understand ya!
> Here's some sample code. (There's probably a MUCH easier way of creating the
> bezier but at the moment I'm very new and am just starting to get a grasp on
> things.)
>
If this is your truly first 'real project' I'd go a lot simpler than
using prizms. There was a lot of different ways to round one but I
haven't seen one yet that I like. I would make a wire frame out of
spheres and cylenders then fill in the sides with triangles.
Have Fun!
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Jovian Ghost schrieb:
> For my first real project, I thought I'd start small, so I decided to do the
> Chevrolet logo. For those of you who don't know, here it is:
> http://questautosale.com/html/chevy_logo.jpg
...
> I'm first starting with the central square. Looks to me like it's a cut-off
> pyramid, so I created a prism with conic_sweep and a bezier_spline profile.
> Works well, but the problem is at the pyramid's cut-off point, the edges are
> sharp. I was wondering how I could smooth these out? I was thinking something
> like a lathe, except instead of revolving around a single axis, revolve around a
> path.
Well, "small" is not always related to actual size: Trying to model
/anything/ with rounded-off corners is quite an ambitious project to
start with.
I think Leroy's advice to try modelling it using cylinders for edges,
spheres for corners, and some "fillings" for the faces, is the easiest
to go - though I wouldn't recommend triangles, as they behave badly as
soon as you try to do more sophisticated things with them (like
difference or intersection CSG), and are probably not much easier to
compute than boxes or prisms anyway.
To set up prisms for the sides, just generate them as you would for a
flat 2D variant of the logo, then apply the Shear_Trans() macro from
transforms.inc to effectively rotate (not shear!) and at the same time
stretch it; e.g., if your logo is set up with +X = right, +Y = up and +Z
= camera direction, you could create the "filling" for the right-hand
side as:
#include "transforms.inc"
#declare SideSlope = 0.5;
#declare EdgeRadius = 0.1;
prism {
linear_spline
-EdgeRadius, EdgeRadius,
...
[number of points goes here, followed by desired
X and Y coordinates; don't bother about Z yet]
...
#local NewX = x+SideSlope*z;
#local NewZ = vnormalize(vcross(NewX,y));
translate -x*LogoRight
Shear_Trans(NewX,y,NewZ)
translate x*LogoRight
}
The NewX and NewZ vectors are designed to be perpendicular to each other
and to the Y vector, so the "shearing" transformation is really a
combination of scaling in what once was the X axis (to compensate for
the additional depth) followed by a rotation about the Y axis. The prism
thickness is designed to match edge cylinders of radius "EdgeRadius",
and the NewZ vector is designed to preserve that thickness; "SideSlope"
determines how much "depth" the logo will have; in this case, the sides
will be comparatively "flat" (with an angle of about 27 degrees); a
value of 1.0 would give you 45 degrees sides. "LogoRight" would be
whatever point you'd want to keep at Z=0: This might be the edge of the
front face, the centerline of the sides, or the outer edge of the sides,
though I guess using the front face edge would be easiest.
Similarly, the top side would be defined as:
prism {
linear_spline
-EdgeRadius, EdgeRadius,
...
[number of points goes here, followed by desired
X and Y coordinates; don't bother about Z yet]
...
#local NewY = y+SideSlope*z;
#local NewZ = vnormalize(vcross(x,NewY));
translate -y*LogoTop
Shear_Trans(x,NewY,NewZ);
translate y*LogoTop
}
Left and bottom would work likewise, except that you'd use
"-SideSlope*z" instead of "+SideSlope*z".
The front face will not need any transformation I guess, except maybe
translation to the desired Z coordinate.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Thanks for the replies everyone!
I think that using spheres for corners and cylinders for edges is actually a
good idea, and probably the easiest for me to do. I do believe I may be
overstepping my bounds a bit.
But I also wanted to try my second idea (actually the link in my second post)
which is making a spline, then putting spheres that follow that spline. Then
drawing a cylinder from the top spline to the bottom.
That will work, but unfortunately I can't get my cubic spline to look right, and
for some crazy reason, POV-Ray only allows Bezier curves for prisms, and not for
anything else???
Is there an easier way I can model my cubic spline, rather than trial-by-error?
I tried exporting a spline from Inkscape but unfortunately that only does Bezier
curves.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
"Jovian Ghost" <nomail@nomail> wrote in message
news:web.4ad1312e6c73c7c683b0b960@news.povray.org...
> Thanks for the replies everyone!
>
> I think that using spheres for corners and cylinders for edges is actually
> a
> good idea, and probably the easiest for me to do. I do believe I may be
> overstepping my bounds a bit.
>
> But I also wanted to try my second idea (actually the link in my second
> post)
> which is making a spline, then putting spheres that follow that spline.
> Then
> drawing a cylinder from the top spline to the bottom.
>
> That will work, but unfortunately I can't get my cubic spline to look
> right, and
> for some crazy reason, POV-Ray only allows Bezier curves for prisms, and
> not for
> anything else???
>
> Is there an easier way I can model my cubic spline, rather than
> trial-by-error?
> I tried exporting a spline from Inkscape but unfortunately that only does
> Bezier
> curves.
>
There is an easy way: There are spline editors available that can directly
generate cubic splines (e.g. Spilin, which is a small utily application for
drawing POV-Ray and VRML splines. See
http://news.povray.org/povray.binaries.utilities/thread/%3C48cf4dea@news.povray.org%3E/).
You can also do the job with Inkscape. It's a little more complex, but if
you've already got the shape you want in Inkscape, you might want to give
this a go:
o Use the 'edit points' selector in Inkscape to select your shape
o Ctrl-A to select all points
o Add sufficient intermediary points to the curve so that it won't matter
what form of spline you eventually use, it'll follow the same path anyway
o Save as a POV-Ray prism object
o Extract the locations of the points, ignoring the control points
Inkscape writes out the bezier spline with 4 coordinates per line. The outer
two points are the control points and the inner two points are points on the
curve. Fortunately it aligns them nicely, making it mind-numbingly easy to
select columns of data. If you open the file in an editor that supports
columnar editing you can simply pick out the middle two columns to use, or
pick out the outer two columns to delete.
In the POV-Ray Windows editor you can use the mouse with Ctrl-Shift to
select columns of data:
o Select the first column of control points and hit delete.
o Select that last column of control points and hit delete.
o Delete the comma following the last point
o Change the spline type to linear
o Update the number of control points (halve it)
Hey presto you've got a linear spline that follows your curve and that you
can easily redefine as a spline function. You can achieve similar results
using less points by using a cubic spline, but then you'll need to deploy a
bit of mental effort to add the necessary control points at the start and
end of the spline.
Note that, when selecting large blocks of data in columns using POV-Ray you
can click at the start point then use the mouse with the scroll bar to bring
the end-point into view so that you can Ctrl-Shift-LeftMouseClick it. This
method of scrolling avoids moving the current position of the caret in the
text, whereas scrolling using the keyboard moves it, making the whole
experience less satisfying :-)
Hope that helps,
Regards,
Chris B.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
"Chris B" <nom### [at] nomailcom> wrote:
> "Jovian Ghost" <nomail@nomail> wrote in message
> news:web.4ad1312e6c73c7c683b0b960@news.povray.org...
> > Thanks for the replies everyone!
> >
> > I think that using spheres for corners and cylinders for edges is actually
> > a
> > good idea, and probably the easiest for me to do. I do believe I may be
> > overstepping my bounds a bit.
> >
> > But I also wanted to try my second idea (actually the link in my second
> > post)
> > which is making a spline, then putting spheres that follow that spline.
> > Then
> > drawing a cylinder from the top spline to the bottom.
> >
> > That will work, but unfortunately I can't get my cubic spline to look
> > right, and
> > for some crazy reason, POV-Ray only allows Bezier curves for prisms, and
> > not for
> > anything else???
> >
> > Is there an easier way I can model my cubic spline, rather than
> > trial-by-error?
> > I tried exporting a spline from Inkscape but unfortunately that only does
> > Bezier
> > curves.
> >
>
> There is an easy way: There are spline editors available that can directly
> generate cubic splines (e.g. Spilin, which is a small utily application for
> drawing POV-Ray and VRML splines. See
>
http://news.povray.org/povray.binaries.utilities/thread/%3C48cf4dea@news.povray.org%3E/).
>
>
> You can also do the job with Inkscape. It's a little more complex, but if
> you've already got the shape you want in Inkscape, you might want to give
> this a go:
> o Use the 'edit points' selector in Inkscape to select your shape
> o Ctrl-A to select all points
> o Add sufficient intermediary points to the curve so that it won't matter
> what form of spline you eventually use, it'll follow the same path anyway
> o Save as a POV-Ray prism object
> o Extract the locations of the points, ignoring the control points
>
> Inkscape writes out the bezier spline with 4 coordinates per line. The outer
> two points are the control points and the inner two points are points on the
> curve. Fortunately it aligns them nicely, making it mind-numbingly easy to
> select columns of data. If you open the file in an editor that supports
> columnar editing you can simply pick out the middle two columns to use, or
> pick out the outer two columns to delete.
>
> In the POV-Ray Windows editor you can use the mouse with Ctrl-Shift to
> select columns of data:
> o Select the first column of control points and hit delete.
> o Select that last column of control points and hit delete.
> o Delete the comma following the last point
> o Change the spline type to linear
> o Update the number of control points (halve it)
> Hey presto you've got a linear spline that follows your curve and that you
> can easily redefine as a spline function. You can achieve similar results
> using less points by using a cubic spline, but then you'll need to deploy a
> bit of mental effort to add the necessary control points at the start and
> end of the spline.
>
> Note that, when selecting large blocks of data in columns using POV-Ray you
> can click at the start point then use the mouse with the scroll bar to bring
> the end-point into view so that you can Ctrl-Shift-LeftMouseClick it. This
> method of scrolling avoids moving the current position of the caret in the
> text, whereas scrolling using the keyboard moves it, making the whole
> experience less satisfying :-)
>
> Hope that helps,
>
> Regards,
> Chris B.
Thanks Chris B!
Unfortunately I'm running the Linux version of POV-Ray, so I can't use Spilin; a
quick Google reveals it's a Windows app.
In my understand is correct, your Inkscape method describes creating a curved
line with a lot of straight lines.
I would prefer to use curved splines if I can.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
"Jovian Ghost" <nomail@nomail> wrote in message
news:web.4ad28cda6c73c7c683b0b960@news.povray.org...
> "Chris B" <nom### [at] nomailcom> wrote:
>> You can achieve similar results
>> using less points by using a cubic spline, but then you'll need to deploy
>> a
>> bit of mental effort to add the necessary control points at the start and
>> end of the spline.
>
> In my understand is correct, your Inkscape method describes creating a
> curved
> line with a lot of straight lines.
> I would prefer to use curved splines if I can.
>
You can certainly use a curved spline with this method (cubic, quadratic or
natural when defining a spline function). Using a curved spline should mean
you can define a smooth curve using fewer points than with the liear spline
type, though you will still need enough additional points to avoid the sort
of kinks that you mentioned earlier.
Using a curved spline will mean that, once you've got the spline across into
POV-Ray, you'll need to define a few control points at the start and end by
hand so that the end of the spline with join smoothly onto the start of the
spline.
Regards,
Chris B.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Jovian Ghost wrote:
> So I started experimenting, trying to recreate the profile I want using a cubic
> spline, with no success. I seem to end up having kinks in the spline no matter
> what I try.
>
As far as I know the ONYL way to do this (define a bezier spline) is
with a set of early macros written by Chris Colefax and put into an
include file called spline.inc
The macros are very powerful allowing you to use control points for each
point on the sline.
Also as far as I know no one ever duplicated or modernized his work
(which surprises me)
It resided on a geocities site and I note that there is an effort to
preserve early POV contributions which resided there even as we speak.
The thread is in p.general
I do have a copy of those (very useful) macros if you cannot get it any
other way.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
I too am running Linux. I just ran Spilin, of which I knew not (thanks Chris),
under wine and it appears to run fine should you want to give Spilin a go that
way.
"Jovian Ghost" <nomail@nomail> wrote:
> Unfortunately I'm running the Linux version of POV-Ray, so I can't use Spilin; a
> quick Google reveals it's a Windows app.
>
> In my understand is correct, your Inkscape method describes creating a curved
> line with a lot of straight lines.
> I would prefer to use curved splines if I can.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|