Help Visibility test for texture mapping

Hi to all

I am a newbie to computer graphics so please excuse my ignorance. I have
a 3D mesh of a scanned object, and I have images taken from heaps of
known positions. I am currently doing a simple texture mapping procedure
which results in a simple vrml file. This is done offline using C++. The
output is a vrml file with a list of facets, where each facet is mapped
to a portion of an image

Currently the texture mapping process is simply: for each facet

- finds list of images (ie camera postions) where facet is facing camera (ie
backface culling)

- filters the list of images to keep the ones where the angle between
camera and facet's normal is less than a given threshold.

For now the winner image is simply the one that is most normal to the facet.

For most facets, the results are acceptable, but I need to develop this
further, since some facets are mapped to incorrect images due to
occlusion. Now I need to test for visibility (occlusion
culling). I have been doing some reasearch and seems like z-buffer is
the way to go (ie the most common) (please correct me if that's
wrong). But I am not sure I fully understand it. It seems like
for each image
for each pixel
find depth of closest 3D point (on a facet)

But I am sort of lost how does that help in texture mapping. In the end
of my visibility filter, I want for each facet, a list of images where
the whole facet is visible, I will then chose the winner based on some
other future defined criteris. I fail to see how using z -buffer will
tell me whether a facet is fully visible in an image. I might be
mistaken but is z-buffer used mainly to create an image from a new
viewpoint using existing images (I am not interested in that). I would
appreciate any help in clarifying how having a z buffer for each image
will help in deciding whether a facet is fully visible in that image.Is
ray tracing more suitable for my application

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!