<html> <head> <title>OGRE Sample Applications</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><STYLE TYPE="text/css"> <!-- .MainHeader { font-weight: bold; color: #FFFF33; background-color: #006600; font-size: 10pt} body { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt; color: #CCFFCC; background-color: #003300} .BorderHeader { background-color: #999900; font-size: 8pt; font-weight: bold; color: #333300; text-align: center} .MainContent { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt; color: #CCFFCC } .BorderContent { font-size: 8pt; color: #66CC33; border-color: black #666600 #666600; padding-top: 2px; padding-right: 2px; padding-bottom: 10px; padding-left: 2px; margin-bottom: 2px; border-style: solid; border-top-width: 0px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px} a:link { color: #FFFF00; text-decoration: underline} a:hover { color: #FFFFFF; text-decoration: underline} a:visited { color: #FFCC66; text-decoration: underline} li { color: #66CC33; list-style-type: circle; position: relative; left: -15px; clip: rect( )} .NewsDate { color: #CCFFCC; font-weight: bold} td { font-size: 10pt} th { font-size: 10pt} .Annotation { font-size: 10px} H1 { text-align: center; } A.qindex {} A.qindexRef {} A.el { text-decoration: none; font-weight: bold } A.elRef { font-weight: bold } A.code { text-decoration: none; font-weight: normal; color: #4444ee } A.codeRef { font-weight: normal; color: #4444ee } DL.el { margin-left: -1cm } DIV.fragment { width: 100%; border: none; background-color: #003300 } DIV.ah { background-color: black; margin-bottom: 3; margin-top: 3 } TD.md { background-color: #006600 } DIV.groupHeader { margin-left: 16; margin-top: 12; margin-bottom: 6; font-weight: bold } DIV.groupText { margin-left: 16; font-style: italic; font-size: smaller } FONT.keyword { color: #008000 } FONT.keywordtype { color: #999920 } FONT.keywordflow { color: #e0FF00 } FONT.comment { color: #009900 } FONT.preprocessor { color: #809020 } FONT.stringliteral { color: #002080 } FONT.charliteral { color: #008080 } H3 { FONT-FAMILY: trebuchet ms,helvetica,arial } .ex { FONT-SIZE: 8pt; FONT-FAMILY: tahoma } CODE.keywordtype { COLOR: #00ccff } CODE.keyword { FONT-WEIGHT: bold; COLOR: #00ccff } CODE.fn { COLOR: white; FONT-WEIGHT: bold; } CODE.var { COLOR: #dcdcdc; } CODE.macro { COLOR: #809020; FONT-WEIGHT: bold; } CODE.comm { COLOR: lime } CODE.num { COLOR: purple } CODE.str { COLOR: #ffcc33; font-style: italic } .SectionHeader { font-size: 14px; color: #FFFFCC; font-weight: bold} .header { font-size: 16px; font-weight: bold; color: #FFFFCC} --> </STYLE> </head> <body bgcolor="#FFFFFF" text="#000000"> <p align="center" class="header">OGRE (Object-Oriented Graphics Rendering Engine)</p><P ALIGN="center" CLASS="header">The Sample Applications</P><P ALIGN="center" CLASS="header"><A HREF="http://www.ogre3d.org">http://www.ogre3d.org</A></P><P CLASS="MainHeader">The Samples</P><P CLASS="MainContent">The samples provided show you the kind of thing you can do with OGRE. To be fair, we haven't ourselves done any major demos with it; after all we spend all our time writing the engine! So these demos are just short snippets showing you how quick it is to get an OGRE application up and running with little fuss.</P><P>All the samples use a couple of framework classes to make their jobs easier and the code shorter and more about WHAT you're rendering rather than HOW you're doing it. Feel free to reuse the framework there, which consists mainly of a base object called ExampleApplication. This handles all the engine initialisation and all you need to do is subclass it and override the createScene method to provide your own scene. You can optionally override any of the other methods if you wish to have more control over the scene. By default the camera is controllable via the standard freelook and WASD key combinations, but you can change this by replacing or subclassing the ExampleFrameListener class.</P><P>How do you find out what all the terms and classes mean? Take a look at the <A HREF="../Tutorials/index.html">tutorials section</A> for more information, and the <A HREF="../api/html/index.html">API reference</A> after this. </P><P CLASS="MainContent">Here's a summary of the examples:</P><TABLE WIDTH="100%" BORDER="1" CLASS="MainContent" CELLSPACING="0"> <TR> <TD WIDTH="114">BezierPatch</TD><TD WIDTH="994">Demonstrates the use of bezier patches for approximating curved surfaces. Displays a single curved surface at a predefined subdivision level.</TD></TR> <TR> <TD WIDTH="114"> <P>BSP</P></TD><TD WIDTH="994"><P>Demonstrates a specialisation of the SceneManager class for a very specific kind of scene - the indoor level as used by countless first-person shooter games. Loads Quake3Arena levels.<BR><B>IMPORTANT NOTE:</B> For copyright reasons no Quake3 data can be distributed with OGRE. You are expected to provide your own level data to use this example - edit the quake3settings.cfg file to specify the location of your pak0.pk3 file and the map you wish to load.</P></TD></TR><TR><TD WIDTH="114">BspCollision</TD><TD WIDTH="994">Demonstrates the use of collision and physics with both movable objects and level geometry. This demo uses the ReferenceAppLayer library to provide the linkage between OGRE and ODE, the library which performs the physics. The ReferenceAppLayer is an example of how to tie other libraries into your applications alongside OGRE for the graphics.</TD></TR><TR><TD WIDTH="114">CubeMapping</TD><TD WIDTH="994">Shows the effect created when using a cubic reflection map to simulate reflections. May not work on older cards.</TD></TR><TR><TD WIDTH="114">Dot3Bump</TD><TD WIDTH="994">Demonstrates per-pixel bump mapping by using the DOT3 extenstion. May not work on older cards. </TD></TR><TR><TD WIDTH="114">EnvMapping</TD><TD WIDTH="994">Demonstrates the environment mapping effect which can be applied to texture layers, together with the blending that can be used to combine multiple texture layers. Also now includes a few billboards as flare effects</TD></TR><TR><TD WIDTH="114">Lighting</TD><TD WIDTH="994">Demonstrates the use of dynamic coloured lights. </TD></TR><TR><TD WIDTH="114">ParticleFX</TD><TD WIDTH="994">Demonstrates particle system effects, using predefined particle scripts.</TD></TR><TR><TD WIDTH="114">SkeletalAnimation</TD><TD WIDTH="994">Demonstrates skeletal animation where a series of bones are used to animate a mesh (in this case a walking robot)</TD></TR><TR><TD WIDTH="114">SkyPlane</TD><TD WIDTH="994">Shows how a skyplane can be used, i.e. a fixed camera-relative plane which can be used to create a flat sky.</TD></TR><TR><TD WIDTH="114">SkyBox</TD><TD WIDTH="994">Shows how a skybox is used, creating a complete wrap-around sky</TD></TR><TR><TD WIDTH="114">SkyDome</TD><TD WIDTH="994">Demonstrates the skydome feature, an illusion of a curved dome above the camera displaying the sky.</TD></TR><TR><TD WIDTH="114">Transparency</TD><TD WIDTH="994">Shows what happens when you apply scene-level transparency to an object, i.e. not just blending between texture layers onthe same object by blending new objects with those already in the scene.</TD></TR><TR><TD WIDTH="114">TextureFX</TD><TD WIDTH="994">A demo of a few texture effects (scrolling, scaling, rotating) that can be done with Ogre's 'Controller' architecture, a way of using input values from one object (in this case time) to affect another (in this case texture coordinates) by translating them through a function. This could be as simple as a scale factor, or be a little more complex such as a wave function.</TD></TR><TR><TD WIDTH="114">Water</TD><TD WIDTH="994">An example of using a custom Renderable to create a special effect; in this case rippling water.</TD></TR> </TABLE><P>All the examples are controlled as follows:</P><TABLE WIDTH="100%" BORDER="1" CLASS="MainContent" CELLSPACING="0"> <TR> <TD WIDTH="139">Mouse</TD><TD WIDTH="969">Freelook</TD></TR> <TR> <TD WIDTH="139"> <P>W or Up Arrow</P></TD><TD WIDTH="969"><P>Camera forward</P></TD></TR><TR><TD WIDTH="139">S or Down Arrow</TD><TD WIDTH="969">Camera backwards</TD></TR><TR><TD WIDTH="139">A</TD><TD WIDTH="969">Camera strafe left</TD></TR><TR><TD WIDTH="139">D</TD><TD WIDTH="969">Camera strafe right</TD></TR><TR><TD WIDTH="139">PageUp</TD><TD WIDTH="969">Camera ascend </TD></TR><TR><TD WIDTH="139">PageDown</TD><TD WIDTH="969">Camera descend</TD></TR><TR><TD WIDTH="139">O & P</TD><TD WIDTH="969">Yaw the root scene node (and thus all the movable objects in the scene)</TD></TR><TR><TD WIDTH="139">I & K</TD><TD WIDTH="969">Pitch the root scene node (and thus all the movable objects in the scene)</TD></TR><TR><TD WIDTH="139">F</TD><TD WIDTH="969">Toggle frame rate stats on/off</TD></TR> </TABLE><P CLASS="MainHeader">Making your own applications</P><P>Take a look at the <A HREF="../Tutorials/index.html">tutorials</A>, this is the best place to start to learn OGRE. Note that you must include the Ogre.material, Ogre.overlay and sample.fontdef in one of your application's resource locations (see the tutorials for more info about resource locations) since these provide core scripts for the system.</P><P CLASS="MainHeader"> </P><P CLASS="MainContent" ALIGN="CENTER"><A HREF="../ReadMe.html">Back to Readme.html</A></P><P CLASS="MainContent" ALIGN="LEFT">Copyright © 2002 by The OGRE Team<BR /> <SCRIPT TYPE="text/javascript"> <!--//hide script from old browsers document.write( "Last modified "+ document.lastModified ); //end hiding contents --> </SCRIPT> </P> </body> </html>