Aaron Rolett
2006-06-23 01:28:09 UTC
Hello All,
I'm currently working on writing a panorama viewer in OpenSceneGraph
to view very large (multi-gigapixel images). I can't fit the entire
image in computer memory at once and am currently using PagedLOD to
bring in the more detailed images of the panorama.
The problem I'm having -- currently the point at which the next level
of detail varies with the field of view of the camera and the size of
the overall panorama. What I really need to do is figure out how to
bring in the more detailed panorama information based on the amount of
amount of pixels on the screen. I've been looking through the LOD
source code and have noticed that there is a setRangeMode() function
that can be set to PIXEL_TO_SCREEN_SIZE.
The problem: I don't understand how the LOD range is calculated when
working in PIXEL_TO_SCREEN_SIZE mode. How does LOD determine when to
bring in the next level / how does one typically calculate the ranges
used for LOD? Thus far, all the numbers I am using have just been
empirically determined.
Currently I am just setting the range with
pagedlod->addChild(tile, cut_off_distance, max_visible_distance);
pagedlod->setRange(1, 0.0f, cut_off_distance);
Thanks in advance,
Aaron
I'm currently working on writing a panorama viewer in OpenSceneGraph
to view very large (multi-gigapixel images). I can't fit the entire
image in computer memory at once and am currently using PagedLOD to
bring in the more detailed images of the panorama.
The problem I'm having -- currently the point at which the next level
of detail varies with the field of view of the camera and the size of
the overall panorama. What I really need to do is figure out how to
bring in the more detailed panorama information based on the amount of
amount of pixels on the screen. I've been looking through the LOD
source code and have noticed that there is a setRangeMode() function
that can be set to PIXEL_TO_SCREEN_SIZE.
The problem: I don't understand how the LOD range is calculated when
working in PIXEL_TO_SCREEN_SIZE mode. How does LOD determine when to
bring in the next level / how does one typically calculate the ranges
used for LOD? Thus far, all the numbers I am using have just been
empirically determined.
Currently I am just setting the range with
pagedlod->addChild(tile, cut_off_distance, max_visible_distance);
pagedlod->setRange(1, 0.0f, cut_off_distance);
Thanks in advance,
Aaron