Nawar
01-29-2009, 05:19 PM
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.
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
occlusuion. 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 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.
By the way I am using C++ to write my code
Thanks
Nawar
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.
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
occlusuion. 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 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.
By the way I am using C++ to write my code
Thanks
Nawar