Changes between Version 4 and Version 5 of Community/Tasks/OsgSPICLOPS

Show
Ignore:
Timestamp:
07/10/07 18:17:51 (7 years ago)
Author:
martin (IP: 81.178.2.19)
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Community/Tasks/OsgSPICLOPS

    v4 v5  
    3030Really all you need to add are the objects and methods (outside of main()) from osgSpiclops.cpp to your app. Insert the code in lines 331-345 into the appropriate part of your Viewer setup. You will already have a realize() call. Beware of single-threaded caveat mentioned in the comment (see below). 
    3131 
    32 SPI-specific parameters are set to constants in initSpiclops() using calls to spiSetChanOrigin, spiSetChanSize, spiSetChanFOV, spiSetChanTessLevel. Number of channels (and therefore channel configuration) is set to a constant 3 via numChannels on line 329. Projection method (defaults to SPI_PF_NORMAL) is set on line 333 in the creation of the InitSpiclopsCallback. Different methods seem to work better or worse on different hardware. Try different variations. 
     32SPI-specific parameters are set to constants in initSpiclops() using calls to spiSetChanOrigin, spiSetChanSize, spiSetChanFOV, spiSetChanTessLevel. Number of channels (and therefore channel configuration) is set to a constant 3 via numChannels on line 329. Projection method (defaults to SPI_PF_NORMAL) is set on line 333 in the creation of the !InitSpiclopsCallback. Different methods seem to work better or worse on different hardware. Try different variations. 
    3333 
    3434=== Known Issues === 
     
    4040 * CXH: Turning on Framerate statistics crashes the program on exit. Not sure why. 
    4141 * CXH: Billboards read their orientation from the real view vector for each SPICLOPS sub-channel rather than from the intended Camera view vector. This means that they may exhibit erroneous behaviour when crossing channel boundaries, especially between the side and top channels. 
    42  * CXH: The original code was not designed to handle channels=1. I haven't had a chance to migrate the changes from my codebase to the demo codebase yet. I am Attaching the diffs from my codebase, while the line numbers are wrong, the changes should still be relevant to the original demo code, but you'll have to make the changes by hand. [attachment:SingleChannelDifs.zip 
    43  *CXH: The original code also improperly turns off near/far computation. Instead of the existing setComputeNearFarMode call, you must instead viewer-> 
     42 * CXH: The original code was not designed to handle channels=1. I haven't had a chance to migrate the changes from my codebase to the demo codebase yet. I am Attaching the diffs from my codebase, while the line numbers are wrong, the changes should still be relevant to the original demo code, but you'll have to make the changes by hand. [attachment:SingleChannelDifs.zip SingleChannelDifs.zip] 
     43 * CXH: The original code also improperly turns off near/far computation. Instead of the existing setComputeNearFarMode call, you must instead viewer-> 
    4444{{{ 
    4545getCullSettings().setComputeNearFarMode(osgUtil::CullVisitor::DO_NOT_COMPUTE_NEAR_FAR);