Changeset 366 for experimental/distortionNG/main.cpp
- Timestamp:
- May 13, 2012, 6:21:34 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
experimental/distortionNG/main.cpp
r362 r366 149 149 * modul Funktionen / Description 150 150 * 151 * [postponed] plugin .dist load / Save distContainers loads and saves via serializers the distortion container from/to file. 151 * [] plugin .dist load / Save distContainers loads and saves via serializers the distortion container from/to file. 152 * Ensures the Coordinates are normalized before saving the container. 153 * Load: 154 * * use serializer to load container 155 * * invoke osgViewer::setUpViewForManualDistortion(distSet, screenNum, projectorMatrix) to set up distortion 156 * Save: 157 * * check if container is normalized. if not, copy and normalize container 158 * * use serializer to save container 152 159 * 153 160 * 154 * [done] Distortion Container Beinhaltet die folgenden Distortion Details: 161 * [done] Distortion Container Der Container wird immer normalisiert gespeichert, alle Koordinaten (Mesh+TexCoords) werden im Range [0-1]angespeichert. 162 * Er beinhaltet die folgenden Distortion Details: 155 163 * - Blendmap (osgImage) 156 164 * - Mesh Dimensions (rows, columns) 157 165 * - Mesh Type (GLenum QUAD_STRIP, ...) 166 * - Mesh Coordinates [0-1] 167 * - Texture Coordinates [0-1] 158 168 * - textureUnit for Scene RTT (z.B.: 0) 159 169 * - textureUnit for blendmap (z.B.: 1) 160 170 * - screenNum 161 * - slaveCam projectionOffset (wird mit der vom master multipliziert und auf die slave cam angewendet, meist identity)171 * - slaveCam projectionOffset (wird mit der vom master multipliziert und auf die slave cam angewendet, meist Identity) 162 172 * - slaveCam viewOffset (wird mit der vom master multipliziert und auf die slave cam angewendet, verwendet für translation und rotation offset) 163 173 * 164 174 * need to add setter/getter as well as the serializer macros. 165 175 * 166 * Besitz: Da osgViewer distSets ohne Manipulationsmöglichkeit konsumieren können soll, muss der COntainer vom Vierwer verwaltet werden. 167 * 168 * osgViewer load and apply distortion (apply via setupDistortion(...) 169 * setUpIntensityMapBlending(string filepath, int rrtTexUnit=1, int scenTexUnit=0): simple function providing a file path, and optionally the texUnits to use. Wil invoke the more detailed funtion for setup. 176 * Besitz: Da osgViewer distSets ohne Manipulationsmöglichkeit konsumieren können soll, muss der Container vom Viewer verwaltet werden. der manipulator greift darauf zu, das plugin kann container entgegen nehmen oder zurückgeben, hat aber keinen direkten kontakt zur container instanz von osgViewer 177 * 178 * osgViewer im construtor (anfangs ersatzweise in der main.cpp) : -dist <distFile> => load and apply distortion [via setUpViewForManualDistortion(std::string distFile)] 179 * setUpIntensityMapBlending(string filepath, int rrtTexUnit=1, int scenTexUnit=0): Simple function providing a file path, and optionally the texUnits to use. 180 * Will invoke the more detailed funtion (below) for setup. 170 181 * setUpIntensityMapBlending(osg::StateSet* stateset, osg::Image* intensityMap, unsigned int screenNum, int rttSceneTextureUnit, int intensityMapTextureUnit) 171 * 182 * setUpViewForManualDistortion(osgViewer::DistortionSet* distSet, unsigned int screenNum, const osg::Matrixd& projectorMatrix) 183 * setUpViewForManualDistortion(std::string distFile, unsigned int screenNum, const osg::Matrixd& projectorMatrix) is invoked by -dist <distFile>, reads distSet via osgDB::readObjectFile(), calls setUpViewForManualDistortion(osgViewer::DistortionSet* distSet, unsigned int screenNum, const osg::Matrixd& projectorMatrix) to setup the distortion. 172 184 * 173 185 * distortionManipulator abgeleitet von osgGA::GUIEventHandler 174 186 * Grundfunktionen: 175 187 * [done] - Key to Show Distortion Mesh / Intensity Map / none 176 * - Key to Save distortion Container - via plugin188 * - Key to Save distortion Container - via osgDB::writeObjectFile(const osg::Object& object, const std::string& filename, const Options* options). osgDB & registry determines and loads the approriate plugin bythe file ending (.dist). 177 189 * [.] - Key to toggle MANUAL mode between blending und distortion setup 178 190 * [done] - Key to toggle distortion setup: … … 196 208 * direct to do: 197 209 * 198 * speichern des containers in ein .dist file 210 * Plugin fertigstellen 211 * save funktion des manipulators via osgDB::writeObjectFile fertig stellen 212 * extViewer::setUpViewForManualDistortion(std::string distFile) 213 * Load Funktion vom osgViewer (ersatzweise Anfangs in der main.cpp) fertigstellen : -dist <distFile> weiterreichen and extViewer::setUpViewForManualDistortion(std::string distFile) 199 214 * Laden des Containers. 200 * reset distortion funktioniert.215 * reset distortion implementieren. 201 216 * Anwenden der distortion auf die Meshknoten oder die texturekoordinaten 202 217 * 203 * - umstellung der koordinaten auf [0-1]204 * oder alternativ:205 * - speichern der hieght und width im container so daß das mesh an andere Bildschirmgrößen angepasst werden kann.206 207 218 * 208 219 */
Note: See TracChangeset
for help on using the changeset viewer.