Recast NavMesh in Ogre (w/ Entity Demo)

A place to show off your latest screenshots and for people to comment on them. Only start a new thread here if you have some nice images to show off!
User avatar
wilson77
Halfling
Posts: 50
Joined: Mon Mar 08, 2010 3:49 am
Location: Brisbane, Australia
x 6

Recast NavMesh in Ogre (w/ Entity Demo)

Post by wilson77 »

Update 13th May 2010 - Code available at bitBucket.org repository

I have updated the code with an Entity Demo, a Basic Help System and I have enabled the options in the General Options screen, the screenshots below dont really do it justice, but i'll put together a quick vid when I get the chance.

The options screen and the help system are fairly quick and nasty, but they do they job and for a demo like this I think thats fine. The highlight of this update is really the Entity/Agent steering pathing movement demo.

The system is actually alot more complex than it looks on the cover, with the steering system being completely decoupled from the pathing, except for a waypoint list, it generates the required steering forces to move the agent from point to point along the path. The steering and basic movement system is taken from code written by Mat Buckland in 2002, and is basically a 2D oriented steering system that I have modified to work with the demo. It is an expansive system and includes code to handle all kinds of steering behaviours from Path Following, evading/pursuing/hide, seeking/fleeing, obstacle avoidance, non penetration contraints, cell-space partitioning for updates, seperation/cohesion/aligment and various ways/algorithms of calculating the steering force.

The Entity/Agent model itself is the Ogre3D Sinbad model, the new Ogre. The State Machine controlling the entities states, either idling or pathing at the moment(though more are planned) is taken from code originally written by Steve Rabin in 2005. The Entity model is being controlled by a class based on the Ogre3D character sample, for the animation control mainly, which is derived from the steering behaviour and state machine classes to make it an autonomous agent. The state machine is very simple at the moment, though I have plans for expanding it with an "auto" mode in which the agents will have some interaction. Currently, there is an "Idle" mode and a "Pathing" mode. In Pathing mode, the agent will randomly generate paths using Detour on a Recast NavMesh in it's environment, once it has a path, it will switch to a WalkPath state and follow the path. Once it gets to the end of the path, it will switch a flag to tell it to start searching for a new path. In Idle mode, the Agent sits still(it has a bug atm with the state machine message where its velocity wont stay exactly zero as it drops a msg atm, but it only randomly drops it rarely-i have a solution in the works) and switches from a dance animation mode to an idle animation mode to a jumping anim.

Im pushing through the changesets to bitbucket as Im updating this post, but a slow connection means it will take awhile.

Along with the repository download, Ogre3D 1.7 minimum(for the Terrain component) and CEGUI 0.7.1 are required for the project to be built. I used Ogre 1.8 Byatis(unstable) myself, but there should be no problems with using 1.7 .

The repository is a Mercurial repository, and can be best accessed with TortoiseHG from in a windows environment(in my opinion) if you are not a command line expert.

Here is the link to the repository, it is called OgreRecast :

http://bitbucket.org/paulwilson77/ogrerecast


And here is a link to the Wiki, which contains extra information and will be the best place to be kept completely upto date as I muck around with Recast inside Ogre.

http://bitbucket.org/paulwilson77/ogrerecast/wiki/Home


If anybody has any problems getting anything to work, please feel free to ask. All comments and criticism is welcome. If you are interested in contributiong or getting write access to the repo please send me a pm on the bitbucket site with some info on what you want to do etc.


Here are some new screenshots showing the AI Entites on the meshes making paths.


AI Entities Pathing on Ogre Terrain
Image

Sinbad dancing with boredom waiting for the pathing button to be clicked
Image

Pathing on original Recast demo meshes
Image

Basic Help system window
Image

Application Options Window
Image



Original Post

Hello All,
FIrstly, you can find info about Recast/Detour itself here :
http://code.google.com/p/recastnavigation/

Ive been working the past couple of weeks on getting Ogre's new terrain component's geometry into Recast/Detour, including multiple pages and any entities that are on it ( buildings, terrain clutter etc ). I have almost finished putting together a demo app, the code is all working, im just getting rid of the last few bugs and adjusting the materials for the debug drawing so it all looks ok.. Im using manual objects for the debug drawing atm and yes, it makes the frame rate crawl( not important though, as I wont be visualizing the mesh in an actual product ).

I thought I would post this topic, along with some screenies to show what Ive accomplished so far. The code will be available within a day or 2 at most, from a Bitbucket repository that I have setup, though at the moment its only a Visual Studio project ( ill look into makefiles for others, there is no windows dependant code in there so it should run on any platform, though some minor changes may be needed )

Ive stuck to a similar framework to what the Recast Demo itself uses, as that seems the easiest way to visualize the meshes and test everything is working, Ive just added the code for Ogre meshes and terrain. I have used a bunch of functions that I pulled from Ogitor in relation to the terrain blendmapping and importing it from a single large heightmap. This terrain was created from a single 1025x1025 png heightmap image(one of the ones that comes with PLSM2 I think from memory) broken into 4 pages, each 513 verts, 6000x6000 world units, 129 max batch(33 min) - so far the terrain is not loading itself with paging, its just all loading up at once before the "Build NavMesh" button is clicked.
Last edited by wilson77 on Wed May 12, 2010 6:07 pm, edited 3 times in total.
Everything takes time.... Its a crying shame there is never enough of it...
User avatar
sinbad
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 19269
Joined: Sun Oct 06, 2002 11:19 pm
Location: Guernsey, Channel Islands
x 66
Contact:

Re: Recast NavMesh in Ogre (w/ Terrain)

Post by sinbad »

Looking really interesting! Those are pretty large terrain tiles too, glad that the new terrain component is proving useful.
User avatar
tod
Troll
Posts: 1394
Joined: Wed Aug 02, 2006 9:41 am
Location: Bucharest
x 94
Contact:

Re: Recast NavMesh in Ogre (w/ Terrain)

Post by tod »

Looks great I can't wait to see this in action :D
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Re: Recast NavMesh in Ogre (w/ Terrain)

Post by jacmoe »

Having goofed around with Recast and Detour myself, I am really looking forward to seeing more of this! :D

If you stole some code from Ogitor, I am hoping to steal some code from you back to Ogitor. :P

Recast/Detour is a seriously cool library, and with the coolest rendering library it can only get better. :)

<edit>
I especially like your integration with the terrain component! :)
</edit>
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
User avatar
wilson77
Halfling
Posts: 50
Joined: Mon Mar 08, 2010 3:49 am
Location: Brisbane, Australia
x 6

Re: Recast NavMesh in Ogre (w/ Terrain)

Post by wilson77 »

Those are pretty large terrain tiles too, glad that the new terrain component is proving useful
Funny you should say that, I originally had the tiles alot larger than they are now, 14kx14k units, but I ran into the problem of the demo taking over 2 hours to generate a single tile's navmesh, and that was with whats essentially useless settings. That kind of time isnt something that I would call demo friendly, so I reduced the size of the tiles down until I found a reasonable balance. At the moment, I can generate the entire 4 tile's Navmeshes in about 2-3 minutes, which isnt too bad. Im on what I would call a mid-level pc, core2 e8400 3gig, 2gig ddr2, nvidia 9800gt 512mb running winXP x86.

I do really like the new Terrain component, im looking forward to seeing it grow.
If you stole some code from Ogitor, I am hoping to steal some code from you back to Ogitor
Feel free :) I have marked in my code where everything that I took from somewhere else came from originally, including the parts that Ive modified. It will all be released as free, hopefully it will be useful to someone other than just me.

I have actually tossed around the idea of working on a Recast plugin for Ogitor, to allow navmesh generation and tweaking, though I havent had the time to dive into it's(Ogior's) plugin system yet or if it would even be possible(Im assumung it would be), it is on my todo list ;) Im using Ogitor myself for laying out scenes and tweaking the new Ogre terrains etc, so it's something that I will probably end up doing when I need it.
Everything takes time.... Its a crying shame there is never enough of it...
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Re: Recast NavMesh in Ogre (w/ Terrain)

Post by jacmoe »

wilson77 wrote:I have actually tossed around the idea of working on a Recast plugin for Ogitor, to allow navmesh generation and tweaking, though I havent had the time to dive into it's(Ogior's) plugin system yet or if it would even be possible(Im assumung it would be), it is on my todo list ;) Im using Ogitor myself for laying out scenes and tweaking the new Ogre terrains etc, so it's something that I will probably end up doing when I need it.
Me too. Hence my interest. :)
But your signature sums it up nicely - time is a scarce commodity.
Great to hear that you're using Detour, it's get too little attention IMO.
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
User avatar
KungFooMasta
OGRE Contributor
OGRE Contributor
Posts: 2087
Joined: Thu Mar 03, 2005 7:11 am
Location: WA, USA
x 16
Contact:

Re: Recast NavMesh in Ogre (w/ Terrain)

Post by KungFooMasta »

jacmoe wrote:Having goofed around with Recast and Detour myself, I am really looking forward to seeing more of this! :D
I'm in the same boat! Interested in seeing how you've used the library. In your second screenshot there are a lot of buildings. I only got as far as passing the terrain data to recast, but I assume everything in the scene should be passed in? For example I'm working on an RTS game and there will be a lot of trees. I'm guessing I will have to add tree triangle data to recast? (if not, did you filter out the terrain triangles to mark ones with buildings as not walkable?)

Also you're using a Tile NavMesh right? I need to support buildings/trees being created/destroyed in real time, which means the pathing should be affected. I hope the process of updating tiles is not difficult.. do you have any experiences to share?
Creator of QuickGUI!
dudeabot
Gnome
Posts: 334
Joined: Thu Jun 28, 2007 2:12 pm
Location: Brazil
x 5
Contact:

Re: Recast NavMesh in Ogre (w/ Terrain)

Post by dudeabot »

very nice! forgive the igonrance, but how would be this integrated with a physics engine for example, or even robot folowing points demo?

thanks!
User avatar
wilson77
Halfling
Posts: 50
Joined: Mon Mar 08, 2010 3:49 am
Location: Brisbane, Australia
x 6

Re: Recast NavMesh in Ogre (w/ Terrain)

Post by wilson77 »

very nice! forgive the igonrance, but how would be this integrated with a physics engine for example, or even robot folowing points demo?
Physics engines usually have their own heightfield shape helper classes, that you can either pass heightmaps, height data or the vert/index itself too. Im not too familiar with them all, I have used Bullet myself with Ogre(and ODE on its own long ago) and the data im generating for the terrain geometry is similar to what it gets passed. The pathfinding isnt really related to the physics , except in that some physics objects may affect it, I havent look at integrating the 2 like that yet though :) The Robot walking along points is something that is kind of half implemented in the demo, I have the robot entity in there animated and he gets placed where the mouse is clicked(Recasts raycasting) but at the moment thats all he does, I am planning on making him move along the "stepped" path, where you can press spacebar in the demo to step the path along a point at a time(Original recast demo feature).
I only got as far as passing the terrain data to recast, but I assume everything in the scene should be passed in?
Pretty much yes, if it can affect the navmesh then it should be passed in as some form of data. Possibly though passing the actual tree data itself may be a little too much, depending on the complexity of the tree models, I was thinking of doing what I do for phyics engine in that case and passing in a simple "long rectangle/convex" shape where the tree is to be placed, mainly so its only the trunks affect things and not the foliage. The process involves using a vector list of entities and a "getMeshInformation" method from the wiki, to get the entities vert/indexdata and then combining it with the manually generated terrain data. The only issue there is the transforms, the terrain data i generate is done in world space, but the entities data is retrieved in object space, so needs to be transformed before they are combined.

In my example above, the "city" mesh is made up of a bunch of entities that are all manually passed into a pair of single large vertex/index buffers and then onto recast itself(though initially that mesh was just "one big one" lol) though if you have a look at the city screenshot you can see ontop of some of the building that it's marked them as walkable, though you cant actualy get there from the ground without a connection. It is using a TileMesh for the demo( was originally SoloMesh whose code is stil in there, just not being used), and tiles can be loaded or added and removed singly and at runtime pretty close to instantly(read no hitching to regen small tiles at runtime), though Ive found that the smaller the tile size, the longer the mesh takes to generate as a whole, which isnt really a problem for a real world app like a game where it would all be pre-generated and just streamed in BUT I have run into a small problem where path generation in Detour suffers when the tile size is too small, it seems to be unable to find offmesh connections sometimes, I have to do some more tracing to find the exact cause though, I am guessing its some of my settings causing it at the moment. Possibly depending on the building geometry you are using, you may end up removing/adding tiles aswell as using convex volumes to mark or filter unwalkable areas(eg, remove affected tiles, place convex volume and then regen affected tiles). Recast itself in it's latest revision provides a bunch of tile related helper functions, to add/remove tiles to find tiles and regenerate them, also all the data needed to save and load is provided.

My demo is still a little buggy in some places, but I have most of them worked out now, Im just implementing a couple of small changes which I should be able to get done today sometime with a little luck and ill update the first post with details on where to grab the code from aswell as a pre-compiled demo for those who dont want to bother with the code.
Everything takes time.... Its a crying shame there is never enough of it...
User avatar
wilson77
Halfling
Posts: 50
Joined: Mon Mar 08, 2010 3:49 am
Location: Brisbane, Australia
x 6

Re: Recast NavMesh in Ogre (code Available)

Post by wilson77 »

An unceremonious /bump as the code is now available. All details are in the top post.

Please feel free to post any problems or questions, I will do my best to help.
Everything takes time.... Its a crying shame there is never enough of it...
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Re: Recast NavMesh in Ogre (code Available)

Post by jacmoe »

/* cloned */ :D
This is awesome - I wish this project a long and prosperous life - kudos to you. :)
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
User avatar
iloseall
Gremlin
Posts: 156
Joined: Sun Sep 14, 2003 3:54 am
Location: Beijing China
Contact:

Re: Recast NavMesh in Ogre (code Available)

Post by iloseall »

Very Cool!
I like this. I should try this in my project.
Thanks a lot!
User avatar
Fish
Greenskin
Posts: 131
Joined: Fri Aug 22, 2008 6:12 pm

Re: Recast NavMesh in Ogre (code Available)

Post by Fish »

Awesome! Nice work.
User avatar
wilson77
Halfling
Posts: 50
Joined: Mon Mar 08, 2010 3:49 am
Location: Brisbane, Australia
x 6

Re: Recast NavMesh in Ogre (code Available)

Post by wilson77 »

Thank you all for the kind words :)

I have made a few chagnes to the app. Ive implemented a "Help System" complete with topic selection(its actually pretty quick and nasty but it works) and have Implemented and expanded the general options window, it now changse the skyboxes, polygon drawmode(although hotkey-R) still does that too, changes the Texture Filtering mode and the GUI's alpha value.

I also implemented a change to the "initial build settings" so that they are scaled properly when changing mesh scenes, ths was nessecary to prevent accidental 2 hour terrain mesh generation times. The presets can be accessed from 2 buttons in the options panel at the moment and the values are updated as scenes change.

I am also 1/2 way through implementing an Ogre Entity demo as part of the Navigation mesh testing tool. Im using the new Sinbad Ogre model, and a StateMachine implemention by Steve Rabin(2005 StateMachine Scripting Language)

Please Note : None of the above changes have been pushed through to the repository yet, I want to finish the entity code and re-test it all to make sure I havent muffed anything too badly before I send any changes through.
Everything takes time.... Its a crying shame there is never enough of it...
User avatar
wilson77
Halfling
Posts: 50
Joined: Mon Mar 08, 2010 3:49 am
Location: Brisbane, Australia
x 6

Re: Recast NavMesh in Ogre (w/ Entity Demo)

Post by wilson77 »

Im currently pushing through a couple of change sets to the repository for this demo. Details are in the top post, but I have added a basic help system, enabled the general options and expanded them and added a fairly extensive Entity/Agent pathing/movement demo. The repo will take a little while to update from the time of this post, as pushing the changes through(as im typing this), on my slow old connection takes awhile. ;)
Everything takes time.... Its a crying shame there is never enough of it...
User avatar
xadhoom
Minaton
Posts: 973
Joined: Fri Dec 28, 2007 4:35 pm
Location: Germany
x 1

Re: Recast NavMesh in Ogre (w/ Entity Demo)

Post by xadhoom »

wilson,

This is a nice application already. I gave it a try and it looks quiet promising. I just encountered that very long pathes seem to be not calculated properly. E.g. in the terrain or town scene putting the start/end of the path on opposite ends often does not connect properly although most of the path is visible and looks correct.

xad
User avatar
wilson77
Halfling
Posts: 50
Joined: Mon Mar 08, 2010 3:49 am
Location: Brisbane, Australia
x 6

Re: Recast NavMesh in Ogre (w/ Entity Demo)

Post by wilson77 »

hi Xadhoom Im glad you like the demo.

The problem you are running into there, but the sounds of your description, is actually not a problem at all, but rather a Feature of Detour.

It will return either a "complete" path or a "partial" path, depending on whether it can generate a path from the start to end points or not. If it cannot generate a complete path, it will return the most complete path it can, with the last node being the closest that it can get to the end point.

This behaviour is kind of Game Related I think, where you may have an agent that you want to be able to move around autonomously. He may need to search for and move towards other agents, his "enemies". Now, sometimes, these enemies may "hide" from your searching agent, in places where he cannot get to. You seaching agent can, however, move as close to where he thinks the enemies are as he can get, and wait for them to move from there etc... In this case, the path generated would be partial and would return its last path node as bein the closest to the enemy agent as it can get.

I hope that makes sense, you can apply a check to the path to see if its a partial or complete path, something like this in pseudo :

if "End Path Point Placed" is equal to "Last Generated Path Point" then we have a complete path, ELSE if "End Path Point placed" is NOT equal to "Last Generated Path Point" then we have a partial path.

I remember reading about this behaviour somewhere among recast's googlecode site, or perhaps the Digesting Duck blog.
( EDIT : I also have to mention that this behaviour will occur when the path size exceeds the MAX path size as defined by MAX_POLYS, MAX_SMOOTH and similarly named constants in the NavMeshTesterTool class's header - in one case its meant to happen in the other its a safety issues to stop the possibility of infinite loops in the search algorithm, which is a brute force method)

I hope this solves your problem :)
Everything takes time.... Its a crying shame there is never enough of it...
User avatar
xadhoom
Minaton
Posts: 973
Joined: Fri Dec 28, 2007 4:35 pm
Location: Germany
x 1

Re: Recast NavMesh in Ogre (w/ Entity Demo)

Post by xadhoom »

Wilson,

Thank you for your detailed explanation. That seems to be the reason.

BTW: In your resource file is an absolute icon file path which should be relative...
User avatar
wilson77
Halfling
Posts: 50
Joined: Mon Mar 08, 2010 3:49 am
Location: Brisbane, Australia
x 6

Re: Recast NavMesh in Ogre (w/ Entity Demo)

Post by wilson77 »

Im glad you got my explanation lol, I was worried I was a little too long winded to be useful..

Also cheers for picking up that absolute in the resource file, ill fix it now and it will go through with the next set of pushes to the repo(I wouldnt have picked that up till I was compiling on another machine) :)
Everything takes time.... Its a crying shame there is never enough of it...
dudeabot
Gnome
Posts: 334
Joined: Thu Jun 28, 2007 2:12 pm
Location: Brazil
x 5
Contact:

Re: Recast NavMesh in Ogre (w/ Entity Demo)

Post by dudeabot »

i have been testing your app nad i have to say its really great the effort you put in there , congrats=)

I have a .scene map with various meshes grouped together, how would the navmesh be generated in this case? is it possible?

i see various parameteres like cell size, cell height, regions etc.. are they documented somewhere? (perhaps on recast?)

good job again =)
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Re: Recast NavMesh in Ogre (w/ Entity Demo)

Post by jacmoe »

Heh - this is funny! :)
I implemented Ogre aicore steering (from Millington's "Artificial Intelligence for Games") and thought I'd just plunk it into OgreRecast..
And noticed that you implemented it already! :D

However, I think I'd pursue the option as it seems to be highly flexible and customizable.
So, if the steering is decoupled, I'll probably contribute an alternative solution.
Though I highly doubt that it would be as brilliant as yours.
But you never know. :wink:

Millington's code is here:
http://github.com/idmillington/aicore
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
dudeabot
Gnome
Posts: 334
Joined: Thu Jun 28, 2007 2:12 pm
Location: Brazil
x 5
Contact:

Re: Recast NavMesh in Ogre (w/ Entity Demo)

Post by dudeabot »

its throwing a exception when i changed mesh and changed the parameters a little bit(setting agent height to ~1.8, radius to ~0.8, and slope to ~0.75), i can provide the test mesh if requested. The exception happens in the getTileAt() function from dtMeshTile

ps: its hard to set a precise number for parameters, looks like the slider fault
User avatar
zhk_tiger
Gnoblar
Posts: 15
Joined: Mon May 31, 2010 9:58 am
x 3

Re: Recast NavMesh in Ogre (w/ Entity Demo)

Post by zhk_tiger »

I had thought to port Recast with Ogre after i made some study on it. Now you have made it!
You also integrated state machine and steering behaviour, i think this is great. A half program work of a complex game has been done!

I am downloading it...
amina
Gnoblar
Posts: 6
Joined: Wed Dec 16, 2009 1:19 pm

Re: Recast NavMesh in Ogre (w/ Entity Demo)

Post by amina »

This is awesome ! Nice work. I gave it a try but I had a runtime error, that’s the Ogre file.

Code: Select all

04:19:41: Creating resource group General
04:19:41: Creating resource group Internal
04:19:41: Creating resource group Autodetect
04:19:41: SceneManagerFactory for type 'DefaultSceneManager' registered.
04:19:41: Registering ResourceManager for type Material
04:19:41: Registering ResourceManager for type Mesh
04:19:41: Registering ResourceManager for type Skeleton
04:19:41: MovableObjectFactory for type 'ParticleSystem' registered.
04:19:41: OverlayElementFactory for type Panel registered.
04:19:41: OverlayElementFactory for type BorderPanel registered.
04:19:41: OverlayElementFactory for type TextArea registered.
04:19:41: Registering ResourceManager for type Font
04:19:41: ArchiveFactory for archive type FileSystem registered.
04:19:41: ArchiveFactory for archive type Zip registered.
04:19:41: DDS codec registering
04:19:42: FreeImage version: 3.13.1
04:19:42: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
04:19:42: Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,gif,hdr,g3,sgi,exr,j2k,j2c,jp2,pfm,pct,pict,pic,bay,bmq,cr2,crw,cs1,dc2,dcr,dng,erf,fff,hdr,k25,kdc,mdc,mos,mrw,nef,orf,pef,pxn,raf,raw,rdc,sr2,srf,arw,3fr,cine,ia,kc2,mef,nrw,qtk,rw2,sti,drf,dsc,ptx,cap,iiq,rwz
04:19:42: Registering ResourceManager for type HighLevelGpuProgram
04:19:42: Registering ResourceManager for type Compositor
04:19:42: MovableObjectFactory for type 'Entity' registered.
04:19:42: MovableObjectFactory for type 'Light' registered.
04:19:42: MovableObjectFactory for type 'BillboardSet' registered.
04:19:42: MovableObjectFactory for type 'ManualObject' registered.
04:19:42: MovableObjectFactory for type 'BillboardChain' registered.
04:19:42: MovableObjectFactory for type 'RibbonTrail' registered.
04:19:42: Loading library .\RenderSystem_Direct3D9_d
04:19:42: Installing plugin: D3D9 RenderSystem
04:19:42: D3D9 : Direct3D9 Rendering Subsystem created.
04:19:42: D3D9: Driver Detection Starts
04:19:43: D3D9: Driver Detection Ends
04:19:43: Plugin successfully installed
04:19:43: Loading library .\RenderSystem_GL_d
04:19:44: Installing plugin: GL RenderSystem
04:19:44: OpenGL Rendering Subsystem created.
04:19:44: Plugin successfully installed
04:19:44: Loading library .\Plugin_ParticleFX_d
04:19:44: Installing plugin: ParticleFX
04:19:44: Particle Emitter Type 'Point' registered
04:19:44: Particle Emitter Type 'Box' registered
04:19:44: Particle Emitter Type 'Ellipsoid' registered
04:19:44: Particle Emitter Type 'Cylinder' registered
04:19:44: Particle Emitter Type 'Ring' registered
04:19:44: Particle Emitter Type 'HollowEllipsoid' registered
04:19:44: Particle Affector Type 'LinearForce' registered
04:19:44: Particle Affector Type 'ColourFader' registered
04:19:44: Particle Affector Type 'ColourFader2' registered
04:19:44: Particle Affector Type 'ColourImage' registered
04:19:44: Particle Affector Type 'ColourInterpolator' registered
04:19:44: Particle Affector Type 'Scaler' registered
04:19:44: Particle Affector Type 'Rotator' registered
04:19:44: Particle Affector Type 'DirectionRandomiser' registered
04:19:44: Particle Affector Type 'DeflectorPlane' registered
04:19:44: Plugin successfully installed
04:19:44: Loading library .\Plugin_BSPSceneManager_d
04:19:44: Installing plugin: BSP Scene Manager
04:19:44: Plugin successfully installed
04:19:44: Loading library .\Plugin_CgProgramManager_d
04:19:44: Installing plugin: Cg Program Manager
04:19:44: Plugin successfully installed
04:19:44: Loading library .\Plugin_PCZSceneManager_d
04:19:44: Installing plugin: Portal Connected Zone Scene Manager
04:19:44: PCZone Factory Type 'ZoneType_Default' registered
04:19:44: Plugin successfully installed
04:19:44: Loading library .\Plugin_OctreeZone_d
04:19:44: Installing plugin: Octree Zone Factory
04:19:44: Plugin successfully installed
04:19:44: Loading library .\Plugin_OctreeSceneManager_d
04:19:44: Installing plugin: Octree & Terrain Scene Manager
04:19:44: Plugin successfully installed
04:19:44: *-*-* OGRE Initialising
04:19:44: *-*-* Version 1.7.1 (Cthugha)
04:19:44: Creating resource group Essential
04:19:44: Added resource location '../../media/OgreRecastMedia/Core/SdkTrays.zip' of type 'Zip' to resource group 'Essential'
04:19:44: Creating resource group Fonts
04:19:44: Added resource location '../../datafiles/fonts' of type 'FileSystem' to resource group 'Fonts'
04:19:44: Added resource location '../../media' of type 'FileSystem' to resource group 'General'
04:19:44: Added resource location '../../media/OgreRecastMedia/Meshes' of type 'FileSystem' to resource group 'General'
04:19:44: Added resource location '../../media/OgreRecastMedia/Materials' of type 'FileSystem' to resource group 'General'
04:19:44: Added resource location '../../media/OgreRecastMedia/TerrainMeshes' of type 'FileSystem' to resource group 'General'
04:19:44: Added resource location '../../media/OgreRecastMedia/Materials/OgreRecastMaterials.zip' of type 'Zip' to resource group 'General'
04:19:44: Added resource location '../../media/OgreRecastMedia/Core/skybox.zip' of type 'Zip' to resource group 'General'
04:19:44: Added resource location '../../media/OgreRecastMedia/Core/ogrecore.zip' of type 'Zip' to resource group 'General'
04:19:44: Added resource location '../../media/OgreRecastMedia/Core/cubemapsJS.zip' of type 'Zip' to resource group 'General'
04:19:44: Added resource location '../../media/OgreRecastMedia/Core/Sinbad.zip' of type 'Zip' to resource group 'General'
04:19:44: Creating resource group Imagesets
04:19:44: Added resource location '../../datafiles/imagesets' of type 'FileSystem' to resource group 'Imagesets'
04:19:44: Creating resource group Layouts
04:19:44: Added resource location '../../datafiles/layouts' of type 'FileSystem' to resource group 'Layouts'
04:19:44: Creating resource group LookNFeel
04:19:45: Added resource location '../../datafiles/looknfeel' of type 'FileSystem' to resource group 'LookNFeel'
04:19:45: Creating resource group Popular
04:19:45: Added resource location '../../media/fonts' of type 'FileSystem' to resource group 'Popular'
04:19:45: Added resource location '../../media/materials/programs' of type 'FileSystem' to resource group 'Popular'
04:19:45: Added resource location '../../media/materials/scripts' of type 'FileSystem' to resource group 'Popular'
04:19:45: Added resource location '../../media/materials/textures' of type 'FileSystem' to resource group 'Popular'
04:19:45: Creating resource group Schemes
04:19:45: Added resource location '../../datafiles/schemes' of type 'FileSystem' to resource group 'Schemes'
04:19:45: D3D9 : RenderSystem Option: Allow NVPerfHUD = No
04:19:45: D3D9 : RenderSystem Option: FSAA = 0
04:19:45: D3D9 : RenderSystem Option: Floating-point mode = Fastest
04:19:45: D3D9 : RenderSystem Option: Full Screen = No
04:19:45: D3D9 : RenderSystem Option: Rendering Device = Monitor-1-NVIDIA GeForce FX 5200  (Microsoft Corporation)
04:19:45: D3D9 : RenderSystem Option: Resource Creation Policy = Create on all devices
04:19:45: D3D9 : RenderSystem Option: VSync = No
04:19:45: D3D9 : RenderSystem Option: VSync Interval = 1
04:19:45: D3D9 : RenderSystem Option: Video Mode = 1280 x 1024 @ 32-bit colour
04:19:45: D3D9 : RenderSystem Option: sRGB Gamma Conversion = No
04:19:48: CPU Identifier & Features
04:19:48: -------------------------
04:19:48:  *   CPU ID: GenuineIntel: Intel(R) Pentium(R) 4 CPU 3.40GHz
04:19:48:  *      SSE: yes
04:19:48:  *     SSE2: yes
04:19:48:  *     SSE3: yes
04:19:48:  *      MMX: yes
04:19:48:  *   MMXEXT: yes
04:19:48:  *    3DNOW: no
04:19:48:  * 3DNOWEXT: no
04:19:48:  *     CMOV: yes
04:19:48:  *      TSC: yes
04:19:48:  *      FPU: yes
04:19:48:  *      PRO: yes
04:19:48:  *       HT: yes
04:19:48: -------------------------
04:19:48: D3D9 : Subsystem Initialising
04:19:48: Registering ResourceManager for type Texture
04:19:48: Registering ResourceManager for type GpuProgram
04:19:48: D3D9RenderSystem::_createRenderWindow "  Ogre3D and Recast / Detour Navigation Libraries Integration Demonstration     version 0.3 ", 1280x1024 windowed  miscParams: FSAA=0 FSAAHint= colourDepth=32 gamma=false monitorIndex=0 useNVPerfHUD=false vsync=false vsyncInterval=1 
04:19:48: D3D9 : Created D3D9 Rendering Window '  Ogre3D and Recast / Detour Navigation Libraries Integration Demonstration     version 0.3 ' : 1016x704, 32bpp
04:19:48: D3D9 : WARNING - disabling VSync in windowed mode can cause timing issues at lower frame rates, turn VSync on if you observe this problem.
04:19:50: RenderSystem capabilities
04:19:50: -------------------------
04:19:50: RenderSystem Name: Direct3D9 Rendering Subsystem
04:19:50: GPU Vendor: nvidia
04:19:50: Device Name: Monitor-1-NVIDIA GeForce FX 5200  (Microsoft Corporation)
04:19:50: Driver Version: 6.14.10.5673
04:19:50:  * Fixed function pipeline: yes
04:19:50:  * Hardware generation of mipmaps: yes
04:19:50:  * Texture blending: yes
04:19:50:  * Anisotropic texture filtering: yes
04:19:50:  * Dot product texture operation: yes
04:19:50:  * Cube mapping: yes
04:19:50:  * Hardware stencil buffer: yes
04:19:50:    - Stencil depth: 8
04:19:50:    - Two sided stencil support: yes
04:19:50:    - Wrap stencil values: yes
04:19:50:  * Hardware vertex / index buffers: yes
04:19:50:  * Vertex programs: yes
04:19:50:  * Number of floating-point constants for vertex programs: 256
04:19:50:  * Number of integer constants for vertex programs: 16
04:19:50:  * Number of boolean constants for vertex programs: 16
04:19:50:  * Fragment programs: yes
04:19:50:  * Number of floating-point constants for fragment programs: 32
04:19:50:  * Number of integer constants for fragment programs: 16
04:19:50:  * Number of boolean constants for fragment programs: 16
04:19:50:  * Geometry programs: no
04:19:50:  * Number of floating-point constants for geometry programs: 52428
04:19:50:  * Number of integer constants for geometry programs: 52428
04:19:50:  * Number of boolean constants for geometry programs: 52428
04:19:50:  * Supported Shader Profiles: hlsl ps_1_1 ps_1_2 ps_1_3 ps_1_4 ps_2_0 ps_2_a ps_2_x vs_1_1 vs_2_0 vs_2_a vs_2_x
04:19:50:  * Texture Compression: yes
04:19:50:    - DXT: yes
04:19:50:    - VTC: no
04:19:50:    - PVRTC: no
04:19:50:  * Scissor Rectangle: yes
04:19:50:  * Hardware Occlusion Query: yes
04:19:50:  * User clip planes: yes
04:19:50:  * VET_UBYTE4 vertex element type: yes
04:19:50:  * Infinite far plane projection: yes
04:19:50:  * Hardware render-to-texture: yes
04:19:50:  * Floating point textures: no
04:19:50:  * Non-power-of-two textures: yes (limited)
04:19:50:  * Volume textures: yes
04:19:50:  * Multiple Render Targets: 1
04:19:50:    - With different bit depths: no
04:19:50:  * Point Sprites: yes
04:19:50:  * Extended point parameters: yes
04:19:50:  * Max Point Size: 10
04:19:50:  * Vertex texture fetch: no
04:19:50:  * Number of world matrices: 0
04:19:50:  * Number of texture units: 8
04:19:50:  * Stencil buffer depth: 8
04:19:50:  * Number of vertex blend matrices: 0
04:19:50:  * Render to Vertex Buffer : no
04:19:50:  * DirectX per stage constants: yes
04:19:50: ***************************************
04:19:50: *** D3D9 : Subsystem Initialised OK ***
04:19:50: ***************************************
04:19:50: DefaultWorkQueue('Root') initialising on thread 00157AD8.
04:19:50: DefaultWorkQueue('Root')::WorkerFunc - thread 0017DCF0 starting.
04:19:50: DefaultWorkQueue('Root')::WorkerFunc - thread 0017DF40 starting.
04:19:50: Particle Renderer Type 'billboard' registered
04:19:50: SceneManagerFactory for type 'BspSceneManager' registered.
04:19:50: Registering ResourceManager for type BspLevel
04:19:50: SceneManagerFactory for type 'PCZSceneManager' registered.
04:19:50: MovableObjectFactory for type 'PCZLight' registered.
04:19:50: MovableObjectFactory for type 'Portal' registered.
04:19:50: MovableObjectFactory for type 'AntiPortal' registered.
04:19:50: PCZone Factory Type 'ZoneType_Octree' registered
04:19:50: PCZone Factory Type 'ZoneType_Terrain' registered
04:19:50: SceneManagerFactory for type 'OctreeSceneManager' registered.
04:19:50: SceneManagerFactory for type 'TerrainSceneManager' registered.
04:19:50: Parsing scripts for resource group Autodetect
04:19:50: Finished parsing scripts for resource group Autodetect
04:19:50: Parsing scripts for resource group Essential
04:19:51: Parsing script SdkTrays.material
04:19:51: Parsing script SdkTrays.fontdef
04:19:51: Parsing script SdkTrays.overlay
04:19:51: Bad element attribute line: '# you can offset the image to change the cursor "hotspot"' for element SdkTrays/Cursor in overlay 
04:19:51: Texture: sdk_cursor.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with  hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
04:19:51: Texture: sdk_tray.png: Loading 1 faces(PF_A8R8G8B8,64x64x1) with  hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,64x64x1.
04:19:51: Texture: sdk_button_up.png: Loading 1 faces(PF_A8R8G8B8,128x32x1) with  hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x32x1.
04:19:51: Texture: sdk_text_box.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with  hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
04:19:51: Texture: sdk_mini_tray.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with  hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
04:19:51: Texture: sdk_track.png: Loading 1 faces(PF_A8R8G8B8,16x32x1) with  hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,16x32x1.
04:19:51: Texture: sdk_handle.png: Loading 1 faces(PF_A8R8G8B8,16x16x1) with  hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,16x16x1.
04:19:51: Texture: sdk_mini_text_box.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with  hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
04:19:51: Texture: sdk_label.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with  hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
04:19:51: Texture: sdk_separator.png: Loading 1 faces(PF_A8R8G8B8,64x16x1) with  hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,64x16x1.
04:19:51: Texture: sdk_logo.png: Loading 1 faces(PF_A8R8G8B8,128x64x1) with  hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x64x1.
04:19:51: D3D9 : ***** Dimensions altered by the render system
04:19:51: D3D9 : ***** Source image dimensions : 64x48
04:19:51: D3D9 : ***** Texture dimensions : 64x64
04:19:51: Texture: sdk_shade.png: Loading 1 faces(PF_A8R8G8B8,64x48x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,64x64x1.
04:19:51: Texture: sdk_frame.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with  hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
04:19:51: Texture: sdk_mini_text_box_over.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with  hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
04:19:51: Texture: sdk_pulse.png: Loading 1 faces(PF_R8G8B8,8x1x1) with  hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,8x1x1.
04:19:51: Finished parsing scripts for resource group Essential
04:19:51: Parsing scripts for resource group Fonts
04:19:51: Finished parsing scripts for resource group Fonts
04:19:51: Parsing scripts for resource group General
04:19:51: Parsing script OgreRecastEntityDebug.material
04:19:51: Parsing script ChapelMesh..material
04:19:51: Parsing script CityNavMesh..material
04:19:53: Parsing script HouseMesh..material
04:19:53: Parsing script MovableTextOverlayMaterial.material
04:19:53: Parsing script NavMesh.material
04:19:53: Compiler error: unknown error in NavMesh.material(6): token "receive_shadows" is not recognized
04:19:53: Parsing script OgreConsole.material
04:19:53: Parsing script WindmillMesh..material
04:19:53: Parsing script OgreCore.material
04:19:53: Parsing script OgreProfiler.material
04:19:53: Parsing script Sinbad.material
04:19:53: Parsing script OgreRecastEntityLabel.fontdef
04:19:53: Parsing script Ogre.fontdef
04:19:53: Parsing script OgreDebugPanel.overlay
04:19:53: Texture: New_Ogre_Border_Center.png: Loading 1 faces(PF_A8R8G8B8,256x128x1) with  hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,256x128x1.
04:19:53: Texture: New_Ogre_Border.png: Loading 1 faces(PF_A8R8G8B8,256x256x1) with  hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,256x256x1.
04:19:53: Texture: New_Ogre_Border_Break.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with  hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
04:19:53: Texture: ogretext.png: Loading 1 faces(PF_A8R8G8B8,256x128x1) with  hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,256x128x1.
04:19:53: Parsing script OgreLoadingPanel.overlay
04:19:53: Finished parsing scripts for resource group General
04:19:53: Parsing scripts for resource group Imagesets
04:19:53: Finished parsing scripts for resource group Imagesets
04:19:53: Parsing scripts for resource group Internal
04:19:53: Finished parsing scripts for resource group Internal
04:19:53: Parsing scripts for resource group Layouts
04:19:53: Finished parsing scripts for resource group Layouts
04:19:53: Parsing scripts for resource group LookNFeel
04:19:53: Finished parsing scripts for resource group LookNFeel
04:19:53: Parsing scripts for resource group Popular
04:19:53: Parsing script Examples.program
04:19:54: Parsing script StdQuad_vp.program
04:19:54: Parsing script ASCII.material
04:19:54: Parsing script ASMSwizzle.material
04:19:54: Compiler error: object unsupported by render system in ASMSwizzle.material(1)
04:19:54: Parsing script BlackAndWhite.material
04:19:54: Parsing script Bloom.material
04:19:55: Parsing script Bloom2.material
04:19:55: Parsing script CGSwizzle.material
04:19:55: Parsing script CompositorDemo.material
04:19:55: Parsing script DOF.material
04:19:55: Parsing script DepthShadowmap.material
04:19:56: Parsing script Dither.material
04:19:56: Parsing script Embossed.material
04:19:56: Parsing script Example-Water.material
04:19:56: Parsing script Examples-Advanced.material
04:19:56: Parsing script Examples-DynTex.material
04:19:56: Parsing script Examples-Water.material
04:19:56: Parsing script Examples.material
04:19:57: OGRE EXCEPTION(2:InvalidParametersException): Parameter called camObjPos does not exist.  in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1433)
04:19:57: Compiler error: invalid parameters in Examples.material(837): setting of constant failed
04:19:57: Parsing script GLSLSwizzle.material
04:19:57: Parsing script Glass.material
04:19:57: Parsing script Halftone.material
04:19:57: Parsing script HeatVision.material
04:19:57: Parsing script Hurt.material
04:19:57: Parsing script Invert.material
04:19:57: Parsing script IsoSurf.material
04:19:57: Parsing script Laplace.material
04:19:57: Parsing script MRTtest.material
04:19:57: Parsing script MotionBlur.material
04:19:57: Parsing script NightVision.material
04:19:57: Parsing script Ocean.material
04:19:58: Parsing script OffsetMapping.material
04:19:58: Parsing script Ogre.material
04:19:58: Parsing script OldMovie.material
04:19:58: Parsing script OldTV.material
04:19:58: Parsing script ParticleGS.material
04:19:58: OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/ParticleGS/GenerateVS: CG ERROR : "The compile returned an error."
(0) : error C6015: Output 'POSITION' not completely written
 in CgProgram::loadFromSource at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
04:19:58: High-level program Ogre/ParticleGS/GenerateVS encountered an error during loading and is thus not supported.
OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/ParticleGS/GenerateVS: CG ERROR : "The compile returned an error."
(0) : error C6015: Output 'POSITION' not completely written
 in CgProgram::loadFromSource at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
04:19:58: OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/ParticleGS/DisplayVS: CG ERROR : "The compile returned an error."
(249) : warning C7050: "output.color" might be used before being initialized
(0) : error C6015: Output 'POSITION' not completely written
 in CgProgram::loadFromSource at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
04:19:58: High-level program Ogre/ParticleGS/DisplayVS encountered an error during loading and is thus not supported.
OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/ParticleGS/DisplayVS: CG ERROR : "The compile returned an error."
(249) : warning C7050: "output.color" might be used before being initialized
(0) : error C6015: Output 'POSITION' not completely written
 in CgProgram::loadFromSource at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
04:19:58: OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/ParticleGS/DisplayPS: CG ERROR : "The compile returned an error."
(323) : fatal error C9999: unexpected cast operation
 in CgProgram::loadFromSource at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
04:19:58: High-level program Ogre/ParticleGS/DisplayPS encountered an error during loading and is thus not supported.
OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/ParticleGS/DisplayPS: CG ERROR : "The compile returned an error."
(323) : fatal error C9999: unexpected cast operation
 in CgProgram::loadFromSource at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
04:19:58: Parsing script Penguin.material
04:19:58: Parsing script Posterize.material
04:19:58: Parsing script RZR-002.material
04:19:58: Parsing script RadialBlur.material
04:19:58: Parsing script ShaderSystem.material
04:19:58: Parsing script SharpenEdges.material
04:19:58: Parsing script Tiling.material
04:19:58: Parsing script VarianceShadowmap.material
04:19:58: Parsing script facial.material
04:19:58: Parsing script hdr.material
04:19:59: Parsing script instancing.material
04:19:59: Parsing script pssm.material
04:19:59: Parsing script shadows.material
04:19:59: Parsing script sibenik.material
04:19:59: Parsing script smoke.material
04:19:59: Parsing script Examples.compositor
04:19:59: Parsing script sample.fontdef
04:19:59: Finished parsing scripts for resource group Popular
04:19:59: Parsing scripts for resource group Schemes
04:19:59: Finished parsing scripts for resource group Schemes
04:19:59: *** Initializing OIS ***
04:20:00: Mesh: Loading DungeonNavMesh.mesh.
Thanks for help.
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Re: Recast NavMesh in Ogre (w/ Entity Demo)

Post by jacmoe »

It would be far more helpful if you actually quoted the runtime error you're getting.
Or, even better: used your debugger to locate exactly where the program fails.
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
Post Reply