![](/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 feel kind of silly asking this, so I'll ask it here. I've been ray
tracing for at least six years with POV-Ray, and I keep hearing about
scanline rendering, and I'm wondering what the diference is between ray
tracing and scan-line. I'm sure its something simple but the explanation
escapes me. Can someone throw me a hint or link or something?
--
Josh English -- Lexiphanic Lethomaniac
eng### [at] spiritone com
The POV-Ray Cyclopedia http://www.spiritone.com/~english/cyclopedia/
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) |
Scanline just follows the objects surfaces without tying them in with simulated
light rays, at least that's my understanding. Bah! Why try and explain what I
don't know.
Check out these web pages:
http://www.3dgate.com/techniques/000424/0424rendering1.html
http://www.geocities.com/jamisbuck/raytracing.html A familiar name. Tells
about raytracing though.
Bob H.
"Josh English" <eng### [at] spiritone com> wrote in message
news:3A64B833.2478737D@spiritone.com...
> I feel kind of silly asking this, so I'll ask it here. I've been ray
> tracing for at least six years with POV-Ray, and I keep hearing about
> scanline rendering, and I'm wondering what the diference is between ray
> tracing and scan-line. I'm sure its something simple but the explanation
> escapes me. Can someone throw me a hint or link or something?
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) |
The ideology in scanline rendering is completely different from raytracing.
In raytracing the program "shoots" rays from the camera towards the scene
and sees what does it hit (this allows, among other things, the objects to
be mathematical functions, not necessarily polygons).
In scanline rendering the process is completely different (this is a very
simple explanation; the actual process used by current scanline renderers is
a bit more complicated):
The scene consists entirely of polygons. Each polygon (that is, each vertex
of each polygon) is projected on the viewing plane (the "screen"). That is,
each 3D vertex is projected on the viewing plane thus getting 2D points
(with depth information).
Then the polygons are drawn as if they were just 2D polygons on screen
(of course texturing and lighting takes into account the depth information
and normal vectors of the vertex points).
Hidden surface removal is (usually, but not necessarily) achieved with
a z-buffering algorithm.
Drawing 2D polygons on screen (even taking into account the depth
information) is a lot faster than raytracing.
Current 3D acceleration cards use purely scanline rendering.
If you have heard the term "perspective correct texture mapping", it's
very closely related to scanline rendering. It's an algorithm which is
necessary to use when drawing the polygons in order to get correct textures.
Explaining its idea is beyond this short text.
Raytracing doesn't need this to get correct texturing, since the raytracing
algorithm itself "automatically" gets the correct color in the texture.
--
char*i="b[7FK@`3NB6>B:b3O6>:B:b3O6><`3:;8:6f733:>::b?7B>:>^B>C73;S1";
main(_,c,m){for(m=32;c=*i++-49;c&m?puts(""):m)for(_=(
c/4)&7;putchar(m),_--?m:(_=(1<<(c&3))-1,(m^=3)&3););} /*- 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) |
|
![](/i/fill.gif) |
Josh English wrote:
> I feel kind of silly asking this, so I'll ask it here. I've been ray
> tracing for at least six years with POV-Ray, and I keep hearing about
> scanline rendering, and I'm wondering what the diference is between ray
> tracing and scan-line. I'm sure its something simple but the explanation
> escapes me. Can someone throw me a hint or link or something?
Just found this page yesterday (it maybe in the POV links, I haven't
checked).
http://www.geocities.com/ResearchTriangle/Lab/1767/pol.html
It gives lots of definitions for graphic-related terms and algorithms,
including scanline.
G.
--
**********************
http://www.oyonale.com
**********************
Graphic experiments
Pov-ray gallery
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) |
Gilles Tran wrote:
> Just found this page yesterday (it maybe in the POV links, I haven't
> checked).
It will be soon :)
--
Ken Tyler - 1400+ POV-Ray, Graphics, 3D Rendering, and Raytracing Links:
http://home.pacbell.net/tylereng/index.html http://www.povray.org/links/
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) |
Thanks for the links. I undestand ray tracing, but I keep hearing about scan line
and I was curious. Sounds like I'm already using the best I can get.
Josh
"Bob H." wrote:
> Scanline just follows the objects surfaces without tying them in with simulated
> light rays, at least that's my understanding. Bah! Why try and explain what I
> don't know.
> Check out these web pages:
>
> http://www.3dgate.com/techniques/000424/0424rendering1.html
>
> http://www.geocities.com/jamisbuck/raytracing.html A familiar name. Tells
> about raytracing though.
>
> Bob H.
>
> "Josh English" <eng### [at] spiritone com> wrote in message
> news:3A64B833.2478737D@spiritone.com...
> > I feel kind of silly asking this, so I'll ask it here. I've been ray
> > tracing for at least six years with POV-Ray, and I keep hearing about
> > scanline rendering, and I'm wondering what the diference is between ray
> > tracing and scan-line. I'm sure its something simple but the explanation
> > escapes me. Can someone throw me a hint or link or something?
--
Josh English -- Lexiphanic Lethomaniac
eng### [at] spiritone com
The POV-Ray Cyclopedia http://www.spiritone.com/~english/cyclopedia/
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) |
Thanks, Warp. It's a good summary, and it sounds like a procedure I dont' want to
explore, or I'll try to figure it out mathematically
Josh
Warp wrote:
> The ideology in scanline rendering is completely different from raytracing.
>
> In raytracing the program "shoots" rays from the camera towards the scene
> and sees what does it hit (this allows, among other things, the objects to
> be mathematical functions, not necessarily polygons).
>
> In scanline rendering the process is completely different (this is a very
> simple explanation; the actual process used by current scanline renderers is
> a bit more complicated):
> The scene consists entirely of polygons. Each polygon (that is, each vertex
> of each polygon) is projected on the viewing plane (the "screen"). That is,
> each 3D vertex is projected on the viewing plane thus getting 2D points
> (with depth information).
> Then the polygons are drawn as if they were just 2D polygons on screen
> (of course texturing and lighting takes into account the depth information
> and normal vectors of the vertex points).
> Hidden surface removal is (usually, but not necessarily) achieved with
> a z-buffering algorithm.
>
> Drawing 2D polygons on screen (even taking into account the depth
> information) is a lot faster than raytracing.
> Current 3D acceleration cards use purely scanline rendering.
>
> If you have heard the term "perspective correct texture mapping", it's
> very closely related to scanline rendering. It's an algorithm which is
> necessary to use when drawing the polygons in order to get correct textures.
> Explaining its idea is beyond this short text.
> Raytracing doesn't need this to get correct texturing, since the raytracing
> algorithm itself "automatically" gets the correct color in the texture.
>
> --
> char*i="b[7FK@`3NB6>B:b3O6>:B:b3O6><`3:;8:6f733:>::b?7B>:>^B>C73;S1";
> main(_,c,m){for(m=32;c=*i++-49;c&m?puts(""):m)for(_=(
> c/4)&7;putchar(m),_--?m:(_=(1<<(c&3))-1,(m^=3)&3););} /*- Warp -*/
--
Josh English -- Lexiphanic Lethomaniac
eng### [at] spiritone com
The POV-Ray Cyclopedia http://www.spiritone.com/~english/cyclopedia/
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) |
Josh English <eng### [at] spiritone com> wrote:
: Thanks, Warp. It's a good summary, and it sounds like a procedure I dont' want to
: explore, or I'll try to figure it out mathematically
Basic raytracing is pretty simple. Anyone with minimal knowledge of
programming and calculus can make a simple sphere/plane raytracer (with
reflections and refractions and simple textures).
For the count, I have seen this kind of raytracer made in PostScript (!)
in less than 20 lines (!!!).
Scanline rendering is, however, a lot harder process. It requires tons of
complicated algorithms and code. I know the basics of scanline rendering and
I'm sure that I could make a simple renderer, but it would certainly take
quite lot of time and thinking. It's so complicated, however, that I have
no inspiration in doing one. A simple raytracer would be a lot easier to make.
There's one big advantage in scanline renderers: When done well, they are
extremely fast.
That's why 3D-cards use scanline rendering.
--
char*i="b[7FK@`3NB6>B:b3O6>:B:b3O6><`3:;8:6f733:>::b?7B>:>^B>C73;S1";
main(_,c,m){for(m=32;c=*i++-49;c&m?puts(""):m)for(_=(
c/4)&7;putchar(m),_--?m:(_=(1<<(c&3))-1,(m^=3)&3););} /*- 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) |
|
![](/i/fill.gif) |
Warp wrote:
> Josh English <eng### [at] spiritone com> wrote:
> : Thanks, Warp. It's a good summary, and it sounds like a procedure I dont' want to
> : explore, or I'll try to figure it out mathematically
>
> Basic raytracing is pretty simple. Anyone with minimal knowledge of
> programming and calculus can make a simple sphere/plane raytracer (with
> reflections and refractions and simple textures).
> For the count, I have seen this kind of raytracer made in PostScript (!)
> in less than 20 lines (!!!).
By brother told me of a competition where groups of programmers have a small set time
to produce a program, and the latest one was a raytracer, but I'm still waiting for
him
to send me the link.
> Scanline rendering is, however, a lot harder process. It requires tons of
> complicated algorithms and code. I know the basics of scanline rendering and
> I'm sure that I could make a simple renderer, but it would certainly take
> quite lot of time and thinking. It's so complicated, however, that I have
> no inspiration in doing one. A simple raytracer would be a lot easier to make.
Yeah,to program a scan line as you described, I would take a group of polygons in
3space, convert them to a new 3space based on the camera definition, then project it
onto an "image plane" and get some 2d coordinates. A lot of hard work and hours of
debugging for a small thing.
--
Josh English -- Lexiphanic Lethomaniac
eng### [at] spiritone com
The POV-Ray Cyclopedia http://www.spiritone.com/~english/cyclopedia/
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) |
Josh English <eng### [at] spiritone com> wrote:
: Yeah,to program a scan line as you described, I would take a group of polygons in
: 3space, convert them to a new 3space based on the camera definition, then project it
: onto an "image plane" and get some 2d coordinates. A lot of hard work and hours of
: debugging for a small thing.
Don't forget implementing a z-buffer for hidden-surface removal (sorting
the polygons in depth-order is not always enough).
You'll also need to implement either a gouraud-shading (quite poor-looking)
or a phong-shading (much better) algorithm to shade your polygons. Else they
will just look flat and cartoony.
And if you want even the simplest textures, you'll have to use perspective
correction if you want them right.
In raytracing all those things are achieved with a lot less effort
(besides getting reflection and refraction at almost no extra cost).
--
char*i="b[7FK@`3NB6>B:b3O6>:B:b3O6><`3:;8:6f733:>::b?7B>:>^B>C73;S1";
main(_,c,m){for(m=32;c=*i++-49;c&m?puts(""):m)for(_=(
c/4)&7;putchar(m),_--?m:(_=(1<<(c&3))-1,(m^=3)&3););} /*- 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) |