thoughts on visibility added thoughts

thoughts on visibility added thoughts

Post by rish » Fri, 14 Mar 2003 23:19:20



Hi sorry to add this later but it struck me just now...
this is about finding the visibility sets given viewpoint and position
of the camera.
the idea is to exploit spatial coherence...

1)Take the  scene bound it in a bounding sphere
2)Stand on the surface of a concentric sphere with infinite radius
3)take any random direction and find all the visible triangles.
4)move on the sphere.
5)use the prev calculated set of triangles to trivially reject all the
other triangles if possible.
6)If no triangle in the hidden set is visible we move on
7)otherwise recalculate the visible set again..we can use some
optimizations here.
8) note that moving in the direction of view will only reduce the
number of visible triangles from the precalculated set. So we can
reuse the set to do depth wise visibility sector determination.
9) Its my hope that the number of visibility sectors formed although
they look infinite might actually be much smaller.
this is where the spatial coherency assumption is used.
These steps are done on preprocess time. We can then move around
during runtime to find use the visible set info to render.
10) There can be methods possible to delta encode the visibility
information for each sector for reducing memory requirements.
11) If error in scene is allowed then we need not make the new sector
when a new triangle is added but only if the projected area of the new
triangles add to be greater that a user defined tolerance.

These are thoughts that struck me..and in case people have already
worked on similar themes please do tell me so that i can refer those
works..
Note that frustum culling and backface removal are inbuilt so no
special methods need to be employed..
-rishi

 
 
 

thoughts on visibility added thoughts

Post by Hans-Bernhard Broeke » Sat, 15 Mar 2003 01:05:48



> 5)use the prev calculated set of triangles to trivially reject all the
> other triangles if possible.

It isn't.  Deciding whether a triangle invisible from the previous
view direction is still invisible from the next one is every bit as
hard as determining its visibility from scratch, if all you stored is
the list of visible triangles.

Quote:> 8) note that moving in the direction of view will only reduce the
> number of visible triangles from the precalculated set.

Wrong.  Coming closer to an object that has cave-ins can make some
previously back-facing faces visible.  Think of physical model of a
view frustum, straight in front of the observer.  From far away, you
can only see the outside.  But as you come closer, you can eventually
see the interiors of the walls, too.

Quote:> 9) Its my hope that the number of visibility sectors formed although
> they look infinite might actually be much smaller.

It isn't.  It's actually larger than the number of polygons, for
generic scenes.  Adding one face to any object of the scene will cut
many of the previous visibility sectors in two.  So in the end, you'll
end up with roughly O(n^2) visibility sectors for generic scenes of n
triangles.

What you're doing is known as the PVS technique, for "potentially
visible set".  It can be used to save a lot of rendering time, mainly
for in-door environments.  But it's not generally feasible for or more
"open" scenery.
--

Even if all the snow were burnt, ashes would remain.

 
 
 

thoughts on visibility added thoughts

Post by rish » Sat, 15 Mar 2003 17:40:38




> > 5)use the prev calculated set of triangles to trivially reject all the
> > other triangles if possible.

> It isn't.  Deciding whether a triangle invisible from the previous
> view direction is still invisible from the next one is every bit as
> hard as determining its visibility from scratch, if all you stored is
> the list of visible triangles.

Well what i intend to do is to form a view volume using the prev set
of visible triangles but using the new viewpoint/position.If all the
hidden triangles are still hidden then we have nothing to do.Otherwise
some rigorous calculations may be required. Also note that when we
move small distances the places changes will occur only in the
periphery of the projected areas of the prev visible set.
Quote:

> > 8) note that moving in the direction of view will only reduce the
> > number of visible triangles from the precalculated set.

> Wrong.  Coming closer to an object that has cave-ins can make some
> previously back-facing faces visible.  Think of physical model of a
> view frustum, straight in front of the observer.  From far away, you
> can only see the outside.  But as you come closer, you can eventually
> see the interiors of the walls, too.

Yeah i was talking about the case where we still havent crossed the
geometric boundaries of the scene.If you go inside the body then :)
Quote:

> > 9) Its my hope that the number of visibility sectors formed although
> > they look infinite might actually be much smaller.

> It isn't.  It's actually larger than the number of polygons, for
> generic scenes.  Adding one face to any object of the scene will cut
> many of the previous visibility sectors in two.  So in the end, you'll
> end up with roughly O(n^2) visibility sectors for generic scenes of n
> triangles.

you may be correct . But i am hoping to find that out. Its to be found
out yet.
Its like quantization. In totality a continuum is required to
represent the model with zero errror but with marginable errors we can
significantly reduce the overhead by discretizing. Although i may be
wrong totally.
Quote:

> What you're doing is known as the PVS technique, for "potentially
> visible set".  It can be used to save a lot of rendering time, mainly
> for in-door environments.  But it's not generally feasible for or more
> "open" scenery.

My target is not the * or walkthroo env where occlusion culling
is usually applied but cad/cam models which are large.
-rishi
 
 
 

thoughts on visibility added thoughts

Post by Hans-Bernhard Broeke » Sat, 15 Mar 2003 20:49:55



> Well what i intend to do is to form a view volume using the prev set
> of visible triangles but using the new viewpoint/position.If all the
> hidden triangles are still hidden then we have nothing to do.Otherwise
> some rigorous calculations may be required.

Checking through all previously hidden triangles to see if they're
still hidden _is_ a rigorous calculation already.  Note that on
average, there are a lot more invisible polygons than visible ones
(half of all will be back-facing, and then there's occlusion).

Quote:> Also note that when we move small distances the places changes will
> occur only in the periphery of the projected areas of the prev
> visible set.

Not true if you're dealing with generic scenery, including non-convex
objects.  At the very minimum, you would have to keep track of all
polygons on the invisible side of all silhouette edges.  The planes of
all these polygons form a constant PVS region.  As soon as you cross
any of these planes, the polygon defining it will usually become
visible.

Either that, or your definition of "periphery" is rather unusual.

Note that this doesn't even begin to handle indirect occlusion,
either.  I.e. polygons creeping into visibility around some other
polygons' edges they're not directly connected to.  Think of passing
an open door --- suddenly, all kinds of previously invisible details
in the room behind that door will spring into visibility.

Quote:>> > 8) note that moving in the direction of view will only reduce the
>> > number of visible triangles from the precalculated set.

>> Wrong.  Coming closer to an object that has cave-ins can make some
>> previously back-facing faces visible.  Think of physical model of a
>> view frustum, straight in front of the observer.  From far away, you
>> can only see the outside.  But as you come closer, you can eventually
>> see the interiors of the walls, too.
> Yeah i was talking about the case where we still havent crossed the
> geometric boundaries of the scene.If you go inside the body then :)

Geometric boundaries of the scene has nothing to do with it.  That
frustum I was talking about is an abstract example case, _not_ the
actual view frustum.

--

Even if all the snow were burnt, ashes would remain.

 
 
 

1. thoughts on visibility culling

Hi all
i need to improve the rendering speeds of an opengl viewer system.
priliminary tests(feedback from the framebuffer shows a great
potential for occlusion culling algorithms).The thought process that
followed the priliminary research were as follows..
1) occlusion culling on a hardware rendered system is useful only if
the scene size is large. This is because we can only exploit the
linear nature of z-buffer and not its speed.
2) For any given large scene we found that there is always a
possibility of doing occlusion culling.
3)It would be efficient to partition the scene to spatial regions as
then we can probably do chunk removal operations while view frustum
culling etc.
4)The memory efficiency should be taken into account as the input
scene is itself large and we cannot help it by multiplying the size by
an equivalent factor.
5)Space partitioning is probably best done on a spatial criterion
rather than usually done..usual mechanism is polygon density.
6) If we can get a z-sorted list of polygons it will be nice. BSP is
good for this..
7) Heirarchial Z pyramid, polygon tiling using coverage masks are like
image space quad-tree variation. More importantly has anybody tried to
subdivide the image space by inserted z-sorted polygons. It looks
attractive but what are  the catches..i am assuming no free rides.
8) the one normalizing factor in the scene polygon is the apparent
area.
that is projected polygon area* inverse-function of distance from the
viewer.
So our aim must be to quickly find out the decreasing sorted apparent
area polygons given a viewpoint and position in space.
thanks a lot
any help suggestions feedbacks are trully welcome
rishi

2. New Mac 5.6 upgrade files: description

3. Your thoughts : Desktop Pub. Career Opportunities

4. Humanoid: Does it comes functional with bones & IK?

5. Industry War Story (Your thoughts?)

6. 24" Epson 7 Color FINE ART Giclee printer

7. Privacy and anonymity, your thoughts please!

8. Looking for MPEG newgroup.

9. Your thoughts on this intro ? please

10. Thoughts on SGI/Sun vs NT?

11. Thoughts on Illustrator for Windoze

12. What are your thoughts