From 326bb0dbe4a9fc182aa6fdd9551ad9e43a25bd8d Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Wed, 17 Nov 2004 12:58:50 +0000 Subject: [PATCH] Moved the main documentation onto the wiki website, and removed from the OpenSceneGraph distribution --- NEWS.txt | 22 + README.txt | 10 +- .../DesignPatterns/DesignPatterns.gif | Bin 13445 -> 0 bytes .../DesignPatterns/DesignPatterns.html | 16 - doc/MindMaps/Mission/Mission.gif | Bin 15825 -> 0 bytes doc/MindMaps/Mission/Mission.html | 16 - doc/UML/osg.png | Bin 70519 -> 0 bytes doc/UML/osgutils.png | Bin 21871 -> 0 bytes doc/data.html | 55 --- doc/documentation.html | 123 ----- doc/examples.html | 212 -------- .../OpenSceneGraphBanner_Distribution.jpg | Bin 36951 -> 0 bytes doc/images/hangglide.jpg | Bin 2504 -> 0 bytes doc/images/osgbillboard.jpg | Bin 1449 -> 0 bytes doc/images/osgcube.jpg | Bin 1632 -> 0 bytes doc/images/osghud.jpg | Bin 4057 -> 0 bytes doc/images/osgimpostor.jpg | Bin 3700 -> 0 bytes doc/images/osgreflect.jpg | Bin 2886 -> 0 bytes doc/images/osgscribe.jpg | Bin 5283 -> 0 bytes doc/images/osgstereoimage.jpg | Bin 2763 -> 0 bytes doc/images/osgtext.jpg | Bin 5499 -> 0 bytes doc/images/osgtexture.jpg | Bin 2220 -> 0 bytes doc/images/osgviewer_cow.jpg | Bin 1970 -> 0 bytes doc/images/osgviewer_stereo.jpg | Bin 1949 -> 0 bytes doc/images/osgwindows.jpg | Bin 3079 -> 0 bytes doc/index.html | 99 ---- doc/install.html | 344 ------------- doc/introduction.html | 462 ------------------ doc/osgdem.html | 373 -------------- doc/osgviewer.html | 290 ----------- doc/plan.html | 77 --- doc/stereo.html | 229 --------- index.html | 116 ----- 33 files changed, 28 insertions(+), 2416 deletions(-) delete mode 100755 doc/MindMaps/DesignPatterns/DesignPatterns.gif delete mode 100755 doc/MindMaps/DesignPatterns/DesignPatterns.html delete mode 100755 doc/MindMaps/Mission/Mission.gif delete mode 100755 doc/MindMaps/Mission/Mission.html delete mode 100644 doc/UML/osg.png delete mode 100644 doc/UML/osgutils.png delete mode 100644 doc/data.html delete mode 100644 doc/documentation.html delete mode 100644 doc/examples.html delete mode 100644 doc/images/OpenSceneGraphBanner_Distribution.jpg delete mode 100644 doc/images/hangglide.jpg delete mode 100644 doc/images/osgbillboard.jpg delete mode 100644 doc/images/osgcube.jpg delete mode 100644 doc/images/osghud.jpg delete mode 100644 doc/images/osgimpostor.jpg delete mode 100644 doc/images/osgreflect.jpg delete mode 100644 doc/images/osgscribe.jpg delete mode 100644 doc/images/osgstereoimage.jpg delete mode 100644 doc/images/osgtext.jpg delete mode 100644 doc/images/osgtexture.jpg delete mode 100644 doc/images/osgviewer_cow.jpg delete mode 100644 doc/images/osgviewer_stereo.jpg delete mode 100644 doc/images/osgwindows.jpg delete mode 100644 doc/index.html delete mode 100644 doc/install.html delete mode 100644 doc/introduction.html delete mode 100644 doc/osgdem.html delete mode 100644 doc/osgviewer.html delete mode 100644 doc/plan.html delete mode 100644 doc/stereo.html delete mode 100644 index.html diff --git a/NEWS.txt b/NEWS.txt index 49bd4b1f9..995a9dff3 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -1,6 +1,28 @@ OSG News (most significant items from ChangeLog) ================================================ +16th November 2004 - OpenSceneGraph-0.9.8 + + >>> Support for database archives, improved pager, 3d compressed textures + + Database archives. + + Improved pager support with better multi-processor stability and constant frame rate + peformance. + + STL import. + + Spelling and typo correction blitz on osg, osgDB and osgUtil libraries. + + NodeTrackManipulator improved. + + General bug fixes. + + New examples: + osgplanets + osgspotlight + osglauncher + 18th August 2004 - OpenSceneGraph-0.9.7-2 Build fixes for VisualStudio6.0. diff --git a/README.txt b/README.txt index fbf878ce8..5282129ef 100644 --- a/README.txt +++ b/README.txt @@ -1,9 +1,11 @@ Welcome to the OpenSceneGraph (OSG). -For information on the project, this distribution, how to compile and -run libraries and examples, and for documention open up index.html -in your perfered html browser. +For up to date information on the project, how to compile and run libraries +and examples, and see the documentation on the OpenSceneGraph website. + + http://www.openscenegraph.org + Robert Osfield. robert@openscenegraph.com -April 2002. +November 2004. diff --git a/doc/MindMaps/DesignPatterns/DesignPatterns.gif b/doc/MindMaps/DesignPatterns/DesignPatterns.gif deleted file mode 100755 index 9c6171bba1b6fe559c5eafc8a6fa563ce780c23b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13445 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 Jh53Q+e*i`DiD&=- diff --git a/doc/MindMaps/DesignPatterns/DesignPatterns.html b/doc/MindMaps/DesignPatterns/DesignPatterns.html deleted file mode 100755 index bd61be938..000000000 --- a/doc/MindMaps/DesignPatterns/DesignPatterns.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -Design Patterns - - - - -
- - - - - diff --git a/doc/MindMaps/Mission/Mission.gif b/doc/MindMaps/Mission/Mission.gif deleted file mode 100755 index fba220ba62d6c0734e078e9e984659f048527532..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15825 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 uegnip9mh(OR!@`5N?Te_Tf<7%Qcu^zN - - - - -Mission - - - - -
- - - - - diff --git a/doc/UML/osg.png b/doc/UML/osg.png deleted file mode 100644 index 7cd87b08e5330b363ac29fa42e50b49b29c6a04b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70519 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 D;iFo4 diff --git a/doc/UML/osgutils.png b/doc/UML/osgutils.png deleted file mode 100644 index c165859f086f04ea4e2f44169832f3baac5eb01b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21871 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 UvrQ%vSOXGlb@kj*=n|CpZ}M!vxBvhE diff --git a/doc/data.html b/doc/data.html deleted file mode 100644 index 0c0907b3d..000000000 --- a/doc/data.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - Data sources - - - - - - - - - - - - - - - - - - - - -
Index Introduction Contents Install Dependencies examples Data Viewer Stereo osgdemPlan Reference Guides
-

Data Sources

-
- - - diff --git a/doc/documentation.html b/doc/documentation.html deleted file mode 100644 index ad006f204..000000000 --- a/doc/documentation.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - OSG Documentation - - - - - - - - - - - - - - - - - - - - -
IndexIntroductionContentsInstallDependenciesexamplesDataViewerStereoosgdemPlanReference Guides
-

Reference Guides

-The documentation on the OSG is still in its early stages, and far from -complete. If you can't find your answers in what documentation there -currently is, please feel free to post the question on the OSG mailing -list. -

Reference guides (automatically generated using doc++)

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
osg/core scene graph
-
osgUtil/utilitiy library
osgDB/database library
-
osgParticle/Nodekit with Particle support
-
osgText/Nodekit with text support
-
osgTerrain/
-
Nodekit with support -generating large scale geospatial paged databases
osgSim/Nodekit for visual simulation
-
osgFX/Nodekit which adds support for -special effects
-
osgGL2/
-
Nodekit with OpenGL2 support
-
osgGA/utility library for adapting -Windowing events etc
-
osgProducer/windowing/viewer library built -ontop of OpenProducer
-
-
-

UML Diagrams

-
osg    -            UML diagram of -the osg core library
- osgUtil     -    UML diagram of the osg utilities library
-

-

Mind Maps

-
Design -Pattern used in the OSG.
- Mission Statement for OSG.
-

- - diff --git a/doc/examples.html b/doc/examples.html deleted file mode 100644 index 4ae5847ae..000000000 --- a/doc/examples.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - - - examples - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IndexIntroductionContentsInstallDependenciesexamplesDataViewerStereoosgdemPlanReference Guides
- -

-Running the examples

-Once the OpenSceneGraph is installed you will -need place the location where it was installed on the you systems paths -environmental variables, and then download the demo -data and set the OSG_FILE_PATH so that the file loading can -locate the datasets. It is probably worth setting you autoexec.bat, .bashrc -or.tcsh etc to pick up on these settings so that next time you log in everything -is in easy reach. -
  • -Windows:
  • - -
      set PATH = C:/all/the/exisitng/paths;C:/OpenSceneGraph/bin -
      set OSG_FILE_PATH = C:/OpenSceneGraph-Data;C:/OpenSceneGraph-Data/Images
    - -
  • -Unix
  • - -
      export PATH = ${PATH}:/home/myaccount/OpenSceneGraph/bin -
      export LD_LIBRARY_PATH = ${LD_LIBRARY_PATH}:/home/myaccount/OpenSceneGraph/lib -
      export OSG_FILE_PATH = /home/myaccount/OpenSceneGraph-Data:/home/myaccount/OpenSceneGraph-Data/Images -
      or -
      setenv PATH ${PATH}:/home/myaccount/OpenSceneGraph/bin -
      setenv LD_LIBRARY_PATH = ${LD_LIBRARY_PATH}:/home/myaccount/OpenSceneGraph/lib -
      setenv OSG_FILE_PATH /home/myaccount/OpenSceneGraph-Data:/home/myaccount/OpenSceneGraph-Data/Images
    - -
  • -MacOSX:
  • - -
      setenv PATH "${PATH}:${OSGHOME}/lib:${OSGHOME}/lib/osgPlugins" -
      setenv DYLD_LIBRARY_PATH "${OSGHOME}/lib:${OSGHOME}/lib/osgPlugins" -
      setenv DYLD_BIND_AT_LAUNCH -
      setenv OSG_FILE_PATH "/home/myaccount/OpenSceneGraph-Data:/home/myaccount/OpenSceneGraph-Data/Images"
    - -All the demos run on the commandline, most requiring parameters, such as -what file to load, if you are in any doubt just run the application and -it will either run, or provide help on what options it accepts. -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    osgviewer cow.osgThe scene graph viewer demo uses osgProducer::Viewer to bring up a basic -viewer. To find out what command line arguments it takes simply run osgviewer -without any arguments. To load a model simple run osgviewer filename.ext. The -osgProducer::Viewer provides an extensive set of operations that can be used -to display information about the loaded database such as performance stats, -through to output a snapshot of the screen, which is how these thumbnails -were created. For a full list of key presses and mouse interaction read -the osgviewer documentation.
    osgviewer --stereo cessna.osgThe scene graph viewer also supports anaglyphic, quad buffered, and -split screen stereo modes, for a full list of options and environmental -variables see the stereo documentation.
    hangglideThe hang glide demo creates a simple flying site (Don Burns local hang -glide site in fact!), demonstrating how to create simple terrain, trees -and skydomes, and how to implement a simple flight camera manipulator to -allow the user to fly around. 
    osgbillboard lz.rgbDemonstrates how to create the various types of billboard supported -by the OpenSceneGraph. Billboards are typically used for trees or particles -effects. 
    osghud glider.osgVery similar to the basic osgviewer demo, but adds an orthographic projection -over the top of the main 3D view to create a head up display effect. Also -demonstrates how to use osgText. .
    osgimpostor Town.osgOpenSceneGraph is unique among scene graph in the fact that it supports -dynamically updated impostors natively, and this demo uses osgUtil::InsertImpostorVisitor -to traverse the loaded scene graph inserting osg::Importor nodes in place -of groups and LOD, so you can add Impostor into any of your own datasets! -The scene graph then takes over full responsibility for managing required -multistage rendering all dynamically at runtime, whilst keeping it neatly -encapsulated making it incredible easy to use. The Impostor support demonstrates -how powerful the multi-stage multi-pass rendering framework that the OpenSceneGraph -has, almost all other scene graphs have to hardwire such effects into them -and require significant application coding to do so. 
    osgreflect cow.osgAn example of how to set up planar reflections using the standard multi-pass -stencil buffer algorithm. This is all handled within the scene graph, so -there is no need to hardwire multi-pass effects into your own application. -.
    osgscribe.cow.osgAn example of how to decorate your scene graph geometry for useful -effects such as scribing. This demo uses two instances of your model, the -first one uses the state values set in your scene graph, the second instance -override the polygmode to render it as wireframe, and with a polygon offset -to ensure it is seen from all angles. These two instance are grouped together -and then are treated like any other scene graph. 
    osgstereoimage left.rgb right.rgbAn example of use node maks to select different parts of the scene -graph for different traversals, in this case two separate images are drawn -for the left and right eyes to generate a stereo 3D image from two flat -images! .
    osgtextAn example showing how to creating the various different typs of text -that the osgText library supports. 
    osgtexture lz.rgb reflect.rgbAn example showing how to creating the textured quads, each with different -texture parameters, including anisotrophic filtering and texture compression! 
    osgwindows cow.osgAn example of multiple windows all running at once. 
    - - - diff --git a/doc/images/OpenSceneGraphBanner_Distribution.jpg b/doc/images/OpenSceneGraphBanner_Distribution.jpg deleted file mode 100644 index 2184c0b2019be68802777522fd09276612cb61be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36951 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 diff --git a/doc/images/osgbillboard.jpg b/doc/images/osgbillboard.jpg deleted file mode 100644 index ad1a2fe7fc5b761cf1ffeb105a9535f823ce687d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1449 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!{;uIMSGJC7IkSbkd7~3E|GN(Iqb-HqyNv= z$xq|{+Ez+DHks`i+jC}hm{jStr3FgcI<_kqKYr?8R9#|v_vJpp%Wn!k_isJ@TH&XA zT=y5-&zH9*-e!JSFH$@6iQ1(Cwr9%k=Jiw_XIEC=R`G1(w^QMPcgifYG!|`F(OA^Q zfWWh2_^hAHg!nDdTzzuNqI-u|&dZYDb>N@Lnnf;JRZ{EBR=hC(a(r)bQuZm%qS99} z3bU_l-0@YJ%a46;c^v1JJ-0JWUhwbQNI;bage}^+1oU`pUU1!DkaL?cSuiK<0{8#Qb{#>`S?|I-M9BdlJG$ z4EJ0W+Sayi>f*vp?lU)eKAuo(H>K^7MP2Oi!WaG~zn7*pOwC=h=h+ICaB*cmyTA+A zEV}e>ecu@{e^<=b9g*G|2_Ck_fp>3ixzye>!T+A+^4k$hBvhX6-65K_Tk~Sxbd@u6 zw(inWZAoT5nPks%bpcb4216BBly*jNkDZ8j?mLk{*NCPrjRhP}W+uI!RP~^AiEuu1 zhUGiMzg0nJ7A$*wvC`ga-Q}8{J?k9K$7!ECdUd5_(OSX17RRpZu-$Ol%yh=zD^g^N zg=FH1U)O@;HkK-Ke*L*CY)zg@kHP!UmYNGCOMHEQPMoQFVY=begyYLiCPd%abMU(X z_xr{ur+W%-ei!+#H`TSOu(q#kURfY{;Cz(EqTM}*fDUqW6$xO3VkQ9&g`VasQs@4i zOSU{L>QG_%Iw~ZrRMTzgx}Y-cLC2 Iv;V&d0C5{Y!~g&Q diff --git a/doc/images/osgcube.jpg b/doc/images/osgcube.jpg deleted file mode 100644 index 5779067a1bb4ec4aa266ae9651632094314f12da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1632 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!{;uIMSGJC7IkSbK(Je?tIiuy_aHx3X0Ztq z7EE$rp5&YEzxvpcj)48Y-5W!qJm34hjCpgOq2$m0wMAEtUT(WJ*JQ&~Eo-U%6^A$@ z_E#Lf++Z*NVfn2)CP$}!+);cqZB?s8U}Ml>#jb$AyZ>r;S=`*!xwk*?>4sjhX`4(} zED&&WJYf>PuENn(BtQY?j%D5^1wAKT?GL`T;%?T)V_XN@>w~|$|G3J!ZP%WB!;{Y! zTmFlmTNHNm(7ao7XVl1gojWPEuC#7--u@3}|C&}ldi8U=?4{(L5BOh33B25J%;@LD zy+7oqMuVb|@dDSU?BrDA7X>?2x2{~i>_0>0^uKeTy6?SV%zU9l{_(A8TTZYDR7ssH z(Rk{gb;!8r&YQKZts*t7`Z|7{QFHa0zc=!;{ekto za|HUQGMj&&JvmHc(GKbSu9h|-7}<>6TUrUvw3HCvO5Yjsb)Xk5{GoxVdQw85G8`CAWVoejaUq=C{pc>9;GZ zHERO@?0=B^9T*95g>PF$c6+|{61eu^aM=9AVnw0HA7<7R$JhR6P}~yyjX$dFf^~R^ z(Wy)KPCQsWKQZ~ky?Fi4n!fxqO)BIo9z0qf=vuWS#(YEX?A_^S(*@T)Msg|$v)~Omc9L1X~J`jP(Qu%@h8k0Z%ymc_PE?)Cz`A^bydiZC-+zH R2y_*71LZ45C}#hE697c{tw{g? diff --git a/doc/images/osghud.jpg b/doc/images/osghud.jpg deleted file mode 100644 index 153408e59e43a1faae3039a2ae093ea53004793a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4057 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 TObt9T&Tw(YF@j~Z#2^0!wx5F6 diff --git a/doc/images/osgimpostor.jpg b/doc/images/osgimpostor.jpg deleted file mode 100644 index 3390366863d43e6c4b2a81d3cd232dc5e5cffbe0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3700 zcmbW(XHe5$mk01)NazuyNeeX;DI$abQWcOULZmBJAW9P?AOuhdAVn~ALNf%Vg93t7 zktQ)zMUWnPClr+;N?rcXv$H$1uXgu)=H55w%$@t0`{o{x98UwMuNayb0w53ofKCcH zrULo^69WSy13eQXBO^026AP646qJ<}%FoHg&MhP$A}k~TgNaHgNQ;Wg!(p(qYBKVQ zN=PJ9L|R?@0zykc8HxDk5D+snGn5s|cj^=$LJTH`_&?{k1>j%;&_D^YRM{i;7Ds z-&a-F)YjF1_|!)JOlj}v?CSqMFgP?kGCDRhJ2$_uxU{@N`?a~Xz4Lqb&)>a&Tp$4a zZ`R5FZ`l8Eah$m5AP_Kw@gEn64tuh|91wajB?eAi3q}VFmpCGniCZu6bww*PT-ov` zkE3@V%NYsejO4F>X#bM^?_gp7FWG;={@XPMK*6As#{+W!7lB{%?>>T`%GEuVQaehS z(xD-+bQoImP?g8qjqvM|DI{hmyzTQ^E<@XyluA4Uf9IjB`pabM~H9T|7=-Q&-dsY>4exc zpM!=eGs%&RS9b~zlh`+KbCj&v4=g=jmAe8vj)BkuPO`U2sje%-rOi(1chXXMW{Q#W z3pPyCrlH5caN*Yvtc3K#Wgt0(4dphz=^^ghjV2+YV+&VJFe+J9)Ccv{>OZ^5#XY6I}upllFwdW1Q{+FZG3{p zJB=SPZWfc1FXeVV1bp6Cyy@$tpDp%JTIP_ktcz0&Xp^#@0C zH_M5c(NADA)GwZoFAwZ$>`UCFn&Un`Tl_JAJ@Pf=FGD)DxQaRVPJ*sG#VHzJoUzH} zvK?5q?VQI`oblrKLzp9-4sl%9CjI?pZ{#HnUvqGag2lfirBlE@+wG0E?s3e=-SVe^cZJYdesSw$Ki};Z!O=`PKnaq=fe#5(gIYi<4;n(WISq;8LwGQ5^jxKA_qU{{4 zaR8saLvs|0D4yI<3_-}O4@0uMf0Ybb+#CXd*W&cn+~3JllM^(eUuZCF zo^)80*=_%}72lP8b}e=8@?Hd)MoY*cDb|glrcDms*sUc8h*h$l)>&>92`zfupy}Y{ zd2aqHfZ)`_B(5Ckq^zzxnwr#${g&m>ha(gs~kOr4Rp&atwj4D1U@JP$Ke945YCTZ$= zKX&4DWsY*qXL-G%ZWxpZFzbYHp`LK4yy$ih@{}5X!CVd1fq+ll@BsWkVN0 zvUml6qP*Hf2kVZ$XxG=cBwoXFQ@9Uh3>5Mzv&uduQ`1K+6qGhIVC&LC-cN#1bM_DT zmg1onUlr$}!S{{B635SvI~339c|O?8(*s+xm~H zrXP9aH|%Hy^O*U;Zp!|3{5p}zw~HwLbhbsRGPTRhBrlZ)dF~`i(RsMPH?*xmXv%52 z#c9}z3$=6In=9TMc(0vj5!)+%m0dQVx4GJCB)C8_zp*!o2Luj56A#Ef2Rd2i?B({$ z(TI@6TUU$)jVVu{w#qbf1sl#OMND!7#s@z1;O>Us_2^kgf zC>mqyOD_^M5M4JGAjJ?o^vRHFexX($!K|we>{h=-ntQ#oGn?ggRjnuWZM3^!LeVp^ z$iOAyAuivA%3H@$EXWxsBNUwS1N*AXJ8bL+$}efm+Zv|Y+FK}#6UZowE9Mft$cNrSi=@2q z5ZUcJBJ`US=yRVfZ37@#0*Bt%|`V&n$vxdQvGV z0@k)ujkfXHUd;-V6Pg3cCah*X56f#^GL@@il1WX(V4;$`>l_$?e6sN?wzj{!d8#EX zd=h{!%Q(KztNxCrI&4!l-pV$&GVXkncM$s@>xE7T8@-xv)qrNQ?>8@pQOt(BvP}hV z)DtlYg>T)vY1!tpRe_l{OYv9U&?QnD8;7!F$93gm>#4}gVT~W+vT*jx+YK)p7B(Nv zOfC_e+G;pc)8N7=W;QS)Uwr%>MgZNBhv|H#k$OD-AldTIUYaUtTUK_admf= zady40zsn7!3!>IhG<5nx#)69yK-PFu6fQx;#`%+DOD=Hr=1Kj>usLW z-ePsxgIeNqYa@P}PO~W`;X>+W8AeN=+f#4sbVU8VgY2hHW!kizpWi*#9h=+(auQ>b zG3Z=x_JlL&4y$U5JswG_Jf(QeY@f3m-4$#e6lZ3YHQ1|XP%`q@MzF~6Xt`LlMy{)B#piu6L_yEypZG( zsY+e74+l527pE0Y}2~5)lm-*Kj?(slZt+`W{rZref{-axE$#ajynI#9R;r)o zVfIEL6>rv_+M`1Yn%mx98G662vU;>j0*b{C(`mikTs~KdXV>qhFkJfH(r^(n;Q}Xusu$h)=f_klD>w|)% z_S)|&EhVYVV`tRvi&<83q*{f&)!q+Q88Hzcj4kt{iaJzmH7^YI%6E3MjECS#wWItS zcctPH`dl4FcR`hnp!P>S1I18IW9Xt~V^|{oQ1j?9{q!~k;qxuXjkx=#i<-oaZI@nI zIiTH&K-VH4xb#nxrDLh(T@$#yqd`Zt6l%?~*0S9|(9~<1TpTa1aa5d#|A+lb$*mWU zLr1zt+z)Mz5BwZ>pK#U)-TG*Z-s z$u^B@SCdS`{TO9i5()(aRx_6+-^cik>)P&Eg}M398K*D}yTxBgT|<_+v`c0+lJpJ> z7R^hhBjRgkgJfUu#3{>1v1rbfzbjJsAy#pz|A2f909r>ngbc~4v5UbQivD02yTi2| z+27wtw3Q7+1!tn4aMNNjS&BY9-+0YHU$en`9|TbT6=-l=I;ARHN=lG zEoFLcDA$HyP%9ScjOq9FEcMjk%>_o7BOgoVvRnl#4sjV-4Gbzw3FZ%Nr@7>0>uPsa zWQKM9_Ak3G_q4DG{>*?o{4t`)PFBNdZvY{knQsCoqAd(=VUf-%I1gB~hZ0`^Opaq* zV7#I_k`*;kFh%S$(4nN>`Gs|v>>g2-)r`($y{n@1v8IoN89q3hlUw|9q+=Z2=~Gvs q{)L4u=o@2yj0|V3KnZW+pC{05?zMXs2H=#2}K&+NiM%*D?w-m`RqhjCE{7WVvOFD@q}hgs4;~ zl%++*!e4m}6ohd-j!W3@` zfIt8M+FiiTC}0fm^YKCXc=@4FC=A9AM~Lh}2nZk~_6Z|Jq$Oo#q$N?P0}4kD9*{qb zMxm6Cs~kS2uBD|Vdr(&oqk%o5sipDr5)cdqLkJ+m_v{hZkVDC7{Lisd4+!xC6d(o+ zk_UK%Kwu%zP7@%z+b1vRuK@lPARaJ;mk-JhgA42yR0#q+ATXE*0_Np~Kz6Gy?VbY= zA>Ms*>Nq}OqAOIMCZZ9WcAp<@RPjO7rgv3A(=9j-1{d2eE+MI?bWmC4ke0U2ag6Q> z<6lfn&CKx@wss`)8T+#i?i3GCFK-{;kPD$<7sDeW)s?J2{0# z4<0@$e*ENV<%^e9)it%RUNlvJZ`gmhgmzs#5C|9o{pkYnT-;5t5QJAwoo^qG2z8|i%WK5)ix{Qd zulN8%Yuc=ex&`;b#T2xr71w^!{*wK7u(QgMVp^gJG={CJ9Je3_9m%B8cdA)b^KWxkU28GQFjWj9_bkv-iOwrLkB28-=)}IB57{A<^D9 zi~HF~ER}fgBR=M{9xX37)vU}bJods5`|Uw=>HaGQS$2rdFeVj&dJfiQ(b3xE<@yt< zT2#fiw@1ud(T^WLd-+Dm$baeUY>*-9M$6LxE1j_fV(1ZXc4HaqgBLK?00cuJsHFq! z+}IvH+){Gf%Bh^8EP}J%Z`#>KzSR2@ZK#{E{yHJ_?kmXbys3?rAXpD-zMS!Fl<-0r z56!Gids)4>jgi@4+0BuovU=NlofYRYMCmH)2G0Xq%AffwRRve7&>yoLk|yb>UdAII zYf;oY*EpO+(_JgZwJByYpZ<%PfkpJ|M5G?_ZpNJIo)nHBGndT!Lwl)T(Ar=80ODm# z%SzteH)$=Ho0%`asp?A5?I>cDDxR_kDJ zY8y8ydOw4qcarQeakp&zw)SzGbJ`P61iur4f}zhPIM_&}|q zql-NXaZ2dm)njHD`g~3m^^#kbk;?Kx7pJVN!e~@5Y$4pBShUUQoLYyN;>}H7S%z$T z7K1=lQj-$SUpau?)_vI7RGPX%UUP!E+_bl^tgly&umwUVRirvm$flqf1wraLjJ|MQl;BCo*lXaP!0Ott_8Y<@6$a(kvRvCpsX5BO~o=c z2fd2u8Y9?j-pL&iYM;vy=H}z@{r#Fl10d&zxT8>X5D9VQb#rK90C9+xRum zowsWwqOY~&fb*n0R~!}A5|Xo^wp5sKI_#r@g_T81tZ6j7!qr!;)PFkYkvWs(rYix4 zie%S(@w-+Lt1$E<{@bOVVopi&bZxcN&^aK{MVySLfrgi^LwO6A!H|>5* z&hUYkH#rO88(rSK@ZFJ!0m90>_0*_hjm08GEHhu@`m!cR$8fq+#S;LoPk{Di=U4!w z5r%?C?{TlWkOacXjPJ-Ml3XZyvMTwzs>-8MnVEJ-i$QJ&o){wk$|quh+j&BJL9Y*{m8W zzC{&p>+%m%y2t(KF`wzlZl<2>;F&(Y7tkbe>T>OWY&B>~gs`VgszUwMJOz4|F$CE=vl$qZS~kc;w5cQ#`dY@mNlm zV>Kzgf5JjOO}L;|7rokp-rDSordYpJd8cS*=-zGMkmxKqQ$8GY&0wURy)k#gov0Rn zXP@uL;vCC0syIsldqs|zvBYOz3>WVuFP<^?`8F~VPvjl zbAy?P`!_>`)rpX9{W_{OYA`@X6VH}t9|w9lMOtTYiklYa8`5Lo&qHQs0&6sK_q|s# z+yUT~W+Jz8UYB=voD!{h&qlajRP~qWv3$F&t6kieY{k)Y!Wzp9-hZR zA8_r@p41fo3h+Is{=I-HnKOitDI3zSIJo?GgnAo`Z1VUOmG2?k=R(5eoX<2ziWmR=k zb4zPmdq-#2o40-M`UeJwh9^jqQ`0lEALo`=R@c@yHa~ya`o4c~cyxU7Zc)3y~EGNnvy5Hm9U60j;UbQ5-*ygz2A(8_+j1foR zwSeu1U-hQ5$;M46A&1@1Jxx&f3GKXb4cJvraPsO`H_~1(A4^%(X~ID7Z(yKFO{w@y zK*iN9*>m)92$%Av>gm`^kH+iOoT<^;c4=>CC@n&F%ji@0Phq+4lleVok2nU#_f}lr zH-Lu#gbO0VxlnDBv$#*Uvc|l)+zb5#U+v@&%iOv@as-5L?w6}vE-g}dE|L67HtKBi z@P&Ed+0)EnvAS~_YnP*Q{Nu7q0y-2S=Cnz-#nV@g9h4IAW9)SsM9Q-ajw(4***io? ztTFhqQ5MCF{JZ41z!zmtxmMf~o%eU2B+&9*^kQa*kDxBlkQ&rR{^CQfx!na{=^9@k zGfP2|mL8s4DIjMzS^=VVQd_XYlSHhfkGma(xMfLcd*t@jgvm(}hi19s5q|%54SuJm zIVbO&=aAyg*iJC44Uum)TE%N^{X8Ol$2DnjWz&?jY9-*IWo#r_vqPYSX;^kevP{%H zvL$FRTfn5a`rFOJU}+v1raLbi3Uk*plZooK=ZB{EOTWT|C6uck#1%h#Pmt+@h4sR& zE5{92q6F0xC2f2wVx7=_S-+-K;?$;ekDt1lABy7_fNQcUo8@6;-E1!%9i*1&`@?hH zA;&{V-YK6Vz6TvO{oiloao}LWUO08DBJLrP3c+=?D0$DIxKe2+nATSKtG+FnCY9mR|BV>GA4*{+aeZ$~XX_DhGaxkhPS=Vr-HNVXJ=`eKApt zBt%tZL{0^!xluyV>T}qq`+lWP^utN-m!80soVYI7|ZFLdQY7L^lN5rpj!97RadJ z9HWA=VlNeKdp-31(4WUxvv*lcx*XNUylfK#!xkR*eumS1a4_#ycz;D^*DsUij-hKZ zh(`%StMXt##qzeWqHQnFHp}!dbJ@pygZTN8b&>axG~O8~LtKdL8lZy#Hmq+KPLBmikDSm9SUd|#)cc-A7nlD)kf*P1hOgjhiPXym2J!Vy+803Q z*yC)85j!rMPU+HwtzliC*(t%~6TXKesQrERLJWl^tp|Y7SiAkUvAN<(YI$dlW@je> ze4_1t93_^L!JwYX>dOb+6!Be@O?coHm^*vd$aTJ^Odp$MhoJu1k4lMl5U3o+F=_T%H!E>NsIkYFYM=fynEt7c$wco;6CEBx|;rYg2yZ;T9Z{zWetz=n)eHL6N{YE>0YPy|?Wp=}q(YcBi;9aWcELL~kIjXk5Dc*I$3A$eE z!J&@mFw^qT(G{FD7h_*>uhGf{^mZ?4{xBVOjO5DDwgf3-u;DJBC__h$D$L%QP8~s} z6=H9R?k6$yZB3+ozFa?(MB_!HCof^*0a?X`rr(mBk*2V4;^w#6@D|mGq?><&)u<_x z^I`}IcAHchAPceC+-A3$WyeRcyCE6D!K&zabv`c8HEH^~2>rbBDerlMfa4dp&}@CB zr^P6+1kEns7)^$+{-t!!iQVRA;EQK>Ac}^KgUh2fPN|(5-tabM+>b-4GItI|_LhAv zG_RNd_YWDRb-Z(8@0}+>AmZ!Zb8^#WXK5j!%UwvHj!99L;WjuL4_dmh@Tkz#SV!lQ z{*f!MM~g#V;sW!VrTA<)i<{%kO_6)a7x z!)R5zd)RqMu5y>GX?LIrG#3w{o+~^}JW&TCk&pqC^}TrJkL(TRDr-b#bya`-D)PeL z>f|hFS%NutLz&B%NgpjSgd&d*yvJtt+FwEnY)@AX+qVDxA!=uC`|i7k0nXUX>v9$= z$dBqGlI(`gVE%Lpd|K|BO+la8n-yz$)o;TF{cR~VaaYct#_KRqK%i_Xp&uM)?Ne3X zE4^#MNDtxM7T2PK_}1Lnf;ggO~4 zOGFH0H-LS7?rvz(+{L!kgPmMz96&!-xB1`~xKjS1@0(BD;8Nlugzi#c>Fd7B2W|q~ zsU#rTWK>fUHg0(<&7=*XEy$c2e~C~wdSjLS9HW#0qkO%F(UlLVn)jTL@41S#UT~r0 zg}d@75bo`^qlT$A3k)@LT(x;PpO&{uSdVzYoDJBcU~L5MApdS&D@nH8d=7RasgvgH z=Z0+^T+(Ore-8=~7wGd`D29X*=uVtbFuczZO{ZQEckK9Hy`SAizPrJ#{oJf8d!1BA z;?8jqG`z*FwSM>df;~COMv@zvP$LGy0wd378e0df?uQ{YMapu+%JNp7{vzL$XA<2u z-4^Xh{9r^_)W?N&~j(VNav8^*6otpiTwC&O`@t~!1uuDoD zc7<`HOKUvsYPuT2!4UoutLQUI*;cxRos2~yf&ACGrsMWQ@!j0waSOBfQG7)xPd`P! zGH>kBS399voHmCa6LdM1Yj$Ut0LF1g#Yjgm0m>^KR(tk~6IM5?5~HC64GXot8?o6t zSOIr-JYK7>+ja|%w#(aaU8pR0&5QYh`$qBtElq( z$s^qnHle}?Y->?4I=0e5?hy`*EMX}GaNrq+f0&$6*x{U-s?QQ^sn2wh)e8}S5;Sks zw5+26Kq+mYZ`gyK1|C-KBq_vm%jgVRdP(auMYk6&9p34uk|4cj z&IJ_{&C=y$mWk@P1R(I5D0u5i1Nh6A#b`Vyts&Bp!V=vX5(C(|>Rt6ukK(5;h~MA{L@lo1Dk$N=(s8g{u$lkdv*N!33N37qJ`Tx7EQkS`AUX;q_;G(M^VFWbCg0*Sh44-mBW{ccr&U;gIab&ol6!-0)9)@beJ#eVzSFGstGYt<<8eKZD+I3dc+f^-dL1iuBhze^-Y^cn04M4X?)0Pp zLy%mr@#Q@)<4SgDAGX?W(LiFWv= zOk!e1h+%-;Vu3_?{N)juc1*F|aP9f4EVvjSaUo?faxHZdgYQmFXQc-ZeX;ww{A`<^ z`hB&)unImaNwd-3A>l%_|J_={>xE&0L^8*bPRf@5qI9>8vs=t^iQdO-F?YDnYZa6v zIqtEH3mdL5;HiB5wV2hbHe=L12cyG!Zr!f?!$ppNZEl9mb%0-^hL1Ooa>_ejb#!;k zE(tHeMtUUJ4TSejk`~pvZbX+%XWJ=ix3|JMUhP}ZWW#mP+@)k9*#6G0y#Y1ziPsh8 zE5TP##Z^85n6`v(Z-g9D2{M3pct9@8?c2&HrL)OO@RW+C!`^;)MI#Wn7xg9kex*4> zAvFkKnQWbsRJlvS-pQ8BTP-jmC=cBfZz5)>5lb9yPtboEl^uf!s&4T>Hc71ohjh~( zyn54)Y+!RIwNT)^WHyR~z35~#exBOa@)tjtFG=m1$(HgjhY#+alsyP-#++x~`mfB0 z7p4zal^eqflhe|el z*>vvl_jO5mFk#0Mo^+CGXFve?d!tUrU$NUZMATuI;)F{zOtv*?pJP7u})OWZy)-!1X4 z^i){c+FG$lA=}%+W#+NL#ZN|jUjur5(I){Uo$o=jwUX>#Ew9R_TP!E1ThI~ zaOSHIfX=R#$^0!ZS7PmM*)!i$m}wEb@8D&-V_R+`(&3cbVq$B$OL49?&>+H{;F>5^ zk(ls~mC2f%az!d1(*YjEGTXJ0Ob?7E4U>WpNMncKWHw^IxxRx-j44Fd7!myrWa4AH z{<%2e2(N7+zMTFkI>oEw%Kq4=g9p79o&wQA@D3U|Zx`sQ@l0Y)(2wzk5hH2PV*)ViqBEw&?GlCTeSM| zfYu?rvN+)@Osq+V(C?fID%yUNAchuhg%s2-F4@e#gN8qyy(fwh66`$ee^eo|*z##g zD9u1;znDe9ld3=#6Fh449__28?v4U-+4>nIh9!MQa+a7p%@Anrg@sc%Cy~rxAlAR% zhbcJ_EaLm%98NM=fe6PyEC$umIO5Zx1gz@&`vXfbXW;}DdXN@SpC!P z7ord9pVQjC-sNjVdH*7k(B-`h+Md35!O|`S6uS(H`La6!al!W+NW~>En+5Cs{`eo; C?4o`E diff --git a/doc/images/osgstereoimage.jpg b/doc/images/osgstereoimage.jpg deleted file mode 100644 index 5e2ad5d1bac1f0b121912df9434107f54b86a925..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2763 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 Q_KH`e?T7xGM2m+02HkqvlK=n! diff --git a/doc/images/osgviewer_cow.jpg b/doc/images/osgviewer_cow.jpg deleted file mode 100644 index 26426f79bc5041b7e001209f79ace551593db597..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1970 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 diff --git a/doc/index.html b/doc/index.html deleted file mode 100644 index a568d905b..000000000 --- a/doc/index.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - OSG Documentation - - -
    -
    - - - - - - - - - - - - - - - - - -
    IndexIntroductionContentsInstallDependenciesexamplesDataViewerStereoosgdemPlanReference Guides
    -

    -Index

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    IntroductionIntroduction to Scene Graph in general, the OpenSceneGraph -project -itself and how to use it.
    ContentsA list of the directories in the distribution.
    InstallA guide of how to compile and install on all the supported -platforms.
    DependenciesListing of all the dependencies of the project, with links of -where -to download them.
    examplesThumbnails and info on all the demo applications which come -with this -distribution.
    DataList of websites where one can download interesting and -useful data -from.
    ViewerList of key bindings support by the osgProducer::Viewer and -hence osgviewer and -the rest of demos.
    StereoDocumentation on the commandline parameters and environmental -variables -which control stereo.
    osgdem
    -
    Documentation on how to use the -osgdem utility
    -
    PlanDetails of development plans.
    Reference GuidesReference guides of the core libraries.
    - - diff --git a/doc/install.html b/doc/install.html deleted file mode 100644 index 0893b71a1..000000000 --- a/doc/install.html +++ /dev/null @@ -1,344 +0,0 @@ - - - - - - Installation instructions - - - - - - - - - - - - - - - - - - - - -
    IndexIntroductionContentsInstallDependenciesexamplesDataViewerStereoosgdemPlanReference Guides
    -

    Compiling and installing the OpenSceneGraph

    -The scene graph depends upon Standard C++, STL and OpenGL so you need a -C++ compiler up to the task and OpenGL or Mesa installed. The example -applications depend upon Open Producer which you'll need to download and -install from the Producer website. The OSG has it own native ascii file -format, and .rgb image reader which allows you read the example data -with any dependencies other than C++, STL and OpenGL. -

    The OSG also has a set of plug-ins which support non-native 3d -database and image formats, several have no dependencies on external -libraries (flt,3ds,obj, lwo,dw, tga & pic), while others -(pfb,jpeg,gif,tiff) require other libraries to be installed to compile -them. If you don't already have them installed then don't worry, you'll -still be able to use the OSG, just comment out the plugins you can't -compile from the Make/makedirdefs file. The core osg library and viewer -has been designed to load the plug-ins at run-time only and if they are -required to load a specific data set. If you don't need them for your -datasets then it won't matter that you haven't been able to compile all -the plug-ins. A full list of dependencies and where to download the -required libraries are listed in the dependencies.html

    -

    If you're coming across the OSG for the first time and want to get -started quickly, go right ahead and follow the compilation instructions. -You can always later download the libraries which the plug-ins require -if you eventually need them.

    -
      -
    • Compiling -under Windows with Visual Studio
    • -
    • Compiling under Unix (including Mac OSX and Cygwin)
    • -


      -Building the OSG requires 'gmake', due to the extensive use of gmake -directives in the Makefiles. You can get gmake from here if you don't -already have it installed: http://www.gnu.org/software/make/

      -

      Almost all of the unix compiling is done simply with make; -make install with make help to bring up help. For platform -specific details:

      - -
    -
    -

    Compiling -under Windows with Visual Studio.

    -

    The Microsoft Visual C++ 6.0 workspace file is VisualStudio.dsw -located in the VisualStudio below the OSG this root directory. VC++6.0 -workspace files can also be used in VisualStudio7.0 without problem.

    -

    IMPORTANT NOTE: Whilst the OSG will compile cleanly with the -basic VC++6.0 and its own STL implementation, the OSG will crash -regularily due to bugs in VC++6.0's STL. VC++6.0's STL is horribly -broken and therefore is *NOT* supported. Do not attempt to use -the OSG in conjunction with native VC++6.0 STL implemention.

    -

    The supported combinations are:

    -
      -
    1. Visual Studio7.0 .NET
    2. -
    3. Visual Studio6.0 + Dinkumware's STL bug fix patches (see details -below).
    4. -
    5. Visual Studio6.0 + STLport (see details below)
    6. -
    -

    The OSG is composed of a number of scene graph libraries (with Core -in front of the project names), executables (with examples in front of -the project names), and plugins which read and write 3D data formats and -2D image formats (with osgPlugins in front of the project names). To -get the OSG running you'll need at least to compile Core -osg,osgUtil,osgDB,osgProducer, osgPlugin dot_osg and Demo osgviewer. The -rest of the libraries and executables are optional and can be compiled -if you need them, however for simplicity I would recommend doing a -batch build of all the libraries and executables in the distribution, -some of the plug-ins which support non native file formats may not -compile due to dependencies on other libraries (such as libpng), you -can ignore these compilation errors unless you need to load the related -file types. To help the compilation the plugins, osgProducer and -osgText one can download .zip archive will all the dependencies in it. -Further details on this .zip file can be found in dependencies.html

    -

    To execute the viewer the file path for the .dll's and .exe, both -compiled into the OSG's bin directory, need to be setup, such as by -adding the PATH to your autoexec.bat, its also useful to add the -OSGFILEPATH to your autoexec.bat to help the location of datafiles. For -example :

    -

    SET OSGFILEPATH=D:\OpenSceneGraph-Data;D:\OpenSceneGraph-Data\Images
    -SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;D:\osg-0.8.43\bin;

    -

    To help compilation of the image reader plugins, various image -libraries have been zipped up for your convenience, your find these on -the OSG release download directory

    -

    Using Visual Studio .NET

    -Visual Studio 7.0 .MET has a solid STL implementation and improve -standard C++ complient and works with the OpenSceneGraph without -problems. This is the recommended route. -

    Using Dinkumware STL

    -The basic jist is that you'll need to download their STL -implementation, and follow their instructions of how to force -VisualStudio to pick up the new STL implementation. More details at http://www.dinkumware.com/vc_fixes.html. -

    Once it is installed everything should compile fine and not crash, -but you won't be running at full speed since the build #ifdef's out some -important state optimizations since the basic VisualStudio can't handle -it. You can safely remove the #ifdef from src/osgUtil/Otimizer.cpp, -Line 44. The #ifdef is smart enough to do this automatically when using -VisualStudio .NET and STLport so that modification by hand won't be -required. Unfortunately there doesn't seem to be a special define -associated with the Dinkumware STL for the #ifdef to pick up on.

    -

    Using STLport

    -

    A very good HOWTO for installing and making the STLPort libs on -MSVC6 can be found at http://www.softadvances.com/articles/stlportusing.html

    -

    The OSG has been tested under Windows with STLport-4.5, which allows -the users to configure the type of STL support required for STLport -itself. The key configuration that the OSG needs to do is to enable the -wrapping of MS's own iostreams, than using STLport's own implementation. -The later is not required because this has not be problematic under -Windows, it is only the container classes and algorithms that need -replacing. Using the iostream wrapping option means the STLport can -just be used on your include path, there is no need to compile STLport -itself, or link into any special libraries. To configure STLport simply -comment IN (its commented out by default), the following line from -STLport-4.5/stlport/stl_user_config.h so it should look:

    -
      -# define _STLP_NO_OWN_IOSTREAMS 1 -
    -

    Then configure the includes path in Visual Studio to pick up on -STLport: Select the "Tools" menu. Select "Options" In the Options -dialog, select the "Directories" tab Under the "include" option, add the -path to STLport4.5, something like: D:/STLport4.5/stlport Then press -the up array to move the entry all the way to the top of the list, thus -overriding MS's own STL implementations.

    -

    Linking your own apps to the OpenSceneGraph

    -

    All OpenSceneGraph libraries, plugins and executables are compiled -with the multi-threaded dll option turned ON, and with RTTI turned ON. -Your own projects which link to the OpenSceneGraph must uses these same -options or your application will crash or produce unpredicatable -behavior.

    -

    Syntax highlight + OpenScenegraph Standard C++ style headers

    -

    The OpenSceneGraph uses Standard C++ style extensionless headers, -which poor VisualStudio doesn't automatically recognize as suitable for -syntax highlighting (compile works fine though), even the StandardC++ -header themselves require a hack to get VisualStudio to highlight them -properly. The easy answer is to use that same hack to get it to -recognize the OpenSceneGraph headers too. To make easy a modified -header listing file can be found in the VisualStudio/LANDEXT.DAT. First -copy the original LANDEXT.DAT file (located in C:\Progam -Files\Microsoft Visual Studio\Common\MSDev98\Bin) to LANDEXT.DAT.BKP, -and then copy over the OpenSceneGraph one. Once you have done this -VisualStudio will syntax highlight them without problem.

    -
    -

    Compiling under Linux

    -Compile, from the OSG root directory, ('%' is UNIX csh prompt) type: -
    % make
    -Note, make should automatically detect linux and build optimized -targets for your system. And if you wish to install the OSG type: -
    % make install
    -or -
    % make instlinks
    -To get full details of make options, type: -
    % make help
    -(highly recommended) -

    The osgText library now depends upon GLU1.3 functionality, and only -the recent Mesa version have this as standard. Unfortunately not all -Linux distributions are up to date even recent ones. If you have -problems compiling osgText due to GLU problems then check out the -details at the bottom of this file, under the title RedHat7.1 & -GLU1.3 for a quick way of installing GLU1.3 in the right place.

    -

    RedHat 7.2 & GLU1.3

    -I have posted a simple fix for those of us who have been unable to -correctly build OSG 0.8.43 on Redhat 7.2. You can download it at -http://www.openscenegraph.org/download/dependencies/ReadHat7.2_fixglu.tar.gz -To install it, follow these steps: -

    English

    -
    1) Untar the tarball. It will create a directory called -fixosg/
    -2) Change to the ReadHat7.2_fixglu/ directory
    -3) Become root
    -4) Run the script called fixglu
    -Cmd line -
    tar xvzf ReadHat7.2_fixglu.tar.gz
    -cd ReadHat7.2_fixglu/
    -su (your root password)
    -./fixglu
    -exit
    -You should then be able to do a "make" in your OSG directory and -everything will build as it should. Let me know if this doesn't work and -I will try to improve it. Email me directly for help instead of posting -here. There's a README in the tarball with some info on what the script -actually does. There's nothing wrong with OSG itself; the problem with -Redhat 7.2 is that it doesn't have GLU 1.3 by default, which OSG is now -dependent on (for osgText.) Good luck everyone. - Clay -

    -
    -

    Compiling under FreeBSD

    -Compile, from the OSG root directory, ('%' is UNIX csh prompt) type: -
    % make
    -Note, make should automatically detect linux and build optimized -targets for your system. And if you wish to install the OSG type: -
    % make install
    -or -
    % make instlinks
    -To get full details of make options, type: -
    % make help
    -(highly recommended) -

    -
    -

    Compiling under IRIX

    -Since the OSG uses Standard C++ features such as STL it is important to -have an up to date version of the MIPSPro compilers, ie. 7.3 or later. -Support for MIPSPro7.2.1 has now been dropped since it was becoming to -unwildy to support and is very rarely used in the OSG community. It is -recommended to use MIPSPro7.3.1.1m. -

    Compile, from the OSG root directory, ('%' is UNIX csh prompt) type:

    -
    % make
    -Note, make should automatically detect linux and build optimized -targets for your system. And if you wish to install the OSG type: -
    % make install
    -or -
    % make instlinks
    -To get full details of make options, type: -
    % make help
    -(highly recommended)
    -
    -

    Compiling under Solaris

    -Compile, from the OSG root directory, ('%' is UNIX csh prompt) type: -
    % make
    -Note, make should automatically detect linux and build optimized -targets for your system. And if you wish to install the OSG type: -
    % make install
    -or -
    % make instlinks
    -To get full details of make options, type: -
    % make help
    -(highly recommended)
    -
    -

    Compiling under MacOS X

    -For anyone who's ever used a Unix box for development, well, the mac is -a Unix box. It's very simple to get OpenSceneGraph building and running -under Mac OS X. The main requirement is that you need to have installed -the Developer tools from the CD that comes for free with OS X. This -gives you compilers, headers, frameworks - stuff like Producer and -Carbon for developers. Get those here: - -

    Everything is done command-line, so you need to get to a shell -before proceeding. The Mac comes with an app in Applications/Utilities -called Terminal - open up any Finder window (e.g double-click on your -hard disk icon), click on the Applications icon at the top right of the -window, then click on the Utilities folder to get access to the -Terminal. When you start Terminal it brings you up a csh running from -your ~/ directory. Now, go to your OpenSceneGraph directory, and simply -type:

    -

    -
    make -j2
    -And some time later you'll be rewarded with a lovely set of binaries -and libraries. The Mac OSX build currently only builds a subset of the -total functionality in OpenSceneGraph, but a large subset at that. Some -of the remaining projects are known to build as well, but have external -dependencies on libraries such as libtiff, libjpg, libpng, etc. and so -are not included in the default build. However, if you examine the file OpenSceneGraph/Make/makedefs -you will find which extra projects build for the mac, provided you have -the external libraries required. Details on how to install these -external libraries are outside the scope of this document, but for -starting points, see one of: - -

    Running the examples

    -Once you've got OpenSceneGraph built, you're ready to run your -examples. As with other builds on other platforms, OpenSceneGraph -requires you to set a few environment variables which describe your -installation. These environment variables should be full-path, not -relative, and a list of these for a csh-derived environment follow: -
    setenv OSGHOME `pwd`/OpenSceneGraph
    -setenv OSGFILEPATH `pwd`/OpenSceneGraph-Data
    -setenv OSG_LD_LIBRARY_PATH ${OSGHOME}/lib
    -setenv DYLD_LIBRARY_PATH ${OSG_LD_LIBRARY_PATH}
    -setenv DYLD_BIND_AT_LAUNCH
    -
    -

    Notes

    -
      -
    • Input Focus: Many OSG examples have keyboard commands, -however, when launching apps from the Mac Terminal, the focus seems to -remain in the Terminal. Option-Clicking on the graphics window focuses -it as the recipient of events, and allows these keyboard commands to -then function properly.
    • -
    • Known Bugs:
    • -
    • Installation: No package based version of an OS X -installer yet exists.
    • -
    -

    Compiling under Cygwin

    -To compile, from the OSG root directory, type: make Note, make should -automatically detect your system and build optimized targets for your -system. And if you wish to install the OSG type: make install Note that -make symbolic links don't seem to work under cygwin, so a make instlinks -will simply copy files just like make install. 'make install' places -all files in /usr/local/OpenSceneGraph under appropriate sub -directories. To get full details of make options, type: make help -(highly recommended) -

    OSG_FILE_PATH environmental variable

    -

    For the OSG to locate file data files easily an environmental -variable OSG_FILE_PATH is used at run-time by the osgDB library. Note, -for examples below substitute in the ${OSGDATA} directory with your own -path where appropriate) Add the following to your .cshrc (note paths -separated by colon's): setenv  OSG_FILE_PATH -./:${OSGDATA}:${OSGDATA}/Images Or the following if you're using a sh -compatible shell : export  -OSG_FILE_PATH=./:${OSGDATA}:${OSGDATA}/Images: Or under windows (note -paths seperated by semi-colon's) : SET  -OSG_FILE_PATH=./:${OSGDATA};${OSGDATA}/Images

    - - diff --git a/doc/introduction.html b/doc/introduction.html deleted file mode 100644 index 3ba4d65c5..000000000 --- a/doc/introduction.html +++ /dev/null @@ -1,462 +0,0 @@ - - - - - - Introduction to the OpenSceneGraph - - - - - - - - - - - - - - - - - - - - -
    IndexIntroductionContentsInstallDependenciesexamplesDataViewerStereoosgdemPlanReference Guides
    -

    -Introduction to the OpenSceneGraph

    -

    The OpenSceneGraph is an portable, high level graphics toolkit for -the development of high peformance -graphics applications such as flight simulators, games, virtual reality -or scientific visualization. Providing an object orientated framework -on top of OpenGL, it frees the developer -from implementing and optimizing low level graphics calls, and provide -many additional utilities for rapid development of graphics -applications.

    -

    -The project was started as a hobby by Don Burns in 1998, as means of -porting a hang gliding simulator written on top of the Performer scene -graph running on IRIX to what was then a humble Linux PC. In 1999, -Robert Osfield began helping out with the simulator development and -ported the scene graph element to Windows. In september 1999 the source -code was open sourced, and the openscenegraph.org website was born, -with Robert taking over as project lead and Don remaining focused on -the hang gliding simulator. -

    -

    In April 2001, in response to growing interest in the project -around the world, Robert went fulltime on the project, setting up OpenSceneGraph Professional -Services providing commericial support, consultancy services and -training. At the end of 2001 Don also formed his own company Andes Computer Engineering -and participates in the development and support of OpenSceneGraph as -well as complimentary projects like OpenProducer and BlueMarbleViewer. -

    -

    What is a Scene Graph?

    -Its a tree! Quite simply one the best and most reusable data structures -invented. Typically drawn schematically with the root at the top, -leaves at the -bottom. It all starts with a top-most root node which encompasses your -whole -virtual world, be it 2D or 3D. The world is then broken down into a -hierarchy -of nodes representing either spatial groupings of objects, settings of -the -position of objects, animations of objects, or definitions of logical -relationships -between objects such as those to manage the various states of a traffic -light. -The leaves of the graph represent the physical objects themselves, the -drawable geometry and their material properties. -

    -

    A scene graph isn't a complete game or simulation engine, although -it may -be one of the main components of such an engine; it's primary focus is -representation of your 3d worlds, and efficient rendering thereof. -Physics models, -collision detection and audio are left to other development libraries -that -a user will integrate with. The fact that scene graphs don't typically -integrate all these features is actually a really good thing: it aids -interoprability -with clients' own applications and tools and allows it to serve many -varied -markets from games, visual simulation, virtual reality, -scientific and commercial visualization, training through to modeling -programs. -

    -

    -Benefits that Scene Graphs provide

    -The key reasons that many graphics developers uses scene graphs are Performance, -Productivity, Portability and Scalability: -
      -
    • Performance
    • -Scene graphs provide an excellent framework for -maximizing graphics performance. A good scene graph employs two key -techniques -- culling of the objects that won't be seen on screen, and state -sorting -of properties such as textures and materials, so that all similar -objects -are drawn together. Without culling the CPU, buses and GPU will all -become -swamped by many times the amount of data than they actually require to -represent your scenes accurately. The hierarchical structure of the -scene -graph makes this culling process very efficient, for instance a whole -city can be culled -with just a few operations! Without state sorting, the the buses and -GPU -will thrash between states, stalling the graphics pipeline and -destroying graphics -throughput. As GPU's get faster and faster, the cost of stalling the -graphics pipeline -is also going up, so scene graphs are becoming ever more important. -

      -
    • Productivity
    • -Scene graphs take away much of the hard work required -to develop high performance graphics applications. The scene graph -manages -all the graphics for you, reducing what would be thousands of lines of -OpenGL down to a few simple calls. Furthermore, one of most powerful -concepts -in Object Oriented programming is that of object composition, enshrined -in the Composite Design Pattern, which fits the scene graph -tree structure -perfectly and makes it a highly flexible and reusable design - in real -terms this means that it can be easily adapted to solve your problems. -Scene graphs also often come additional utility libraries which range -from -helping users set up and manage graphics windows to importing of 3d -models -and images. All this together allows the user to achieve a great deal -with -very little coding. A dozen lines of code can be enough to load your -data -and create an interactive viewer! -

      -
    • Portability
    • -Scene graphs encapsulate much of the lower level -tasks of rendering graphics and reading and writing data, reducing or -even -eradicating the platform specific coding that you require in your own -application. -If the underlying scene graph is portable then moving from platform to -platform can be as simple as recompiling your source code. -

      -
    • Scalability
    • -Along with being able to dynamic manage the complexity -of scenes automatically to account for differences in graphics -performance -across a range of machines, scene graphs also make it much easier to -manage -complex hardware configurations, such as clusters of graphics machines, -or multiprocessor/multipipe systems such as SGI's Onyx. A good scene -graph -will allow the developer to concentrate on developing their own -application -while the rendering framework of the scene graph handles the different -underlying hardware configurations. -
    -

    -The OpenSceneGraph - a robust, high peformance Open Source -scene graph

    -With the OpenSceneGraph our goal is make the benefits of scene graph -technology freely available to all, for both commericial and non -commericial users. Whilst our scene graph -is still in development, it has already gained a respect -amongst the development community for its high performance, cleanness -of -design and portability. Written entirely in Standard C++ and OpenGL, it -makes full use of the STL and Design Patterns, and leverages the open -source -development model to provide a development library that is legacy free -and focused on the needs of end users. The OpenSceneGraph delivers on -the four key benefits of scene graph technology outlined above with the -following features: -
      -
    • Performance
    • -Supports view frustum culling, occlusion culling, small feature -culling, -Level Of Detail (LOD) nodes, state sorting, vertex arrays and display -lists as part of the core scene graph. These together make the -OpenSceneGraph -one of the highest performance scene graph available. User feedback is -that -performance matches or surpasses that of much more established scene -graphs such as Performer, VTree, Vega Scene Graph and Java3D! The -OpenSceneGraph also supports easy customization -of the drawing process, which has allowed implementation of Continuous -Level -of Detail (CLOD) meshes on top the scene graph. These allow the -visualization -of massive terrain databases interactively, examples of this approach -can -be found at Vterrain.org and TerrainEngine.com, both of which integrate -with the OpenSceneGraph. -

      -
    • Productivity
    • -

      The core scene graph provides encapsulate the majority of OpenGL -functionality including latest extensions, provides rending -optimizations -such as culling and sorting, and a whole set of add on libraries which -make -it possible to develop high peformance graphics applications very -rapidly. The application developer is freed to concentrate on content -and how that content is controlled rather than low level coding.

      -

      Combining lessons learned from established scene graphs like -Performer -and Open Inventor, with modern software engineering methods like Design -Patterns, along with a great deal of feedback early on in the -development cycle, it has been possible to design a library that is -clean and extensible. This has made it easy for users to adopt to the -OpenSceneGraph and to integrate it with their own applications.

      -

      For reading and writing databases an the database library (osgDB) -adds -support for a wide -variety of database formats via a extensible dynamic plugin mechansim - -the distribution now includes 33 -seperate plugins for loading various 3D and Image data formats. 3D -Database loaders include OpenFlight (.flt), TerraPage (.txp) including -multi-threading support, LightWave (.lwo), Alias Wavefront (.obj), -Carbon Graphics GEO (.geo), 3D Studio MAX (.3ds), Peformer (.pfb), -Quake Character Models (.md2). Direct X (.x), and Inventor Ascii 2.0 -(.iv)/ VRML 1.0 (.wrl), Designer Workshop (.dw) and AC3D (.ac) and the -native .osg ASCII format. -Image loaders include .rgb, .gif, .jpg, .png, .tiff, .pic, .bmp, .dds -(include compressed mip mapped imagery), .tga and qucktime (under OSX). -A whole set of high quality, anti-aliased fonts can also be loaded via -the freetype plugin.

      -

      The scene graph also has a set of Node Kits which are -seperate -libraries, -that can be compiled in with your applications or loaded in at runtime, -which add support for particle systems (osgParticle), -high quality anti-aliased text (osgText) and navigational light points -(osgSim).

      -

      The community has also developed a number of additional Node -Kits -such as osgNV (which -includes support for NVidia's vertex, fragment, combiner etc extension -and NVidia's Cg shader language.), Demeter (CLOD terrain + -integration with OSG). osgCal -(which integrates Cal3D -and the OSG), osgVortex -(which integrates the CM-Labs Vortex -physics enginer with OSG) -and a whole set libraries that integrating the leading Windowing API's -Links can be found in the bazaar sections on the download page of -OpenSceneGraph webiste.

      -

      The project has also been integrated with VR Juggler and Vess virtual realilty the -frameworks, with others in developments.

      -
    • Portability
    • -The core scene graph has also been designed to -have minimal dependency on any specific platform, requiring little more -than -Standard C++ and OpenGL. This has allowed the scene graph to be rapidly -ported to a wide range of platforms - originally developed on IRIX, -then -ported to Linux, then to Windows, then FreeBSD, Mac OSX, Solaris, HP-UX -and we even a report of successful porting to PlayStation2!
      -The core scene graph library being completely windowing system -independent makes it easy for users to add their own window-specific -libraries and applications on top. -In the distribution there is already the osgProducer library which -integrates with OpenProducer, -and in the Bazaar -found at openscenegrph.org/download/ one can find examples of -applications -written on top of GLUT, Qt, MFC, WxWindows and SDL. Users have also -integrated it -with Motif, and X. -

      -
    • Scalability
    • -The scene graph will not only run on portables all -the way up to Onyx Infinite Reality Monsters, but also supports the -multiple -graphics subsystems found on machines like a mulitpipe Onyx. This is -possible because the core scene graph supports multiple graphics -contexts -for both OpenGL Display Lists and texture objects, and the cull and -draw -traversals have been designed to cache rendering data locally and use -the -scene graph almost entirely as a read-only operation. This allows -multiple -cull-draw pairs to run on multiple CPU's which are bound to multiple -graphics -subsystems. Support for multiple graphic context and multi-threading is -all -available out of the box via osgProducer - all the examples in the -distribution -can run multi-pipe just by use a simple configuation file. -
    -All the source to the OSG is published under the Open Scene Graph -Public License -(a relaxed version on the LGPL) which allows both open source and -closed source projects to use, -modify and distribute it freely as long its usage complies with the -OSGPL. -The project has been developed over the last four years, initiated by -Don -Burns, and then taken over by Robert Osfield who continues to lead the -project -today. There are many other contributors to the library, for a full -list -check out the AUTHORS file. Both Robert and Don now work on the -OpenSceneGraph -in a professional capacity providing consultancy and bespoke -development -on top the library, and are also collaborating on the book. Work on the -core scene graph and support of public mailing list remains unpaid as -are -the contributions of the rest of the community, but this hasn't -impacted -the quality of the source or support which once you get stuck in you -grow -to appreciate. -

    The project is currently in beta, which means the main core features -are now in -place, with a 1.0 release in second half of 2004. Despite the beta -development status, -the project has already earned the reputation as the leading open -source scene -graph, and is establishing itself as a viable alternative to the -commercial -scene graphs. Numerous companies, university researchers and graphics -enthusiasts -have already adopted the OpenSceneGraph for their projects, all over -the world. Examples of the wide variety of applications already -developed ontop of the OpenSceneGraph include Blue -Marble Viewer, Virtual Terrain -Project, Combat -Simulator Project, OSG-Edit. -This is just a snippet of the projects that use the project, more -examples can be found on the screenshot pages and bazaar on the -website. -

    -

    -Getting started

    -The first thing is to select the distribution which suits you, there -are -binary, development and source code distributions, these can be loaded -from the -http://openscenegraph.sf.net/downloads -page. The latest developments area available as via a nightly tarball -or -via cvs. -

    The binary distribution contains just the libraries (.dll's /.so's) -and example executables. This is suitable for using the OpenSceneGraph -with -an application that has already been compiled but depends at runtime on -the OpenSceneGraph. -

    -

    The development distribution contains the libraries (.dll's /.so's), -example executables, include files, and source to the examples. This is -suitable -for developers using the OpenSceneGraph. -

    -

    The source distribution contains all the source and include files -required to build the OpenSceneGraph from scratch, and is ideal if you -want to learn more about how the scene graph works, how to extend it, -and -to track down and fix any problems that you come across. -

    -

    If you are using a source distribution then read the installation -instructions for how to get the OpenSceneGraph compiling and installed -on your system. You may also need to download libraries that parts of -the -OpenSceneGraph depend upon, such as Producer. Check the dependencies -list for further details. -

    -

    For full instructions of how to run the examples read the examples -page. -

    -

    -Learning how to use the OpenSceneGraph

    -

    The main collections of resources for learning how to use the -OpenSceneGraph can be found on openscenegraph.org documentaiton page, -please check this out regular for new entries.
    -

    -

    The OpenSceneGraph distribution comes with a reference guide for -each of -the component libraries - osg, osgDB, osgUtil, osgText, osgSim, -osgParticle and osgProducer, a set -of 42 examples - the source of which can be found in examples/ -directory in the distribution. For questions -or help which can't be easily be answered by the reference guide and -examples -source, one should join the mailing list (details below). -

    -

    Two sets of online tutorial been written by members of the -OpenSceneGraph community:
    -    Jason McVeigh's OpenSceneGraph Tutorials
    -    Joseph Sullivan's  OpenSceneGraph -Tutorials

    -A programming guide will be available in form of a OpenSceneGraph -book -which is being written by Don Burns and Robert Osfield, parts of it -will -be available online. -

    -

    Although not directly related to the OpenSceneGraph, once can learn -about scene graph technology from such sources as the Open -Inventor Mentor, and Performer -Programming Guides. The latter is the closer in design to -the OpenSceneGraph, although the Performer manuals are in C, alas. Also -of use -as a background to some of the techniques used is a SIGGRAPH Vis-Sim -course. -

    -

    The OpenSceneGraph uses OpenGL and does so with a deliberately thin -layer, -making it easy to control the underlying OpenGL and to extend it with -OpenGL -extensions. The close tie with OpenGL is also reflected in the naming -of -many of the OpenGL state related classes, and the parameters that they -encapsulate, which means that knowledge of OpenGL itself will go a long -way -to understanding how to get the best out of the OpenSceneGraph. To this -end it is worth obtaining a copy of the OpenGL programming guide - `Red -Book` and OpenGL reference guide 'Blue Book'. The main OpenGL -website is also a good source of links and further information. -

    -

    -Support and discussion - the osg-user mailing list

    -For scene graph related questions, bug reports, bug fixes, and general -design and development discussion one should join the osg-user -mailing list, and check the the mailing list archives. -

    Professional support is also available in the form of confidential -online, -phone and onsite support and consultancy, for details contact Robert -Osfield -at robert@openscenegraph.com. -

    - - diff --git a/doc/osgdem.html b/doc/osgdem.html deleted file mode 100644 index 7c46b4998..000000000 --- a/doc/osgdem.html +++ /dev/null @@ -1,373 +0,0 @@ - - - - - - examples - - - - - - - - - - - - - - - - - - - - -
    IndexIntroductionContentsInstallDependenciesexamplesDataViewerStereoosgdemPlanReference Guides
    -

    -Using osgdem to generate geospatial -terrain databases

    -
      -
    1. Quick step by step guide
    2. -
    3. osgdem options
    4. -
    -
    -

    Quick step by step guide:

    -What follows are the steps required to get osgTerrain/osgdem compiling and -an example of how to use it to process imagery and DEM's to generate a -paged databases.
    -
    -1) Download, compile & install GDAL.

    -2) Get the latest OSG in CVS.
    -
    -3) For UNIX 'make' users, make a copy of Make/dependencies and change the -GDAL_INSTALL entry to:
    -
    -
    set -GDAL_INSTALL = true
    -
    -
    -   
    Then tell the build to use your custom -dependencies by setting the environmental variable OSG_DEPENDENCIES to -the absolute path to your file i.e.:
    -
    -
    export -OSG_DEPENDENCIES=/home/billgates/my_osg_dependencies
    -

    -4) Rebuild the OSG & install (if you haven't already).

    -5) Oh, make sure you have a couple of GB of spare disk space,  because -you're going to need it :-)

    -6) Download some data, for this example I'm using the Puget Sound data -at:

    -        http://www.cc.gatech.edu/projects/large_models/ps.html -

    -        Download Elevation Map: -16385 × 16385 PNG: 188MB
    -         Download Texture Map: -16384 × 16384 PNG: 268MB  
    -
    -7) To avoid aliasing artifacts when accessing data I use GDAL -utilitiy -programs to generate overviews (basically mip maps stored in the -.tiff format) -via:

    -
    -
    gdal_translate -ps_height_16k.png -ps_height_16k.tif
    -gdaladdo -r average ps_height_16k.tif -2 4 8 16 32
    -  
    -gdal_translate ps_texture_16k.png -ps_texture_16k.tif
    -gdaladdo -r average ps_texture_16k.tif -2 4 8 16 32
    -
    - 
    -
    -8) Now its time to run the osgdem example to generate your PagedLOD -database, the more levels you generate the longer it will take -(exponentially so). 'osgdem' is just a front end to osgTerrain::DataSet -where all the hard work happens. Here's what to run :
    -
    -
    osgdem ---xx 10 --yy 10 -t ../ps_texture.tif \
    -        -    ---xx 10 --yy 10 -d ../ps_height.tif \
    -          -  --l 8 \
    -         -  -v 0.1 \
    -           --o puget.ive
    -
    -
    -Then go away for lunch, afternoon and tea, as generating this much data -takes a while... If you don't wish to wait for the full database then -reduce the number of levels it generates by setting the -l option to a -lower value such as 3.
    -
    -The command line options used above are:
    -
     
    -The first part the --xx and --yy is specifying the size of the pixels -in meters, since these png/tif don't have any geospatial data of their -own, if you have geospatialised files then you won't need this.
    -
    -The second part -t <filename> is the option for specificing the -texture maps to use, you can use as many times as you wish, -osgTerrain::DataSet will moziac them into a single database.  
    -
    -The third part -d is the option for specifying the digital elevation -maps to use, as with the textures you can use as many as you like.

    -The -l option specificies the maximum number of levels to generate. If -you use a large number then the database generation will stop once the -max resolution of your source data is matched by the resulting database. -The database generation will decend further where there is high res -source -data, decend less where there is lower res data.
    -
    -The -v option specifies the scaling factor which the height is -multiplied by.
    -
    -And finally the -o <filename> is the output format to generate the -databases in. This will be the name of the topmost file in the one you -should load. It can be a .ive or a .osg. The .ive is faster and has -embedded files. 
    -
    -
    -9) Time to play. Simply load the database in your app (make sure it -supports the osgDB::DatabasePager - see osgsimplepager -example for details). The standard osgviewer works just fine so, -here goes:

    -   osgviewer output.ive

    -
    -10) You don't actually have to wait for osgdem to complete before you -can browse the database, since osgdem generates -the topmost tiles first. Its not totally robust since osgviewer can end -up -loading tiles that are still being written by osgdem, but it doesn't -crash -here under Linux, so you might be lucky too.
    -
    -11) If your imagery and DEMs have geospatial coords associated with -them then the -xx, --yy and -v options will not be required, making -it much simplier to specify - you just need to specifiy options such as --t imge.tif and -d terran.dt0 -without any need to set the coordinate system.
    -
    -12) osgdem can automatically handle mosaicing of sets of files. These -can be specified via a sequence of -t -<filename> and -d -<filename> pairs on the commandline, or via -t <directoryname> and -d <directoryname>.

    -
    -

    osgdem options

    -There are of osgdem options to use, to list the full ranges of options -do:
    -
    -
    osgdem ---help
    -
    -
    -And you should see:
    -
    -

    -osgdem --help
    -Usage: osgdem [options] filename -...
    -Options:
    -  ---HEIGHT_FIELD                          -Create a height field database
    -  ---LOD                                   -Create a LOD'd database
    -  ---POLYGONAL                             -Create a height field database
    -  ---PagedLOD                              -Create a PagedLOD'd database
    -  ---RGB-16                                -Use 16bit RGB destination imagery
    -  ---RGB-24                                -Use 24bit RGB destination imagery
    -  ---comment                               -Added a comment/description string to
    -                                          -the top most node in the dataset
    -  ---compressed                            -Use OpenGL compression on destination
    -                                          -imagery
    -  --cs <coordinates -system string>        Set the -coordinates system of source
    -                                          -imagery, DEM or destination database.
    -                                          -The string may be any of the usual
    -                                          -GDAL/OGR forms, complete WKT, PROJ.4,
    -                                          -EPS
    -  ---max-anisotropy                        -Max anisotropy level to use when
    -                                          -texturing, defaults to 1.0.
    -  ---max-visible-distance-of-top-level     Set the -maximum visible distance that
    -                                          -the top most tile can be viewed at
    -  ---mip-mapping-hardware                  -Use mip mapped textures, and generate
    -                                          -the mipmaps in hardware when
    -                                          -available.
    -  ---mip-mapping-imagery                   -Use mip mapped textures, and generate
    -                                          -the mipmaps in imagery.
    -  ---no-mip-mapping                        -Disable mip mapping of textures
    -  ---radius-to-max-visible-distance-ratio  Set the maximum visible -distance ratio
    -                                          -for all tiles apart from the top most
    -                                          -tile. The maximum visuble distance is
    -                                          -computed from the ratio * tile radius.
    -  --skirt-ratio -<float>                   -Set the ratio of skirt height to tile
    -                                          -size
    -  ---tile-image-size                       -Set the tile maximum image size
    -  ---tile-terrain-size                     -Set the tile maximum terrain size
    -  --wkt <WKT -string>                      -Set the coordinates system of source
    -                                          -imagery, DEM or destination database
    -                                          -in WellKownText form.
    -  --wkt-file <WKT -file>                   -Set the coordinates system of source
    -                                          -imagery, DEM or destination database
    -                                          -by as file containing WellKownText
    -                                          -definition.
    -  -d -<filename>                           -Specify the digital elevation map
    -                                          -input file to process
    -  -e <x> <y> -<w> -<h>                      -Extents of the model to generate
    -  -h or ---help                            -Display this information
    -  -l -<numOfLevels>                        -Specify the number of PagedLOD levels
    -                                          -to generate
    -  -m -<filename>                           -Specify the 3D database model input
    -                                          -file to process
    -  -o -<outputfile>                         -Specify the output master file to
    -                                          -generate
    -  -t -<filename>                           -Specify the texture map input file to
    -                                          -process
    -  --v                                      -Set the vertical multiplier
    -
    -
    -
    - - diff --git a/doc/osgviewer.html b/doc/osgviewer.html deleted file mode 100644 index fdd76c4f3..000000000 --- a/doc/osgviewer.html +++ /dev/null @@ -1,290 +0,0 @@ - - - - - - Scene graph viewer - - - - - - - - - - - - - - - - - - - - -
    Index Introduction Contents Install Dependencies Demos Data Viewer Stereo osgdemPlan Reference Guides
    - -

    osgProducer::Viewer / Scene Graph Viewer (osgviewer) keyboard bindings:

    - -


    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    KeyBinding
    -
    '1'
    -
    Select the trackball camera manipulator. -
    Left mouse button - rotate, -
    Middle (or Left & Right) mouse button - pan, -
    Right mouse button - zoom.
    -
    -
    '2'
    -
    Select the flight camera manipulator. -
    Left mouse button - speed up, -
    Middle (or Left & Right) mouse button - stop, -
    Right mouse button - slow down, reverse. -
    Move mouse left to roll left, right to roll right. -
    Move mouse back (down) to pitch nose up, forward to pitch down. -
    In mode Q, the default, selected by pressing 'q' -
    The flight path is yawed automatically into the turn to produce -a similar effect as flying an aircaft.
    -In mode A, selected by pressing 'a' -
    The flight path is not yawed automatically into the turn, producing -a similar effect as space/marine flight.
    -
    -
    -
    '3'
    -
    Select the drive camera manipulator. -
      -
    In mode Q, the default, selected by pressing 'q'
    - -
    -
    Move mouse left to turn left, right to turn right. -
    Move mouse back (down) to reverse, forward to drive forward.
    -In mode A, selected by pressing 'a' -
    Move mouse left to turn left, right to turn right. -
    Left mouse button - speed up, -
    Middle (or Left & Right) mouse button - stop, -
    Right mouse button - slow down, reverse.
    -
    -
    -
    '+'
    -
    Half the frame delay which speeds up the frame rate on Linux and -
    Windows.
    -
    '-'
    -
    Double the frame delay and therefore reduce the frame rate on Linux -and Windows.
    -
    '/'
    -
    Divide the Level-Of-Detail (LOD) bias by 1.5, to encourage the selection -of more complex LOD children.
    -
    '*'
    -
    Multiple the Level-of-Detail (LOD) bias by 1.5, to encourage the -
    selection of less complex LOD children.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    'c' 
    -
    Toggle Small Feature Culling on or off.
    -
    'C'
    -
    Toggle View Frustum Culling on or off.
    -
    'd'
    -
    Toggle use of OpenGL's display lists.
    -
    'b'
    -
    Toggle OpenGL's backface culling.
    -
    't'
    -
    Toggle OpenGL texturing on or off.
    -
    'T'
    -
    Toggle OpenGL two-sided lighting on or off.
    -
    'l'
    -
    Toggle OpenGL lighting on or off.
    -
    'L'
    -
    Toggle SceneView lighting mode between HEADLIGHT, SKY_LIGHT and NO_SCENEVIEW_LIGHT.
    -
    's'
    -
    Toggle OpenGL shade model between flat and smooth shading.
    -
    'w'
    -
    Toggle OpenGL polygon mode between solid, wireframe and points modes.
    -
    'i'
    -
    Calculate and report the intersections with the scene under thecurrent -mouse x and mouse y position.
    -
    'r'
    -
    Calculate and report the intersections with the scene under the currentmouse -x and mouse y position and delete the nearest interesected geoset.
    -
    'p'
    -
    Print frame rate statistics on each frame.
    -
    'o'
    -
    Output the loaded scene to 'saved_model.osg'.
    -
    'O'
    -
    Snap a screen shot image and write it out 'screenshot.bmp'.
    -
    '?'/'h'
    -
    Print out osgviewer's keyboard bindings.
    -
    'f'
    -
    -
    Toggle between fullscreen and the previous window size. Note Producer -fullscreen works properly on Windows and Irix, but on Linux it just maximizes -the window and leaves the window's borders.
    -
    -
    Space
    -
    Reset scene to the default view.
    -
    Esc 
    -
      Exit osgviewer.
    - - - diff --git a/doc/plan.html b/doc/plan.html deleted file mode 100644 index 3c6b114d8..000000000 --- a/doc/plan.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - Plans for future developments - - - - - - - - - - - - - - - - - - - - -
    IndexIntroductionContentsInstallDependenciesexamplesDataViewerStereoosgdemPlanReference Guides
    -

    -Plans for future developments

    -Now we have reached the beta phase (0.9.x) of OpenScenegGraph project, -and are now working towards the full 1.0 release, with a likely release -date in second half of 2004. -

    Future work include:

    -
      -
    • -StateSet composite structure for managing multi-pass effects and -alternate rendering implemations. This will allow one to manage the use -of extensions and provide effecient fallback rendering paths.
    • -
    • -Clean up the API for managing multi-stage and multi-pass rendering -within -the scene graph.
    • -
    • -Support for clustering in Open Producer and osgProducer.
    • -
    • -Enhance osgDB and plugins to allow them to be used with alternate input -streams. Add support for native binary file format for rapid loading -and saving of scene graphs.
    • -
    • Introduce a new library osgEnvironment, which adds support for -creating -shapes and environmental effects such as stars, planets, cloud layers, -oceans and -ground planes.
    • -
    • -Integrate unit tests for all classes, using the osgUtx Unit Test -Framework.
    • -
    -

    -Books, tutorials and demonstrations

    -
      -
    • -Don Burns and Robert Osfield to write the OpenSceneGraph book!
    • -
    • -Development of tutorials to published as part of the distribution and -on -the bazaar
    • -
    • -Development of technology demonstrations for shows, presentations and -training.
    • -
    -
    - - - diff --git a/doc/stereo.html b/doc/stereo.html deleted file mode 100644 index 88e139fc3..000000000 --- a/doc/stereo.html +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - Native stereo support - - - - - - - - - - - - - - - - - - - - -
    IndexIntroductionContentsInstallDependenciesexamplesDataViewerStereoosgdemPlanReference Guides
    -

    Native Support for Stereo

    -The OSG has support for anaglyphic stereo (i.e. red/green or red/cyan -glasses), quad buffered stereo (i.e. active stereo using shutter -glasses, or passive stereo using polarized projectors & glasses) -and horizontal and vertical split window stereo implementations. Almost -all OSG applications have the potential for stereo support simply by -setting the relevant environmental variables, or via command line -arguments. Little or no code changes will be required, the support is -handled transparently inside osgUtil::SceneView's handling of -rendering. It is a simple as:
    -    osgviewer --stereo cow.osg -

    If the user is planning to use head tracked stereo, or a cave then -it is currently recommend to set it up via a VR toolkit such as -VRjuggler, in this case refer to the VR toolkits handling of stereo, -and keep all the OSG's stereo specific environment variables (below) -set to OFF, or set the values to off within own your own applications.
    -

    -
    -

    The environmental variables of interest:

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    OSG_STEREOONTurn stereo on 

    -
    OFFTurn stereo off (default). 
    OSG_STEREO_MODEANAGLYPHICUse anaglyphic stereo when in stereo (default). 

    -
    QUAD_BUFFERUse quad buffered stereo when in stereo. 

    -
    HORIZONTAL_SPLITUse horizontal split stereo mode when in stereo 

    -
    VERTICAL_SPLITUse vertical split stereo mode when in stereo 
    OSG_SCREEN_DISTANCE0.50Set the distance the viewer is from screen in metres (default -shown) 
    OSG_SCREEN_HEIGHT0.26Set the height if image on the screen in metres (default -shown) 
    OSG_EYE_SEPARATION0.06Set the eye separation - interoccular distance (default -shown.) 
    OSG_SPLIT_STEREO_HORIZONTAL_SEPARATION42Set the number of pixels between the left and right viewports -(default shown).
    OSG_SPLIT_STEREO_HORIZONTAL_EYE_MAPPINGLEFT_EYE_LEFT_VIEWPORTSet the left eye to render to left viewport, right eye to -right viewport (default). 

    -
    LEFT_EYE_RIGHT_VIEWPORTSet the left eye to render to right viewport, right eye to -left viewport. 
    OSG_SPLIT_STEREO_VERTICAL_SEPARATION42Set the number of pixels between the top and bottom viewports -(default shown).
    OSG_SPLIT_STEREO_VERTICAL_EYE_MAPPINGLEFT_EYE_TOP_VIEWPORTSet the left eye to render to top viewport, right eye to -bottom viewport (default). 

    -
    LEFT_EYE_BOTTOM_VIEWPORTSet the left eye to render to bottom viewport, right eye to -top viewport. 
    -
    -

    Command line arguments can be used to override these settings:

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -stereo
    -
    Switch on stereo. 
    -stereoONSwitch on stereo. 

    -
    OFFSwitch off stereo. 

    -
    ANAGLYPHICSwitch on ANAGLYPHIC stereo. 

    -
    QUAD_BUFFERSwitch on QUAD_BUFFER stereo. 

    -
    VERTICAL_SPLITSwitch on VERTICAL_SPLIT stereo. 

    -
    HORIZONTAL_SPLITSwitch on VERTICAL_SPLIT stereo. 
    -
    -

    Examples:

    -To invoke stereo from the comandline:
    -    osgviewer -stereo cow.osg -

    To invoke quad buffered stereo from the commandline:
    -    osgviewer -stereo QUAD_BUFFER cow.osg

    -

    To force all apps to start up in quad buffered stereo (if system -supports it)
    -    export OSG_STEREO=ON
    -    export OSG_STEREO_MODE=QUAD_BUFFER
    -    osgviewer cow.osg

    -

    To set quad buffered stereo to the default, but use the commandline -to switch stereo on:
    -    export OSG_STEREO=OFF
    -    export OSG_STEREO_MODE=QUAD_BUFFER
    -    osgviewer -stereo cow.osg

    -

    -
    -

    Size matters:

    -For appropriate depth perception the stereo code creates separate left -and eye views, both the frustum and modelview are shifted to account for -the separate eye views.  To achieve the right amount of adjustment -the OSG requires the users eye separation, the distance from the eyes to -the screen and the height of the screen.  The OSG will use the -defaults of 0.05m,0.5m and 0.26m respectively which are assumed to be -reasonable defaults for most users workstation configurations, note the -OSG_SCREEN_HEIGHT is the image height rather than total size of your -monitor/display surface.  For the best stereo effects please -measure these values and set them up via the environmental -variables.  Once set the views you get should give improved depth -perception.  A good way of measuring how well you are configured -for your display is to fly away from objects (using the -FlightManipulator for instance, but not the TrackballManipulator, see -below) so that they go of toward infinity. As they move away the offset -between the two images should tend towards your eye separation, if you -achieve this then the object will be perceived as at infinity.
    -
    - - diff --git a/index.html b/index.html deleted file mode 100644 index e3f90f085..000000000 --- a/index.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - Documentionn Index - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    IndexIntroductionContentsInstallDependenciesExamplesDataViewerStereoosgdemPlanReference Guides
    - -

    -Index

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    IntroductionIntroduction to Scene Graph in general, the OpenSceneGraph project -itself and how to use it.
    ContentsA list of the directories in the distribution.
    InstallA guide of how to compile and install on all the supported platforms.
    DependenciesListing of all the dependencies of the project, with links of where -to download them.
    ExamplesThumbnails and info on all the example applications which come with this -distribution.
    DataList of websites where one can download interesting and useful data -from.
    ViewerList of key bindings support by the osgGLUT::Viewer and hence sgv and -the rest of demos.
    StereoDocumentation on the commandline parameters and environmental variables -which control stereo.
    osgdemDocumentation on the how to use the osgdem utility to generate paged geospatial databases.
    PlanDetails of development plans.
    Reference GuidesReference guides of the core libraries.
    - - -