7 of 19 Samples Crash On Load

Senzin

26-09-2012 06:46:28

Windows 7 Pro SP1 x64
Dual AMD 6950s in Crossfire
VS 2010 with all updates from Windows Update (9/25/2012)
Ogre 1.8.1
PhysX 2.8.4.6
NxOgre 1.6
Critter (latest as of 9/25/2012)

I had to import the VC9 solutions for NxOgre and Critter into VS10. To compile, I had to change all the paths for boost from "$(OGRE_HOME)\boost_1_4_2" (I think that's what it was) to just "$(OGRE_HOME)\boost" since that's where it is in the current version of Ogre. I'm using the Ogre SDK download that comes with binaries, but I compiled the release and debug versions to check out the NxOgre samples. The samples were copied to ogre as expected. I added the media pack and updated the resources config. The NxOgre samples all show up in the sample browser. They have their proper descriptions, such as "NxOgre 101 - Box on a Plane."

The original Ogre samples run fine, and so do just over half of the NxOgre samples. But when I try to run the others (select it and hit enter or click "Start Sample"), the program crashes.

The samples that cause a crash are: 1001, 1002, 1003, 1004, 107, 108, 113

When I run with debugging the debug build from VS 2012, I get an unhandled exception:

Unhandled exception at 0x77b015de in SampleBrowser_d.exe: 0xC0000005: Access violation reading location 0x00000034.
Here is the call stack:


ntdll.dll!77b015de()
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
ntdll.dll!77b015de()
ntdll.dll!77af014e()
RenderSystem_GL_d.dll!532c1632()
RenderSystem_GL_d.dll!532be3fa()
RenderSystem_GL_d.dll!532b6cbe()
OgreMain_d.dll!510ec4bd()
OgreMain_d.dll!510ea7d6()
OgreMain_d.dll!50fe5a43()
OgreMain_d.dll!50fe57db()
OgreMain_d.dll!510eabee()
OgreMain_d.dll!510e9347()
OgreMain_d.dll!510ead64()
OgreMain_d.dll!510e85bc()
OgreMain_d.dll!510e8286()
OgreMain_d.dll!510e4e33()
OgreMain_d.dll!50b67b6c()
OgreMain_d.dll!512cf42e()
OgreMain_d.dll!5103690b()
OgreMain_d.dll!510367ee()
OgreMain_d.dll!5103669c()
OgreMain_d.dll!51039051()
OgreMain_d.dll!510f8704()
OgreMain_d.dll!510e46cf()
OgreMain_d.dll!50b67b6c()
OgreMain_d.dll!512cf42e()
OgreMain_d.dll!5103690b()
OgreMain_d.dll!510367ee()
OgreMain_d.dll!5103669c()
OgreMain_d.dll!51039051()
OgreMain_d.dll!50ff74ed()
OgreMain_d.dll!510b8897()
OgreMain_d.dll!510b62b9()
OgreMain_d.dll!510b626f()
> SampleBrowser_d.exe!OgreBites::SampleContext::go(OgreBites::Sample * initialSample) Line 329 + 0xe bytes C++
SampleBrowser_d.exe!WinMain(HINSTANCE__ * __formal, HINSTANCE__ * __formal, char * cmdLine, HINSTANCE__ * __formal) Line 82 C++
SampleBrowser_d.exe!__tmainCRTStartup() Line 547 + 0x2c bytes C
SampleBrowser_d.exe!WinMainCRTStartup() Line 371 C
kernel32.dll!76da339a()
ntdll.dll!77b19ef2()
ntdll.dll!77b19ec5()

And here is the line and function that get blamed (see comment sticking out for line 329 mentioned in call stack):


/*-----------------------------------------------------------------------------
| This function encapsulates the entire lifetime of the context.
-----------------------------------------------------------------------------*/
#if OGRE_PLATFORM != OGRE_PLATFORM_NACL
virtual void go(Sample* initialSample = 0)
{
#if OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS || ((OGRE_PLATFORM == OGRE_PLATFORM_APPLE) && __LP64__)
createRoot();

if (!oneTimeConfig()) return;

if (!mFirstRun) mRoot->setRenderSystem(mRoot->getRenderSystemByName(mNextRenderer));

setup();

if (!mFirstRun) recoverLastSample();
else if (initialSample) runSample(initialSample);

mRoot->saveConfig();
#else
while (!mLastRun)
{
mLastRun = true; // assume this is our last run

initApp(initialSample);

if (mRoot->getRenderSystem() != NULL)
{
mRoot->startRendering(); // start the render loop ========== LINE 329 ==========
}

closeApp();

mFirstRun = false;
}
#endif
}
#endif

Any ideas?

Quick side question: It seems like the Ogre wiki for NxOgre is out of date. Is the forum announcement here, titled "NxOgre -- The Guide to Everything", the correct place to get the latest information?

betajaen

26-09-2012 07:04:59

Would you remind me what these examples are. Are the 100x ones cloth or characters?

Senzin

26-09-2012 09:15:16

Looks like all the ones with "Cloth" in the title crash. I assume "108 - Rigidbody Flags" uses cloth as well? What about "107 - Rigidbody Properties"?

NxOgre 1001 - Cloth (crashes)
NxOgre 1002 - Cloth and external forces (crashes)
NxOgre 1003 - Cloth Damping (crashes)
NxOgre 1004 - Cloth Pipes (crashes)
NxOgre 101 - Box on a Plane
NxOgre 102 - External Resources and Meshes
NxOgre 103 - Compound Shapes
NxOgre 104 - Rigid Bodies
NxOgre 105 - Materials
NxOgre 106 - Sleeping
NxOgre 107 - Rigidbody Properties (crashes)
NxOgre 108 - Rigidbody Flags (crashes)
NxOgre 109 - Collision Groups
NxOgre 110 - Collision Filtering
NxOgre 111 - Dynamic CCD
NxOgre 113 - Rigidbodies and Cloth (crashes)
NxOgre 114 - Rigidbodies and Fluids
NxOgre 117 - Heightfields with Ogre Terrain
Sandbox for NxOgre

betajaen

26-09-2012 11:15:06

If cloth crashes then first thing I would check is all of the physx dlls are copied over. (I'd imagine they would be by the script, but it's best to check) - I'd also check to see if cloth works in the PhysX Samples.

Properties and Flags, I'm not sure about.

Senzin

27-09-2012 04:02:36

I originally copied over just:

PhysXCooking.dll
PhysXCore.dll
PhysXDevice.dll
PhysXLoader.dll
NxCharacter.dll

But when I launched SampleBrowser.exe it complained that cudart32_30_9.dll was missing. Once added, the browser would run, but the cloth samples would crash. I tried adding all the remaining dlls as well:

devil.dll
glut32.dll
granny2.dll
ilu.dll
ilut.dll
NxCharacterCHECKED.dll
PhysXCookingCHECKED.dll
PhysXCoreCHECKED.dll
PhysXLoaderCHECKED.dll

However, this made no difference.

I forgot to include the Event Viewer log last time:


Faulting application name: SampleBrowser.exe, version: 0.0.0.0, time stamp: 0x5062861a
Faulting module name: RenderSystem_GL.dll, version: 0.0.0.0, time stamp: 0x50430d63
Exception code: 0xc0000005
Fault offset: 0x0004d08f
Faulting process id: 0x28d8
Faulting application start time: 0x01cd9c5c4a229249
Faulting application path: D:\Libs\Ogre\OgreSDK_vc10_v1-8-1\bin\release\SampleBrowser.exe
Faulting module path: D:\Libs\Ogre\OgreSDK_vc10_v1-8-1\bin\release\RenderSystem_GL.dll
Report Id: 8f3fbbc5-084f-11e2-9eac-bc5ff449f002

Senzin

30-09-2012 01:26:28

Could you possibly provide the PhysX, NxOgre and Critter debug and release libs and dlls that you're using?

betajaen

30-09-2012 21:37:43

I don't have PhysX installed on my computer anymore, nor NxOgre.

But I remember I was on PhysX 2.8.3 at the end.

Senzin

30-09-2012 23:42:42

I tried adding the code from 1001 to my implementation of 101 and 102 (which work fine). I still get an unhandled exception, but this time the message is slightly different:

Unhandled exception at 0x51DBD491 (RenderSystem_GL_d.dll) in Nx.exe: 0xC0000005: Access violation reading location 0x00000034.

Before, the message was:

Unhandled exception at 0x77b015de in SampleBrowser_d.exe: 0xC0000005: Access violation reading location 0x00000034.

It's probably just a difference in how my project and the sample browser bind.

Anyway, it still points to the "mRoot->startRendering();" line in BaseApplication.cpp. However, in one attempted run, when I hit break it took me to some critical section that was about to hit unlock I think. I've been unable to reproduce this, so I can't say for sure what file I was looking at or even what thread.

The line of code that leads to the exception is:

mCloth = mRenderSystem->createCloth(desc, "wales");

I attempted to catch the exception with "const std::string & e" but had no luck (Ogre and NxOgre exception catches don't work either). Do you have any ideas on how to catch the exception? Or where I might find it after breaking (if that's even possible)?

Senzin

01-10-2012 04:45:49

Just discovered that it DOES NOT CRASH when using the Direct3D renderer, i.e. RenderSystem_Direct3D9.dll instead of RenderSystem_GL.dll.

Boy, I really wish I knew how to catch exceptions from RenderSystem_GL.dll. Although I wonder if it's even possible, because I attempted to catch all with catch(...), but it was never triggered and I got an unhandled exception anyway. Strange.

Nice dragon flag by the way. :)

Senzin

01-10-2012 05:10:27

Ok, looks like not everything is perfect with Direct3D either.

NxOgre 1001 - Cloth: Changing method from setPosition causes crash.
NxOgre 1002 - Cloth and external forces: Changing wind strength causes crash.
NxOgre 1003 - Cloth Damping: Changing method from setPosition causes crash.
NxOgre 107 - Rigidbody Properties: Still crashes on load.
NxOgre 108 - Rigidbody Flags: Still crashes on load.
NxOgre 113 - Rigidbodies and Cloth: Changing wind strength causes crash.

betajaen

01-10-2012 07:51:47

Very strange.

What does the NxOgre.log look like? It may be able to help a little.

NoMonkey

25-10-2012 21:14:02

Hi,
I'm getting crashs on the same Samples.
Is this the log-file you were asking for?

Build started 24.10.2012 12:35:07.
1>Project "D:\Programmieren\nxtutorialsvc10\build\vc10\NxOgreTutorials.vcxproj" on node 2 (build target(s)).
1>InitializeBuildStatus:
Touching "Debug\NxOgreTutorials.unsuccessfulbuild".
ClCompile:
All outputs are up-to-date.
Link:
D:\Programmieren\Visual Studio 2010\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"Debug\NxOgreTutorialsDebug.dll" /NOLOGO /LIBPATH:D:\Programmieren\NxOgre\SDK /LIBPATH:"D:\Programmieren\Ogre3D\OgreSDK_vc10_v1-8-1\lib\debug" /LIBPATH:"D:\Programmieren\Ogre3D\OgreSDK_vc10_v1-8-1\boost_1_42\lib\\" /LIBPATH:D:\Programmieren\NxOgre\..\critter\sdk /LIBPATH:D:\Programmieren\NxOgre\sdk /LIBPATH:D:\Programmieren\critter\sdk /LIBPATH:"D:\Programmieren\Ogre3D\OgreSDK_vc10_v1-8-1\boost" /LIBPATH:"D:\Programmieren\Ogre3D\OgreSDK_vc10_v1-8-1\boost\lib\\" NxOgreDebug.lib OgreMain_d.lib OIS_d.lib CritterDebugStatic.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /ManifestFile:"Debug\NxOgreTutorialsDebug.dll.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /PDB:"D:\Programmieren\nxtutorialsvc10\build\vc10\Debug\NxOgreTutorialsDebug.pdb" /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"Debug\NxOgreTutorialsDebug.lib" /MACHINE:X86 /DLL Debug\DLL.obj
1>CritterDebugStatic.lib(Critter.obj) : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/OPT:ICF' specification
Creating library Debug\NxOgreTutorialsDebug.lib and object Debug\NxOgreTutorialsDebug.exp
NxOgreTutorials.vcxproj -> D:\Programmieren\nxtutorialsvc10\build\vc10\Debug\NxOgreTutorialsDebug.dll
Manifest:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\mt.exe /nologo /verbose /outputresource:"Debug\NxOgreTutorialsDebug.dll;#2" /manifest Debug\NxOgreTutorialsDebug.dll.intermediate.manifest
PostBuildEvent:
buildbot.bat maketutorials debug
:VCEnd
[BuildBot] Copying Tutorials Debug
1 File(s) copied
D:\Programmieren\NxOgre\sdk\NxOgreDebug.dll -> D:\Programmieren\Ogre3D\OgreSDK_vc10_v1-8-1\bin\debug\NxOgreDebug.dll
1 File(s) copied
D:\Programmieren\PhysX-2.8.4\bin\win32\NxCharacter.dll -> D:\Programmieren\Ogre3D\OgreSDK_vc10_v1-8-1\bin\debug\NxCharacter.dll
1 File(s) copied
D:\Programmieren\PhysX-2.8.4\bin\win32\PhysXCooking.dll -> D:\Programmieren\Ogre3D\OgreSDK_vc10_v1-8-1\bin\debug\PhysXCooking.dll
1 File(s) copied
D:\Programmieren\PhysX-2.8.4\bin\win32\PhysXCore.dll -> D:\Programmieren\Ogre3D\OgreSDK_vc10_v1-8-1\bin\debug\PhysXCore.dll
1 File(s) copied
D:\Programmieren\PhysX-2.8.4\bin\win32\PhysXDevice.dll -> D:\Programmieren\Ogre3D\OgreSDK_vc10_v1-8-1\bin\debug\PhysXDevice.dll
1 File(s) copied
D:\Programmieren\PhysX-2.8.4\bin\win32\PhysXLoader.dll -> D:\Programmieren\Ogre3D\OgreSDK_vc10_v1-8-1\bin\debug\PhysXLoader.dll
1 File(s) copied
D:\Programmieren\nxtutorialsvc10\media\nxogre.zip -> D:\Programmieren\Ogre3D\OgreSDK_vc10_v1-8-1\media\packs\nxogre.zip
1 File(s) copied
FinalizeBuildStatus:
Deleting file "Debug\NxOgreTutorials.unsuccessfulbuild".
Touching "Debug\NxOgreTutorials.lastbuildstate".
1>Done Building Project "D:\Programmieren\nxtutorialsvc10\build\vc10\NxOgreTutorials.vcxproj" (build target(s)).

Build succeeded.

Time Elapsed 00:00:00.58

betajaen

26-10-2012 07:03:51

No, there is a file created alongside the Ogre.log called NxOgre.log

NoMonkey

26-10-2012 19:54:01

So I guess it's this one :-)
Thank you for having a look at my problems!

Build started 23.10.2012 12:54:24.
1>Project "D:\Programmieren\NxOgre\build\vc10\NxOgre.vcxproj" on node 2 (build target(s)).
1>InitializeBuildStatus:
Creating "Debug\NxOgre.unsuccessfulbuild" because "AlwaysCreate" was specified.
ClCompile:
D:\Programmieren\Visual Studio 2010\VC\bin\CL.exe /c /I..\source /I"D:\Programmieren\PhysX-2.8.4\SDKs\Physics\include\\" /I"D:\Programmieren\PhysX-2.8.4\SDKs\Foundation\include\\" /I"D:\Programmieren\PhysX-2.8.4\SDKs\Cooking\include\\" /I"D:\Programmieren\PhysX-2.8.4\SDKs\PhysXLoader\include\\" /I"D:\Programmieren\PhysX-2.8.4\SDKs\NxCharacter\include\\" /ZI /nologo /W3 /WX- /Od /Oy- /D NXOGRE_SDK /D NXOGRE_DYNAMIC_LIBRARY /D WIN32 /D _DLL /D _WINDLL /D _MBCS /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Debug\\" /Fd"Debug\vc100.pdb" /Gd /TP /analyze- /errorReport:prompt ..\source\NxOgre.cpp
NxOgre.cpp
Link:
D:\Programmieren\Visual Studio 2010\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"D:\Programmieren\NxOgre\build\vc10\Debug\NxOgreDebug.dll" /NOLOGO /LIBPATH:"D:\Programmieren\PhysX-2.8.4\SDKs\lib\Win32" PhysXLoader.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /ManifestFile:"Debug\NxOgreDebug.dll.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"D:\Programmieren\NxOgre\build\vc10\Debug\NxOgreDebug.pdb" /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"D:\Programmieren\NxOgre\build\vc10\Debug\NxOgreDebug.lib" /MACHINE:X86 /DLL Debug\NxOgre.obj
Creating library D:\Programmieren\NxOgre\build\vc10\Debug\NxOgreDebug.lib and object D:\Programmieren\NxOgre\build\vc10\Debug\NxOgreDebug.exp
NxOgre.vcxproj -> D:\Programmieren\NxOgre\build\vc10\Debug\NxOgreDebug.dll
Manifest:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\mt.exe /nologo /verbose /outputresource:"D:\Programmieren\NxOgre\build\vc10\Debug\NxOgreDebug.dll;#2" /manifest Debug\NxOgreDebug.dll.intermediate.manifest
PostBuildEvent:
buildbot.bat makesdk Debug
:VCEnd
[BuildBot] Copying dlls, libs and headers to SDK directory.
1 File(s) copied
1 File(s) copied
196 File(s) copied
FinalizeBuildStatus:
Deleting file "Debug\NxOgre.unsuccessfulbuild".
Touching "Debug\NxOgre.lastbuildstate".
1>Done Building Project "D:\Programmieren\NxOgre\build\vc10\NxOgre.vcxproj" (build target(s)).

Build succeeded.

Time Elapsed 00:00:04.86

betajaen

26-10-2012 20:02:33

Nope. ;)

It's just a text file, that is created when the program is run. It should be in the same folder as the samples exe.

Senzin

28-10-2012 22:54:48

I looked for the NxOgre.log in \...\OgreSDK_vc10_v1-8-1\bin\release and couldn't find it. I ran the sample browser from there, loaded up demo 1001 and tried changing the method from setPosition, causing a crash. However there is still no NxOgre.log file in the directory. I also tried running my own project but there is still no NxOgre.log file. However there are some errors listed in the regular Ogre.log file, so I'll post them here.

Here is the log file from when I run my project with cloth using DirectX 9, which avoids crashing:
15:48:44: Creating resource group General
15:48:44: Creating resource group Internal
15:48:44: Creating resource group Autodetect
15:48:44: SceneManagerFactory for type 'DefaultSceneManager' registered.
15:48:44: Registering ResourceManager for type Material
15:48:44: Registering ResourceManager for type Mesh
15:48:44: Registering ResourceManager for type Skeleton
15:48:44: MovableObjectFactory for type 'ParticleSystem' registered.
15:48:44: OverlayElementFactory for type Panel registered.
15:48:44: OverlayElementFactory for type BorderPanel registered.
15:48:44: OverlayElementFactory for type TextArea registered.
15:48:44: Registering ResourceManager for type Font
15:48:44: ArchiveFactory for archive type FileSystem registered.
15:48:44: ArchiveFactory for archive type Zip registered.
15:48:44: ArchiveFactory for archive type EmbeddedZip registered.
15:48:44: DDS codec registering
15:48:44: FreeImage version: 3.15.3
15:48:44: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
15:48:44: 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,3fr,arw,bay,bmq,cap,cine,cr2,crw,cs1,dc2,dcr,drf,dsc,dng,erf,fff,ia,iiq,k25,kc2,kdc,mdc,mef,mos,mrw,nef,nrw,orf,pef,ptx,pxn,qtk,raf,raw,rdc,rw2,rwl,rwz,sr2,srf,srw,sti
15:48:44: Registering ResourceManager for type HighLevelGpuProgram
15:48:44: Registering ResourceManager for type Compositor
15:48:44: MovableObjectFactory for type 'Entity' registered.
15:48:44: MovableObjectFactory for type 'Light' registered.
15:48:44: MovableObjectFactory for type 'BillboardSet' registered.
15:48:44: MovableObjectFactory for type 'ManualObject' registered.
15:48:44: MovableObjectFactory for type 'BillboardChain' registered.
15:48:44: MovableObjectFactory for type 'RibbonTrail' registered.
15:48:44: Loading library .\RenderSystem_Direct3D9
15:48:44: Installing plugin: D3D9 RenderSystem
15:48:44: D3D9 : Direct3D9 Rendering Subsystem created.
15:48:44: D3D9: Driver Detection Starts
15:48:44: D3D9: Driver Detection Ends
15:48:44: Plugin successfully installed
15:48:44: Loading library .\RenderSystem_GL
15:48:44: Installing plugin: GL RenderSystem
15:48:44: OpenGL Rendering Subsystem created.
15:48:45: Plugin successfully installed
15:48:45: Loading library .\Plugin_ParticleFX
15:48:45: Installing plugin: ParticleFX
15:48:45: Particle Emitter Type 'Point' registered
15:48:45: Particle Emitter Type 'Box' registered
15:48:45: Particle Emitter Type 'Ellipsoid' registered
15:48:45: Particle Emitter Type 'Cylinder' registered
15:48:45: Particle Emitter Type 'Ring' registered
15:48:45: Particle Emitter Type 'HollowEllipsoid' registered
15:48:45: Particle Affector Type 'LinearForce' registered
15:48:45: Particle Affector Type 'ColourFader' registered
15:48:45: Particle Affector Type 'ColourFader2' registered
15:48:45: Particle Affector Type 'ColourImage' registered
15:48:45: Particle Affector Type 'ColourInterpolator' registered
15:48:45: Particle Affector Type 'Scaler' registered
15:48:45: Particle Affector Type 'Rotator' registered
15:48:45: Particle Affector Type 'DirectionRandomiser' registered
15:48:45: Particle Affector Type 'DeflectorPlane' registered
15:48:45: Plugin successfully installed
15:48:45: Loading library .\Plugin_BSPSceneManager
15:48:45: Installing plugin: BSP Scene Manager
15:48:45: Plugin successfully installed
15:48:45: Loading library .\Plugin_CgProgramManager
15:48:45: Installing plugin: Cg Program Manager
15:48:45: Plugin successfully installed
15:48:45: Loading library .\Plugin_PCZSceneManager
15:48:45: Installing plugin: Portal Connected Zone Scene Manager
15:48:45: PCZone Factory Type 'ZoneType_Default' registered
15:48:45: Plugin successfully installed
15:48:45: Loading library .\Plugin_OctreeZone
15:48:45: Installing plugin: Octree Zone Factory
15:48:45: Plugin successfully installed
15:48:45: Loading library .\Plugin_OctreeSceneManager
15:48:45: Installing plugin: Octree Scene Manager
15:48:45: Plugin successfully installed
15:48:45: *-*-* OGRE Initialising
15:48:45: *-*-* Version 1.8.1 (Byatis)
15:48:45: Creating resource group Essential
15:48:45: Added resource location '../../media/thumbnails' of type 'FileSystem' to resource group 'Essential'
15:48:45: Added resource location '../../media/packs/SdkTrays.zip' of type 'Zip' to resource group 'Essential'
15:48:45: Added resource location '../../media/packs/profiler.zip' of type 'Zip' to resource group 'Essential'
15:48:45: Added resource location '../../media' of type 'FileSystem' to resource group 'General'
15:48:45: Creating resource group Popular
15:48:45: Added resource location '../../media/fonts' of type 'FileSystem' to resource group 'Popular'
15:48:45: Added resource location '../../media/materials/programs' of type 'FileSystem' to resource group 'Popular'
15:48:45: Added resource location '../../media/materials/scripts' of type 'FileSystem' to resource group 'Popular'
15:48:45: Added resource location '../../media/materials/textures' of type 'FileSystem' to resource group 'Popular'
15:48:45: Added resource location '../../media/materials/textures/nvidia' of type 'FileSystem' to resource group 'Popular'
15:48:45: Added resource location '../../media/models' of type 'FileSystem' to resource group 'Popular'
15:48:45: Added resource location '../../media/particle' of type 'FileSystem' to resource group 'Popular'
15:48:45: Added resource location '../../media/DeferredShadingMedia' of type 'FileSystem' to resource group 'Popular'
15:48:45: Added resource location '../../media/PCZAppMedia' of type 'FileSystem' to resource group 'Popular'
15:48:45: Added resource location '../../media/RTShaderLib' of type 'FileSystem' to resource group 'Popular'
15:48:45: Added resource location '../../media/RTShaderLib/materials' of type 'FileSystem' to resource group 'Popular'
15:48:45: Added resource location '../../media/materials/scripts/SSAO' of type 'FileSystem' to resource group 'Popular'
15:48:45: Added resource location '../../media/materials/textures/SSAO' of type 'FileSystem' to resource group 'Popular'
15:48:45: Added resource location '../../media/packs/cubemap.zip' of type 'Zip' to resource group 'Popular'
15:48:45: Added resource location '../../media/packs/cubemapsJS.zip' of type 'Zip' to resource group 'Popular'
15:48:45: Added resource location '../../media/packs/dragon.zip' of type 'Zip' to resource group 'Popular'
15:48:45: Added resource location '../../media/packs/fresneldemo.zip' of type 'Zip' to resource group 'Popular'
15:48:45: Added resource location '../../media/packs/ogretestmap.zip' of type 'Zip' to resource group 'Popular'
15:48:45: Added resource location '../../media/packs/ogredance.zip' of type 'Zip' to resource group 'Popular'
15:48:45: Added resource location '../../media/packs/Sinbad.zip' of type 'Zip' to resource group 'Popular'
15:48:45: Added resource location '../../media/packs/skybox.zip' of type 'Zip' to resource group 'Popular'
15:48:45: Added resource location '../../media/packs/NxOgre.zip' of type 'Zip' to resource group 'Popular'
15:48:45: Creating resource group Tests
15:48:45: Added resource location '../../media/../../Tests/Media' of type 'FileSystem' to resource group 'Tests'
15:48:45: D3D9 : RenderSystem Option: Allow NVPerfHUD = No
15:48:45: D3D9 : RenderSystem Option: FSAA = 0
15:48:45: D3D9 : RenderSystem Option: Fixed Pipeline Enabled = Yes
15:48:45: D3D9 : RenderSystem Option: Floating-point mode = Fastest
15:48:45: D3D9 : RenderSystem Option: Full Screen = No
15:48:45: D3D9 : RenderSystem Option: Multi device memory hint = Use minimum system memory
15:48:45: D3D9 : RenderSystem Option: Rendering Device = Monitor-1-AMD Radeon HD 6900 Series
15:48:45: D3D9 : RenderSystem Option: Resource Creation Policy = Create on all devices
15:48:45: D3D9 : RenderSystem Option: Use Multihead = Auto
15:48:45: D3D9 : RenderSystem Option: VSync = Yes
15:48:45: D3D9 : RenderSystem Option: VSync Interval = 1
15:48:45: D3D9 : RenderSystem Option: Video Mode = 1680 x 1050 @ 32-bit colour
15:48:45: D3D9 : RenderSystem Option: sRGB Gamma Conversion = No
15:48:47: CPU Identifier & Features
15:48:47: -------------------------
15:48:47: * CPU ID: GenuineIntel: Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz
15:48:47: * SSE: yes
15:48:47: * SSE2: yes
15:48:47: * SSE3: yes
15:48:47: * MMX: yes
15:48:47: * MMXEXT: yes
15:48:47: * 3DNOW: no
15:48:47: * 3DNOWEXT: no
15:48:47: * CMOV: yes
15:48:47: * TSC: yes
15:48:47: * FPU: yes
15:48:47: * PRO: yes
15:48:47: * HT: no
15:48:47: -------------------------
15:48:47: D3D9 : Subsystem Initialising
15:48:47: Registering ResourceManager for type Texture
15:48:47: Registering ResourceManager for type GpuProgram
15:48:47: D3D9RenderSystem::_createRenderWindow "Nx Render Window", 1680x1050 windowed miscParams: FSAA=0 FSAAHint= colourDepth=32 gamma=false monitorIndex=0 useNVPerfHUD=false vsync=true vsyncInterval=1
15:48:47: D3D9 : Created D3D9 Rendering Window 'Nx Render Window' : 1680x1050, 32bpp
15:48:48: D3D9: Vertex texture format supported - PF_L8
15:48:48: D3D9: Vertex texture format supported - PF_L16
15:48:48: D3D9: Vertex texture format supported - PF_A8
15:48:48: D3D9: Vertex texture format supported - PF_A4L4
15:48:48: D3D9: Vertex texture format supported - PF_BYTE_LA
15:48:48: D3D9: Vertex texture format supported - PF_R5G6B5
15:48:48: D3D9: Vertex texture format supported - PF_B5G6R5
15:48:48: D3D9: Vertex texture format supported - PF_A4R4G4B4
15:48:48: D3D9: Vertex texture format supported - PF_A1R5G5B5
15:48:48: D3D9: Vertex texture format supported - PF_A8R8G8B8
15:48:48: D3D9: Vertex texture format supported - PF_B8G8R8A8
15:48:48: D3D9: Vertex texture format supported - PF_A2R10G10B10
15:48:48: D3D9: Vertex texture format supported - PF_A2B10G10R10
15:48:48: D3D9: Vertex texture format supported - PF_DXT1
15:48:48: D3D9: Vertex texture format supported - PF_DXT2
15:48:48: D3D9: Vertex texture format supported - PF_DXT3
15:48:48: D3D9: Vertex texture format supported - PF_DXT4
15:48:48: D3D9: Vertex texture format supported - PF_DXT5
15:48:48: D3D9: Vertex texture format supported - PF_FLOAT16_RGB
15:48:48: D3D9: Vertex texture format supported - PF_FLOAT16_RGBA
15:48:48: D3D9: Vertex texture format supported - PF_FLOAT32_RGB
15:48:48: D3D9: Vertex texture format supported - PF_FLOAT32_RGBA
15:48:48: D3D9: Vertex texture format supported - PF_X8R8G8B8
15:48:48: D3D9: Vertex texture format supported - PF_X8B8G8R8
15:48:48: D3D9: Vertex texture format supported - PF_R8G8B8A8
15:48:48: D3D9: Vertex texture format supported - PF_DEPTH
15:48:48: D3D9: Vertex texture format supported - PF_SHORT_RGBA
15:48:48: D3D9: Vertex texture format supported - PF_FLOAT16_R
15:48:48: D3D9: Vertex texture format supported - PF_FLOAT32_R
15:48:48: D3D9: Vertex texture format supported - PF_SHORT_GR
15:48:48: D3D9: Vertex texture format supported - PF_FLOAT16_GR
15:48:48: D3D9: Vertex texture format supported - PF_FLOAT32_GR
15:48:48: D3D9: Vertex texture format supported - PF_SHORT_RGB
15:48:48: D3D9: Vertex texture format supported - PF_PVRTC_RGB2
15:48:48: D3D9: Vertex texture format supported - PF_PVRTC_RGBA2
15:48:48: D3D9: Vertex texture format supported - PF_PVRTC_RGB4
15:48:48: D3D9: Vertex texture format supported - PF_PVRTC_RGBA4
15:48:48: D3D9: Vertex texture format supported - PF_R8
15:48:48: D3D9: Vertex texture format supported - PF_RG8
15:48:48: RenderSystem capabilities
15:48:48: -------------------------
15:48:48: RenderSystem Name: Direct3D9 Rendering Subsystem
15:48:48: GPU Vendor: ati
15:48:48: Device Name: Monitor-1-AMD Radeon HD 6900 Series
15:48:48: Driver Version: 8.17.10.1140
15:48:48: * Fixed function pipeline: yes
15:48:48: * Hardware generation of mipmaps: yes
15:48:48: * Texture blending: yes
15:48:48: * Anisotropic texture filtering: yes
15:48:48: * Dot product texture operation: yes
15:48:48: * Cube mapping: yes
15:48:48: * Hardware stencil buffer: yes
15:48:48: - Stencil depth: 8
15:48:48: - Two sided stencil support: yes
15:48:48: - Wrap stencil values: yes
15:48:48: * Hardware vertex / index buffers: yes
15:48:48: * Vertex programs: yes
15:48:48: * Number of floating-point constants for vertex programs: 256
15:48:48: * Number of integer constants for vertex programs: 16
15:48:48: * Number of boolean constants for vertex programs: 16
15:48:48: * Fragment programs: yes
15:48:48: * Number of floating-point constants for fragment programs: 224
15:48:48: * Number of integer constants for fragment programs: 16
15:48:48: * Number of boolean constants for fragment programs: 16
15:48:48: * Geometry programs: no
15:48:48: * Number of floating-point constants for geometry programs: 69
15:48:48: * Number of integer constants for geometry programs: 25697
15:48:48: * Number of boolean constants for geometry programs: 25183
15:48:48: * Supported Shader Profiles: hlsl ps_1_1 ps_1_2 ps_1_3 ps_1_4 ps_2_0 ps_2_a ps_2_b ps_2_x ps_3_0 vs_1_1 vs_2_0 vs_2_a vs_2_x vs_3_0
15:48:48: * Texture Compression: yes
15:48:48: - DXT: yes
15:48:48: - VTC: no
15:48:48: - PVRTC: no
15:48:48: * Scissor Rectangle: yes
15:48:48: * Hardware Occlusion Query: yes
15:48:48: * User clip planes: yes
15:48:48: * VET_UBYTE4 vertex element type: yes
15:48:48: * Infinite far plane projection: yes
15:48:48: * Hardware render-to-texture: yes
15:48:48: * Floating point textures: yes
15:48:48: * Non-power-of-two textures: yes
15:48:48: * Volume textures: yes
15:48:48: * Multiple Render Targets: 4
15:48:48: - With different bit depths: yes
15:48:48: * Point Sprites: yes
15:48:48: * Extended point parameters: yes
15:48:48: * Max Point Size: 256
15:48:48: * Vertex texture fetch: yes
15:48:48: * Number of world matrices: 0
15:48:48: * Number of texture units: 8
15:48:48: * Stencil buffer depth: 8
15:48:48: * Number of vertex blend matrices: 0
15:48:48: - Max vertex textures: 4
15:48:48: - Vertex textures shared: no
15:48:48: * Render to Vertex Buffer : no
15:48:48: * DirectX per stage constants: yes
15:48:48: ***************************************
15:48:48: *** D3D9 : Subsystem Initialised OK ***
15:48:48: ***************************************
15:48:48: DefaultWorkQueue('Root') initialising on thread 007896A8.
15:48:48: DefaultWorkQueue('Root')::WorkerFunc - thread 007AEBA0 starting.
15:48:48: DefaultWorkQueue('Root')::WorkerFunc - thread 007AEBD0 starting.
15:48:48: DefaultWorkQueue('Root')::WorkerFunc - thread 007AEC00 starting.
15:48:48: DefaultWorkQueue('Root')::WorkerFunc - thread 007AEC30 starting.
15:48:48: DefaultWorkQueue('Root')::WorkerFunc - thread 007AEC60 starting.
15:48:48: DefaultWorkQueue('Root')::WorkerFunc - thread 007AEC90 starting.
15:48:48: Particle Renderer Type 'billboard' registered
15:48:48: SceneManagerFactory for type 'BspSceneManager' registered.
15:48:48: Registering ResourceManager for type BspLevel
15:48:48: DefaultWorkQueue('Root')::WorkerFunc - thread 007AECC0 starting.
15:48:48: DefaultWorkQueue('Root')::WorkerFunc - thread 007AECF0 starting.
15:48:48: SceneManagerFactory for type 'PCZSceneManager' registered.
15:48:48: MovableObjectFactory for type 'PCZLight' registered.
15:48:48: MovableObjectFactory for type 'Portal' registered.
15:48:48: MovableObjectFactory for type 'AntiPortal' registered.
15:48:48: PCZone Factory Type 'ZoneType_Octree' registered
15:48:48: SceneManagerFactory for type 'OctreeSceneManager' registered.
15:48:48: Parsing scripts for resource group Autodetect
15:48:48: Finished parsing scripts for resource group Autodetect
15:48:48: Creating resources for group Autodetect
15:48:48: All done
15:48:48: Parsing scripts for resource group Essential
15:48:48: Parsing script SdkTrays.material
15:48:48: Parsing script OgreProfiler.material
15:48:48: Parsing script SdkTrays.fontdef
15:48:48: Parsing script SdkTrays.overlay
15:48:48: Texture: sdk_cursor.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) Internal format is PF_A8R8G8B8,32x32x1.
15:48:48: Texture: sdk_tray.png: Loading 1 faces(PF_A8R8G8B8,64x64x1) Internal format is PF_A8R8G8B8,64x64x1.
15:48:48: Texture: sdk_button_up.png: Loading 1 faces(PF_A8R8G8B8,128x32x1) Internal format is PF_A8R8G8B8,128x32x1.
15:48:48: Texture: sdk_text_box.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) Internal format is PF_A8R8G8B8,32x32x1.
15:48:48: Texture: sdk_mini_tray.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) Internal format is PF_A8R8G8B8,32x32x1.
15:48:48: Texture: sdk_track.png: Loading 1 faces(PF_A8R8G8B8,16x32x1) Internal format is PF_A8R8G8B8,16x32x1.
15:48:48: Texture: sdk_handle.png: Loading 1 faces(PF_A8R8G8B8,16x16x1) Internal format is PF_A8R8G8B8,16x16x1.
15:48:48: Texture: sdk_mini_text_box.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) Internal format is PF_A8R8G8B8,32x32x1.
15:48:48: Texture: sdk_label.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) Internal format is PF_A8R8G8B8,32x32x1.
15:48:48: Texture: sdk_separator.png: Loading 1 faces(PF_A8R8G8B8,64x16x1) Internal format is PF_A8R8G8B8,64x16x1.
15:48:48: Texture: sdk_logo.png: Loading 1 faces(PF_A8R8G8B8,128x64x1) Internal format is PF_A8R8G8B8,128x64x1.
15:48:48: Texture: sdk_shade.png: Loading 1 faces(PF_A8R8G8B8,64x48x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,64x48x1.
15:48:48: Texture: sdk_frame.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) Internal format is PF_A8R8G8B8,32x32x1.
15:48:48: Texture: sdk_mini_text_box_over.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) Internal format is PF_A8R8G8B8,32x32x1.
15:48:48: Texture: sdk_pulse.png: Loading 1 faces(PF_R8G8B8,8x1x1) Internal format is PF_X8R8G8B8,8x1x1.
15:48:48: Finished parsing scripts for resource group Essential
15:48:48: Creating resources for group Essential
15:48:48: All done
15:48:48: Parsing scripts for resource group General
15:48:48: Finished parsing scripts for resource group General
15:48:48: Creating resources for group General
15:48:48: All done
15:48:48: Parsing scripts for resource group Internal
15:48:48: Finished parsing scripts for resource group Internal
15:48:48: Creating resources for group Internal
15:48:48: All done
15:48:48: Parsing scripts for resource group Popular
15:48:48: Parsing script Instancing.program
15:48:48: Parsing script DualQuaternion.program
15:48:48: Parsing script Examples.program
15:48:48: OGRE EXCEPTION(2:InvalidParametersException): Parameter called diffuse does not exist. in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1451)
15:48:48: Compiler error: invalid parameters in Examples.program(256): setting of constant failed
15:48:48: Parsing script StdQuad_vp.program
15:48:48: Parsing script deferred_post.program
15:48:48: Parsing script ShadowCaster.program
15:48:48: Parsing script ASCII.material
15:48:48: Parsing script ASMSwizzle.material
15:48:48: Compiler error: object unsupported by render system in ASMSwizzle.material(1)
15:48:48: Parsing script BlackAndWhite.material
15:48:48: Parsing script Bloom.material
15:48:48: Parsing script Bloom2.material
15:48:48: Parsing script CGSwizzle.material
15:48:48: Parsing script CompositorDemo.material
15:48:48: Parsing script DepthShadowmap.material
15:48:48: Parsing script Dither.material
15:48:48: Parsing script DOF.material
15:48:48: Parsing script DualQuaternion.material
15:48:48: Parsing script Embossed.material
15:48:48: Parsing script Example-Water.material
15:48:48: Parsing script Examples-Advanced.material
15:48:48: Compiler error: object unsupported by render system in Examples-Advanced.material(787)
15:48:48: Parsing script Examples-DynTex.material
15:48:48: Parsing script Examples-Water.material
15:48:48: Parsing script Examples.material
15:48:48: Parsing script facial.material
15:48:48: Parsing script Glass.material
15:48:48: Parsing script GLSLSwizzle.material
15:48:48: Parsing script Halftone.material
15:48:48: Parsing script hdr.material
15:48:48: Parsing script HeatVision.material
15:48:48: Parsing script Hurt.material
15:48:48: Parsing script HWInstancing.material
15:48:48: Parsing script HW_VTFInstancing.material
15:48:48: Parsing script HW_VTF_LUTInstancing.material
15:48:48: Parsing script instancing.material
15:48:48: Parsing script InstancingMisc.material
15:48:48: Parsing script Invert.material
15:48:48: Parsing script IsoSurf.material
15:48:48: Parsing script Laplace.material
15:48:48: Parsing script MotionBlur.material
15:48:48: Parsing script MRTtest.material
15:48:48: Parsing script NightVision.material
15:48:48: Parsing script Ocean.material
15:48:49: Parsing script OffsetMapping.material
15:48:49: Parsing script Ogre.material
15:48:49: Parsing script OldMovie.material
15:48:49: Parsing script OldTV.material
15:48:49: Parsing script ParticleGS.material
15:48:49: OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/ParticleGS/DisplayVScg: The compile returned an error.
<invalid atom 65535>(249) : warning C7050: "output.color" might be used before being initialized
(0) : error C6015: Output 'POSITION' not completely written
in CgProgram::compileMicrocode at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
15:48:49: High-level program Ogre/ParticleGS/DisplayVScg encountered an error during loading and is thus not supported.
OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/ParticleGS/DisplayVScg: The compile returned an error.
<invalid atom 65535>(249) : warning C7050: "output.color" might be used before being initialized
(0) : error C6015: Output 'POSITION' not completely written
in CgProgram::compileMicrocode at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
15:48:49: Parsing script Penguin.material
15:48:49: Parsing script Posterize.material
15:48:49: Parsing script pssm.material
15:48:49: Parsing script RadialBlur.material
15:48:49: Parsing script RZR-002.material
15:48:49: Parsing script ShaderInstancing.material
15:48:49: Parsing script ShaderSystem.material
15:48:49: Parsing script shadows.material
15:48:49: Parsing script SharpenEdges.material
15:48:49: Parsing script sibenik.material
15:48:49: Parsing script smoke.material
15:48:49: Parsing script Tiling.material
15:48:49: Parsing script VarianceShadowmap.material
15:48:49: Parsing script VTFInstancing.material
15:48:49: Parsing script deferreddemo.material
15:48:49: Parsing script deferred_post.material
15:48:49: Parsing script deferred_post_minilight.material
15:48:49: Parsing script ShadowCaster.material
15:48:49: Parsing script ssao.material
15:48:49: Parsing script ROOM.material
15:48:49: Parsing script DualQuaternionSkinning_Shadow.material
15:48:49: Parsing script HardwareSkinningShadow.material
15:48:49: OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/RTShader/shadow_receiver_vs: The compile returned an error.
(0) : error C3001: no program defined
in CgProgram::compileMicrocode at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
15:48:49: High-level program Ogre/RTShader/shadow_receiver_vs encountered an error during loading and is thus not supported.
OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/RTShader/shadow_receiver_vs: The compile returned an error.
(0) : error C3001: no program defined
in CgProgram::compileMicrocode at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
15:48:49: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1441)
15:48:49: Compiler error: invalid parameters in HardwareSkinningShadow.material(206): setting of constant failed
15:48:49: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1441)
15:48:49: Compiler error: invalid parameters in HardwareSkinningShadow.material(207): setting of constant failed
15:48:49: OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/RTShader/shadow_receiver_ps: The compile returned an error.
(0) : error C3001: no program defined
in CgProgram::compileMicrocode at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
15:48:49: High-level program Ogre/RTShader/shadow_receiver_ps encountered an error during loading and is thus not supported.
OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/RTShader/shadow_receiver_ps: The compile returned an error.
(0) : error C3001: no program defined
in CgProgram::compileMicrocode at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
15:48:49: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1441)
15:48:49: Compiler error: invalid parameters in HardwareSkinningShadow.material(219): setting of constant failed
15:48:49: Parsing script RTShaderSystem.material
15:48:49: Compiler error: unknown error in RTShaderSystem.material(23): token "rtshader_system" is not recognized
15:48:49: Compiler error: unknown error in RTShaderSystem.material(52): token "rtshader_system" is not recognized
15:48:49: Compiler error: unknown error in RTShaderSystem.material(81): token "rtshader_system" is not recognized
15:48:49: Compiler error: unknown error in RTShaderSystem.material(110): token "rtshader_system" is not recognized
15:48:49: Compiler error: unknown error in RTShaderSystem.material(146): token "rtshader_system" is not recognized
15:48:49: Compiler error: unknown error in RTShaderSystem.material(81): token "rtshader_system" is not recognized
15:48:49: Compiler error: unknown error in RTShaderSystem.material(162): token "rtshader_system" is not recognized
15:48:49: Compiler error: unknown error in RTShaderSystem.material(81): token "rtshader_system" is not recognized
15:48:49: Compiler error: unknown error in RTShaderSystem.material(110): token "rtshader_system" is not recognized
15:48:49: Compiler error: unknown error in RTShaderSystem.material(211): token "rtshader_system" is not recognized
15:48:49: Parsing script CreaseShading.material
15:48:49: Parsing script Crytek.material
15:48:49: Parsing script GBuffer.material
15:48:49: Parsing script HemisphereMC.material
15:48:49: Parsing script HorizonBased.material
15:48:49: Parsing script ShowDepth.material
15:48:49: Parsing script ShowNormals.material
15:48:49: Parsing script ShowViewPos.material
15:48:49: Parsing script SSAOPost.material
15:48:49: Parsing script UnsharpMask.material
15:48:49: Parsing script Volumetric.material
15:48:50: Parsing script RomanBath.material
15:48:50: Parsing script Sinbad.material
15:48:50: Parsing script racecar.material
15:48:50: Parsing script wheel50cmx10cmx50cm.material
15:48:50: Parsing script photon.material
15:48:50: Parsing script cc.material
15:48:50: Parsing script emitted_emitter.particle
15:48:50: Parsing script Examples-Water.particle
15:48:50: Parsing script Examples.particle
15:48:50: Parsing script smoke.particle
15:48:50: Parsing script nxogre.zz.particle
15:48:50: Parsing script Examples.compositor
15:48:50: Parsing script deferred.compositor
15:48:50: Parsing script ssao.compositor
15:48:50: Parsing script SSAO.compositor
15:48:50: Parsing script SSAOPost.compositor
15:48:50: Parsing script sample.fontdef
15:48:50: Finished parsing scripts for resource group Popular
15:48:50: Creating resources for group Popular
15:48:50: All done
15:48:50: Parsing scripts for resource group Tests
15:48:50: Finished parsing scripts for resource group Tests
15:48:50: Creating resources for group Tests
15:48:50: All done
15:48:50: Texture: dejavu.png: Loading 1 faces(PF_A8R8G8B8,512x512x1) Internal format is PF_A8R8G8B8,512x512x1.
15:48:50: Texture: nxogre.floor.png: Loading 1 faces(PF_A8R8G8B8,512x512x1) Internal format is PF_A8R8G8B8,512x512x1.
15:48:50: Texture: nxogre.floor.shadowalpha.png: Loading 1 faces(PF_R8G8B8,1024x1024x1) Internal format is PF_X8R8G8B8,1024x1024x1.
15:48:51: Mesh: Loading cube.1m.mesh.
15:48:51: WARNING: cube.1m.mesh is an older format ([MeshSerializer_v1.41]); you should upgrade it as soon as possible using the OgreMeshUpgrade tool.
15:48:51: Texture: nxogre.cube.png: Loading 1 faces(PF_R8G8B8,512x512x1) Internal format is PF_X8R8G8B8,512x512x1.
15:48:51: Mesh: Loading ogrehead.mesh.
15:48:51: Texture: GreenSkin.jpg: Loading 1 faces(PF_R8G8B8,256x256x1) Internal format is PF_X8R8G8B8,256x256x1.
15:48:51: Texture: spheremap.png: Loading 1 faces(PF_R8G8B8,256x256x1) Internal format is PF_X8R8G8B8,256x256x1.
15:48:51: Texture: tusk.jpg: Loading 1 faces(PF_R8G8B8,128x128x1) Internal format is PF_X8R8G8B8,128x128x1.
15:48:51: Mesh: Loading barrel.mesh.
15:48:51: WARNING: barrel.mesh is an older format ([MeshSerializer_v1.40]); you should upgrade it as soon as possible using the OgreMeshUpgrade tool.
15:48:51: Texture: nxogre.barrel.png: Loading 1 faces(PF_R8G8B8,512x512x1) Internal format is PF_X8R8G8B8,512x512x1.
15:48:51: Mesh: Loading container.mesh.
15:48:51: WARNING: container.mesh is an older format ([MeshSerializer_v1.40]); you should upgrade it as soon as possible using the OgreMeshUpgrade tool.
15:48:51: Texture: nxogre.container1.png: Loading 1 faces(PF_R8G8B8,1024x1024x1) Internal format is PF_X8R8G8B8,1024x1024x1.
15:48:51: Mesh: Loading nxogre.playpen.mesh.
15:48:51: WARNING: nxogre.playpen.mesh is an older format ([MeshSerializer_v1.40]); you should upgrade it as soon as possible using the OgreMeshUpgrade tool.
15:48:51: Texture: nxogre.concrete.jpg: Loading 1 faces(PF_R8G8B8,512x512x1) Internal format is PF_X8R8G8B8,512x512x1.
15:48:51: Texture: nxogre.wall.jpg: Loading 1 faces(PF_R8G8B8,512x512x1) Internal format is PF_X8R8G8B8,512x512x1.
15:48:51: Mesh: Loading cube.mesh.
15:48:51: Texture: wales.png: Loading 1 faces(PF_A8R8G8B8,800x480x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,800x480x1.
15:48:51: *** Initializing OIS ***
15:48:51: Texture: spot_shadow_fade.png: Loading 1 faces(PF_R8G8B8,128x128x1) Internal format is PF_X8R8G8B8,128x128x1.
15:48:51: Font SdkTrays/Caption using texture size 512x256
15:48:51: Info: Freetype returned null for character 160 in font SdkTrays/Caption
15:48:51: Texture: SdkTrays/CaptionTexture: Loading 1 faces(PF_BYTE_LA,512x256x1) with 0 generated mipmaps from Image. Internal format is PF_BYTE_LA,512x256x1.
15:48:51: Font SdkTrays/Value using texture size 512x256
15:48:51: Info: Freetype returned null for character 127 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 128 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 129 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 130 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 131 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 132 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 133 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 134 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 135 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 136 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 137 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 138 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 139 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 140 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 141 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 142 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 143 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 144 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 145 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 146 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 147 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 148 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 149 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 150 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 151 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 152 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 153 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 154 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 155 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 156 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 157 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 158 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 159 in font SdkTrays/Value
15:48:51: Info: Freetype returned null for character 160 in font SdkTrays/Value
15:48:51: Texture: SdkTrays/ValueTexture: Loading 1 faces(PF_BYTE_LA,512x256x1) with 0 generated mipmaps from Image. Internal format is PF_BYTE_LA,512x256x1.
15:48:53: DefaultWorkQueue('Root') shutting down on thread 007896A8.
15:48:53: DefaultWorkQueue('Root')::WorkerFunc - thread 007AECF0 stopped.
15:48:53: DefaultWorkQueue('Root')::WorkerFunc - thread 007AEC00 stopped.
15:48:53: DefaultWorkQueue('Root')::WorkerFunc - thread 007AEC60 stopped.
15:48:53: DefaultWorkQueue('Root')::WorkerFunc - thread 007AEBD0 stopped.
15:48:53: DefaultWorkQueue('Root')::WorkerFunc - thread 007AECC0 stopped.
15:48:53: DefaultWorkQueue('Root')::WorkerFunc - thread 007AEC90 stopped.
15:48:53: DefaultWorkQueue('Root')::WorkerFunc - thread 007AEBA0 stopped.
15:48:53: DefaultWorkQueue('Root')::WorkerFunc - thread 007AEC30 stopped.
15:48:53: PCZone Factory Type 'ZoneType_Octree' unregistered
15:48:53: Unregistering ResourceManager for type BspLevel
15:48:53: *-*-* OGRE Shutdown
15:48:53: Unregistering ResourceManager for type Compositor
15:48:53: Unregistering ResourceManager for type Font
15:48:53: Unregistering ResourceManager for type Skeleton
15:48:53: Unregistering ResourceManager for type Mesh
15:48:53: Unregistering ResourceManager for type HighLevelGpuProgram
15:48:53: Uninstalling plugin: Octree Scene Manager
15:48:53: Plugin successfully uninstalled
15:48:53: Unloading library .\Plugin_OctreeSceneManager
15:48:53: Uninstalling plugin: Octree Zone Factory
15:48:53: Plugin successfully uninstalled
15:48:53: Unloading library .\Plugin_OctreeZone
15:48:53: Uninstalling plugin: Portal Connected Zone Scene Manager
15:48:53: Plugin successfully uninstalled
15:48:53: Unloading library .\Plugin_PCZSceneManager
15:48:53: Uninstalling plugin: Cg Program Manager
15:48:53: Plugin successfully uninstalled
15:48:53: Unloading library .\Plugin_CgProgramManager
15:48:53: Uninstalling plugin: BSP Scene Manager
15:48:53: Plugin successfully uninstalled
15:48:53: Unloading library .\Plugin_BSPSceneManager
15:48:53: Uninstalling plugin: ParticleFX
15:48:53: Plugin successfully uninstalled
15:48:53: Unloading library .\Plugin_ParticleFX
15:48:53: Uninstalling plugin: GL RenderSystem
15:48:53: *** Stopping Win32GL Subsystem ***
15:48:53: Plugin successfully uninstalled
15:48:53: Unloading library .\RenderSystem_GL
15:48:53: Uninstalling plugin: D3D9 RenderSystem
15:48:53: D3D9 device: 0x[03AEFA20] destroy. Releasing D3D9 texture: wales.png
15:48:53: Released D3D9 texture: wales.png
15:48:53: D3D9 : Shutting down cleanly.
15:48:53: Unregistering ResourceManager for type Texture
15:48:53: Unregistering ResourceManager for type GpuProgram
15:48:53: D3D9 : Direct3D9 Rendering Subsystem destroyed.
15:48:53: Plugin successfully uninstalled
15:48:53: Unloading library .\RenderSystem_Direct3D9
15:48:53: Unregistering ResourceManager for type Material


Here is the log file from when I run my project with cloth using OpenGL, causing a crash (the log wouldn't fit in a single post so I've split it over these two):
15:52:13: Creating resource group General
15:52:13: Creating resource group Internal
15:52:13: Creating resource group Autodetect
15:52:13: SceneManagerFactory for type 'DefaultSceneManager' registered.
15:52:13: Registering ResourceManager for type Material
15:52:13: Registering ResourceManager for type Mesh
15:52:13: Registering ResourceManager for type Skeleton
15:52:13: MovableObjectFactory for type 'ParticleSystem' registered.
15:52:13: OverlayElementFactory for type Panel registered.
15:52:13: OverlayElementFactory for type BorderPanel registered.
15:52:13: OverlayElementFactory for type TextArea registered.
15:52:13: Registering ResourceManager for type Font
15:52:13: ArchiveFactory for archive type FileSystem registered.
15:52:13: ArchiveFactory for archive type Zip registered.
15:52:13: ArchiveFactory for archive type EmbeddedZip registered.
15:52:13: DDS codec registering
15:52:13: FreeImage version: 3.15.3
15:52:13: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
15:52:13: 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,3fr,arw,bay,bmq,cap,cine,cr2,crw,cs1,dc2,dcr,drf,dsc,dng,erf,fff,ia,iiq,k25,kc2,kdc,mdc,mef,mos,mrw,nef,nrw,orf,pef,ptx,pxn,qtk,raf,raw,rdc,rw2,rwl,rwz,sr2,srf,srw,sti
15:52:13: Registering ResourceManager for type HighLevelGpuProgram
15:52:13: Registering ResourceManager for type Compositor
15:52:13: MovableObjectFactory for type 'Entity' registered.
15:52:13: MovableObjectFactory for type 'Light' registered.
15:52:13: MovableObjectFactory for type 'BillboardSet' registered.
15:52:13: MovableObjectFactory for type 'ManualObject' registered.
15:52:13: MovableObjectFactory for type 'BillboardChain' registered.
15:52:13: MovableObjectFactory for type 'RibbonTrail' registered.
15:52:13: Loading library .\RenderSystem_Direct3D9
15:52:13: Installing plugin: D3D9 RenderSystem
15:52:13: D3D9 : Direct3D9 Rendering Subsystem created.
15:52:13: D3D9: Driver Detection Starts
15:52:13: D3D9: Driver Detection Ends
15:52:13: Plugin successfully installed
15:52:13: Loading library .\RenderSystem_GL
15:52:13: Installing plugin: GL RenderSystem
15:52:13: OpenGL Rendering Subsystem created.
15:52:13: Plugin successfully installed
15:52:13: Loading library .\Plugin_ParticleFX
15:52:13: Installing plugin: ParticleFX
15:52:13: Particle Emitter Type 'Point' registered
15:52:13: Particle Emitter Type 'Box' registered
15:52:13: Particle Emitter Type 'Ellipsoid' registered
15:52:13: Particle Emitter Type 'Cylinder' registered
15:52:13: Particle Emitter Type 'Ring' registered
15:52:13: Particle Emitter Type 'HollowEllipsoid' registered
15:52:13: Particle Affector Type 'LinearForce' registered
15:52:13: Particle Affector Type 'ColourFader' registered
15:52:13: Particle Affector Type 'ColourFader2' registered
15:52:13: Particle Affector Type 'ColourImage' registered
15:52:13: Particle Affector Type 'ColourInterpolator' registered
15:52:13: Particle Affector Type 'Scaler' registered
15:52:13: Particle Affector Type 'Rotator' registered
15:52:13: Particle Affector Type 'DirectionRandomiser' registered
15:52:13: Particle Affector Type 'DeflectorPlane' registered
15:52:13: Plugin successfully installed
15:52:13: Loading library .\Plugin_BSPSceneManager
15:52:13: Installing plugin: BSP Scene Manager
15:52:13: Plugin successfully installed
15:52:13: Loading library .\Plugin_CgProgramManager
15:52:13: Installing plugin: Cg Program Manager
15:52:13: Plugin successfully installed
15:52:13: Loading library .\Plugin_PCZSceneManager
15:52:13: Installing plugin: Portal Connected Zone Scene Manager
15:52:13: PCZone Factory Type 'ZoneType_Default' registered
15:52:13: Plugin successfully installed
15:52:13: Loading library .\Plugin_OctreeZone
15:52:13: Installing plugin: Octree Zone Factory
15:52:13: Plugin successfully installed
15:52:13: Loading library .\Plugin_OctreeSceneManager
15:52:13: Installing plugin: Octree Scene Manager
15:52:13: Plugin successfully installed
15:52:13: *-*-* OGRE Initialising
15:52:13: *-*-* Version 1.8.1 (Byatis)
15:52:13: Creating resource group Essential
15:52:13: Added resource location '../../media/thumbnails' of type 'FileSystem' to resource group 'Essential'
15:52:13: Added resource location '../../media/packs/SdkTrays.zip' of type 'Zip' to resource group 'Essential'
15:52:13: Added resource location '../../media/packs/profiler.zip' of type 'Zip' to resource group 'Essential'
15:52:13: Added resource location '../../media' of type 'FileSystem' to resource group 'General'
15:52:13: Creating resource group Popular
15:52:13: Added resource location '../../media/fonts' of type 'FileSystem' to resource group 'Popular'
15:52:13: Added resource location '../../media/materials/programs' of type 'FileSystem' to resource group 'Popular'
15:52:13: Added resource location '../../media/materials/scripts' of type 'FileSystem' to resource group 'Popular'
15:52:13: Added resource location '../../media/materials/textures' of type 'FileSystem' to resource group 'Popular'
15:52:13: Added resource location '../../media/materials/textures/nvidia' of type 'FileSystem' to resource group 'Popular'
15:52:13: Added resource location '../../media/models' of type 'FileSystem' to resource group 'Popular'
15:52:13: Added resource location '../../media/particle' of type 'FileSystem' to resource group 'Popular'
15:52:13: Added resource location '../../media/DeferredShadingMedia' of type 'FileSystem' to resource group 'Popular'
15:52:13: Added resource location '../../media/PCZAppMedia' of type 'FileSystem' to resource group 'Popular'
15:52:13: Added resource location '../../media/RTShaderLib' of type 'FileSystem' to resource group 'Popular'
15:52:13: Added resource location '../../media/RTShaderLib/materials' of type 'FileSystem' to resource group 'Popular'
15:52:13: Added resource location '../../media/materials/scripts/SSAO' of type 'FileSystem' to resource group 'Popular'
15:52:13: Added resource location '../../media/materials/textures/SSAO' of type 'FileSystem' to resource group 'Popular'
15:52:13: Added resource location '../../media/packs/cubemap.zip' of type 'Zip' to resource group 'Popular'
15:52:13: Added resource location '../../media/packs/cubemapsJS.zip' of type 'Zip' to resource group 'Popular'
15:52:13: Added resource location '../../media/packs/dragon.zip' of type 'Zip' to resource group 'Popular'
15:52:13: Added resource location '../../media/packs/fresneldemo.zip' of type 'Zip' to resource group 'Popular'
15:52:13: Added resource location '../../media/packs/ogretestmap.zip' of type 'Zip' to resource group 'Popular'
15:52:13: Added resource location '../../media/packs/ogredance.zip' of type 'Zip' to resource group 'Popular'
15:52:13: Added resource location '../../media/packs/Sinbad.zip' of type 'Zip' to resource group 'Popular'
15:52:13: Added resource location '../../media/packs/skybox.zip' of type 'Zip' to resource group 'Popular'
15:52:13: Added resource location '../../media/packs/NxOgre.zip' of type 'Zip' to resource group 'Popular'
15:52:13: Creating resource group Tests
15:52:13: Added resource location '../../media/../../Tests/Media' of type 'FileSystem' to resource group 'Tests'
15:52:13: D3D9 : RenderSystem Option: Allow NVPerfHUD = No
15:52:13: D3D9 : RenderSystem Option: FSAA = 0
15:52:13: D3D9 : RenderSystem Option: Fixed Pipeline Enabled = Yes
15:52:13: D3D9 : RenderSystem Option: Floating-point mode = Fastest
15:52:13: D3D9 : RenderSystem Option: Full Screen = No
15:52:13: D3D9 : RenderSystem Option: Multi device memory hint = Use minimum system memory
15:52:13: D3D9 : RenderSystem Option: Rendering Device = Monitor-1-AMD Radeon HD 6900 Series
15:52:13: D3D9 : RenderSystem Option: Resource Creation Policy = Create on all devices
15:52:13: D3D9 : RenderSystem Option: Use Multihead = Auto
15:52:13: D3D9 : RenderSystem Option: VSync = Yes
15:52:13: D3D9 : RenderSystem Option: VSync Interval = 1
15:52:13: D3D9 : RenderSystem Option: Video Mode = 1680 x 1050 @ 32-bit colour
15:52:13: D3D9 : RenderSystem Option: sRGB Gamma Conversion = No
15:52:16: CPU Identifier & Features
15:52:16: -------------------------
15:52:16: * CPU ID: GenuineIntel: Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz
15:52:16: * SSE: yes
15:52:16: * SSE2: yes
15:52:16: * SSE3: yes
15:52:16: * MMX: yes
15:52:16: * MMXEXT: yes
15:52:16: * 3DNOW: no
15:52:16: * 3DNOWEXT: no
15:52:16: * CMOV: yes
15:52:16: * TSC: yes
15:52:16: * FPU: yes
15:52:16: * PRO: yes
15:52:16: * HT: no
15:52:16: -------------------------
15:52:16: *** Starting Win32GL Subsystem ***
15:52:16: Registering ResourceManager for type Texture
15:52:16: GLRenderSystem::_createRenderWindow "Nx Render Window", 1680x1050 windowed miscParams: FSAA=4 FSAAHint= colourDepth=32 displayFrequency=0 gamma=false vsync=true vsyncInterval=1
15:52:16: Created Win32Window 'Nx Render Window' : 1696x1088, 32bpp
15:52:16: GL_VERSION = 4.2.11762 Compatibility Profile Context
15:52:16: GL_VENDOR = ATI Technologies Inc.
15:52:16: GL_RENDERER = AMD Radeon HD 6900 Series
15:52:16: GL_EXTENSIONS = GL_AMDX_debug_output GL_AMDX_vertex_shader_tessellator GL_AMD_blend_minmax_factor GL_AMD_conservative_depth GL_AMD_debug_output GL_AMD_depth_clamp_separate GL_AMD_draw_buffers_blend GL_AMD_multi_draw_indirect GL_AMD_name_gen_delete GL_AMD_performance_monitor GL_AMD_pinned_memory GL_AMD_query_buffer_object GL_AMD_sample_positions GL_AMD_seamless_cubemap_per_texture GL_AMD_shader_stencil_export GL_AMD_shader_trace GL_AMD_texture_cube_map_array GL_AMD_texture_texture4 GL_AMD_transform_feedback3_lines_triangles GL_AMD_vertex_shader_layer GL_AMD_vertex_shader_tessellator GL_AMD_vertex_shader_viewport_index GL_ARB_ES2_compatibility GL_ARB_base_instance GL_ARB_blend_func_extended GL_ARB_color_buffer_float GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth GL_ARB_copy_buffer GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_draw_indirect GL_ARB_draw_instanced GL_ARB_explicit_attrib_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_provoking_vertex GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counters GL_ARB_shader_bit_encoding GL_ARB_shader_image_load_store GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_stencil_export GL_ARB_shader_subroutine GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shading_language_420pack GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_shadow_ambient GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_compression GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_snorm GL_ARB_texture_storage GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_envmap_bumpmap GL_ATI_fragment_shader GL_ATI_meminfo GL_ATI_separate_stencil GL_ATI_texture_compression_3dc GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_ATI_texture_mirror_once GL_EXT_abgr GL_EXT_bgra GL_EXT_bindable_uniform GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_copy_buffer GL_EXT_copy_texture GL_EXT_direct_state_access GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_histogram GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_provoking_vertex GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shader_image_load_store GL_EXT_shadow_funcs GL_EXT_stencil_wrap GL_EXT_subtexture GL_EXT_texgen_reflection GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_buffer_object GL_EXT_texture_compression_bptc GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_add GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_integer GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_rectangle GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_texture_shared_exponent GL_EXT_texture_snorm GL_EXT_texture_storage GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_IBM_texture_mirrored_repeat GL_KTX_buffer_region GL_NV_blend_square GL_NV_conditional_render GL_NV_copy_depth_to_color GL_NV_copy_image GL_NV_explicit_multisample GL_NV_float_buffer GL_NV_half_float GL_NV_primitive_restart GL_NV_texgen_reflection GL_NV_texture_barrier GL_SGIS_generate_mipmap GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_SUN_multi_draw_arrays GL_WIN_swap_hint WGL_EXT_swap_control
15:52:16: Supported WGL extensions: WGL_ARB_extensions_string WGL_ARB_pixel_format WGL_ATI_pixel_format_float WGL_ARB_pixel_format_float WGL_ARB_multisample WGL_EXT_swap_control WGL_EXT_swap_control_tear WGL_ARB_pbuffer WGL_ARB_render_texture WGL_ARB_make_current_read WGL_EXT_extensions_string WGL_ARB_buffer_region WGL_EXT_framebuffer_sRGB WGL_ATI_render_texture_rectangle WGL_EXT_pixel_format_packed_float WGL_I3D_genlock WGL_NV_swap_group WGL_ARB_create_context WGL_AMD_gpu_association WGL_AMDX_gpu_association WGL_ARB_create_context_profile WGL_NV_float_buffer
15:52:16: ***************************
15:52:16: *** GL Renderer Started ***
15:52:16: ***************************
15:52:16: Registering ResourceManager for type GpuProgram
15:52:16: GLSL support detected
15:52:16: GL: Using GL_EXT_framebuffer_object for rendering to textures (best)
15:52:16: FBO PF_UNKNOWN depth/stencil support: D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_L8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_L16 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_A8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_A4L4 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_BYTE_LA depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_R5G6B5 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_B5G6R5 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_A4R4G4B4 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_A1R5G5B5 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_R8G8B8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_B8G8R8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_A8R8G8B8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_B8G8R8A8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_A2R10G10B10 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_A2B10G10R10 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_FLOAT16_RGB depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_FLOAT16_RGBA depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_FLOAT32_RGB depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_FLOAT32_RGBA depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_X8R8G8B8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_X8B8G8R8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_SHORT_RGBA depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_R3G3B2 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_FLOAT16_R depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_FLOAT32_R depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_SHORT_GR depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_FLOAT16_GR depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_FLOAT32_GR depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: FBO PF_SHORT_RGB depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8
15:52:16: [GL] : Valid FBO targets PF_UNKNOWN PF_L8 PF_L16 PF_A8 PF_A4L4 PF_BYTE_LA PF_R5G6B5 PF_B5G6R5 PF_A4R4G4B4 PF_A1R5G5B5 PF_R8G8B8 PF_B8G8R8 PF_A8R8G8B8 PF_B8G8R8A8 PF_A2R10G10B10 PF_A2B10G10R10 PF_FLOAT16_RGB PF_FLOAT16_RGBA PF_FLOAT32_RGB PF_FLOAT32_RGBA PF_X8R8G8B8 PF_X8B8G8R8 PF_SHORT_RGBA PF_R3G3B2 PF_FLOAT16_R PF_FLOAT32_R PF_SHORT_GR PF_FLOAT16_GR PF_FLOAT32_GR PF_SHORT_RGB
15:52:16: RenderSystem capabilities
15:52:16: -------------------------
15:52:16: RenderSystem Name: OpenGL Rendering Subsystem
15:52:16: GPU Vendor: ati
15:52:16: Device Name: AMD Radeon HD 6900 Series
15:52:16: Driver Version: 4.2.11762.0
15:52:16: * Fixed function pipeline: yes
15:52:16: * Hardware generation of mipmaps: yes
15:52:16: * Texture blending: yes
15:52:16: * Anisotropic texture filtering: yes
15:52:16: * Dot product texture operation: yes
15:52:16: * Cube mapping: yes
15:52:16: * Hardware stencil buffer: yes
15:52:16: - Stencil depth: 8
15:52:16: - Two sided stencil support: yes
15:52:16: - Wrap stencil values: yes
15:52:16: * Hardware vertex / index buffers: yes
15:52:16: * Vertex programs: yes
15:52:16: * Number of floating-point constants for vertex programs: 256
15:52:16: * Number of integer constants for vertex programs: 0
15:52:16: * Number of boolean constants for vertex programs: 0

Senzin

28-10-2012 22:59:13

Here is the log file from when I run my project with cloth using OpenGL, causing a crash (the log wouldn't fit in a single post so I've split it over these two):
15:52:16: * Fragment programs: yes
15:52:16: * Number of floating-point constants for fragment programs: 256
15:52:16: * Number of integer constants for fragment programs: 0
15:52:16: * Number of boolean constants for fragment programs: 0
15:52:16: * Geometry programs: yes
15:52:16: * Number of floating-point constants for geometry programs: 16384
15:52:16: * Number of integer constants for geometry programs: 0
15:52:16: * Number of boolean constants for geometry programs: 0
15:52:16: * Supported Shader Profiles: arbfp1 arbvp1 glsl gp4gp gpu_gp nvgp4 ps_1_1 ps_1_2 ps_1_3 ps_1_4
15:52:16: * Texture Compression: yes
15:52:16: - DXT: yes
15:52:16: - VTC: no
15:52:16: - PVRTC: no
15:52:16: * Scissor Rectangle: yes
15:52:16: * Hardware Occlusion Query: yes
15:52:16: * User clip planes: yes
15:52:16: * VET_UBYTE4 vertex element type: yes
15:52:16: * Infinite far plane projection: yes
15:52:16: * Hardware render-to-texture: yes
15:52:16: * Floating point textures: yes
15:52:16: * Non-power-of-two textures: yes
15:52:16: * Volume textures: yes
15:52:16: * Multiple Render Targets: 8
15:52:16: - With different bit depths: yes
15:52:16: * Point Sprites: yes
15:52:16: * Extended point parameters: yes
15:52:16: * Max Point Size: 8192
15:52:16: * Vertex texture fetch: yes
15:52:16: * Number of world matrices: 0
15:52:16: * Number of texture units: 16
15:52:16: * Stencil buffer depth: 8
15:52:16: * Number of vertex blend matrices: 0
15:52:16: - Max vertex textures: 16
15:52:16: - Vertex textures shared: yes
15:52:16: * Render to Vertex Buffer : no
15:52:16: * GL 1.5 without VBO workaround: no
15:52:16: * Frame Buffer objects: yes
15:52:16: * Frame Buffer objects (ARB extension): no
15:52:16: * Frame Buffer objects (ATI extension): no
15:52:16: * PBuffer support: yes
15:52:16: * GL 1.5 without HW-occlusion workaround: no
15:52:16: * Separate shader objects: no
15:52:16: Using FSAA from GL_ARB_multisample extension.
15:52:16: DefaultWorkQueue('Root') initialising on thread 003A96A8.
15:52:16: DefaultWorkQueue('Root')::WorkerFunc - thread 003CEFA0 starting.
15:52:16: DefaultWorkQueue('Root')::WorkerFunc - thread 003CEFD0 starting.
15:52:16: DefaultWorkQueue('Root')::WorkerFunc - thread 003CF000 starting.
15:52:16: DefaultWorkQueue('Root')::WorkerFunc - thread 003CF030 starting.
15:52:16: DefaultWorkQueue('Root')::WorkerFunc - thread 003CF060 starting.
15:52:16: DefaultWorkQueue('Root')::WorkerFunc - thread 003CF090 starting.
15:52:16: Particle Renderer Type 'billboard' registered
15:52:16: SceneManagerFactory for type 'BspSceneManager' registered.
15:52:16: Registering ResourceManager for type BspLevel
15:52:16: DefaultWorkQueue('Root')::WorkerFunc - thread 003CF0C0 starting.
15:52:16: DefaultWorkQueue('Root')::WorkerFunc - thread 003CF0F0 starting.
15:52:16: SceneManagerFactory for type 'PCZSceneManager' registered.
15:52:16: MovableObjectFactory for type 'PCZLight' registered.
15:52:16: MovableObjectFactory for type 'Portal' registered.
15:52:16: MovableObjectFactory for type 'AntiPortal' registered.
15:52:16: PCZone Factory Type 'ZoneType_Octree' registered
15:52:16: SceneManagerFactory for type 'OctreeSceneManager' registered.
15:52:16: Parsing scripts for resource group Autodetect
15:52:16: Finished parsing scripts for resource group Autodetect
15:52:16: Creating resources for group Autodetect
15:52:16: All done
15:52:16: Parsing scripts for resource group Essential
15:52:16: Parsing script SdkTrays.material
15:52:16: Parsing script OgreProfiler.material
15:52:16: Parsing script SdkTrays.fontdef
15:52:16: Parsing script SdkTrays.overlay
15:52:16: Texture: sdk_cursor.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
15:52:16: Texture: sdk_tray.png: Loading 1 faces(PF_A8R8G8B8,64x64x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,64x64x1.
15:52:16: Texture: sdk_button_up.png: Loading 1 faces(PF_A8R8G8B8,128x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x32x1.
15:52:16: Texture: sdk_text_box.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
15:52:16: Texture: sdk_mini_tray.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
15:52:16: Texture: sdk_track.png: Loading 1 faces(PF_A8R8G8B8,16x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,16x32x1.
15:52:16: Texture: sdk_handle.png: Loading 1 faces(PF_A8R8G8B8,16x16x1) with 4 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,16x16x1.
15:52:16: Texture: sdk_mini_text_box.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
15:52:16: Texture: sdk_label.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
15:52:16: Texture: sdk_separator.png: Loading 1 faces(PF_A8R8G8B8,64x16x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,64x16x1.
15:52:16: Texture: sdk_logo.png: Loading 1 faces(PF_A8R8G8B8,128x64x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x64x1.
15:52:16: Texture: sdk_shade.png: Loading 1 faces(PF_A8R8G8B8,64x48x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,64x48x1.
15:52:16: Texture: sdk_frame.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
15:52:16: Texture: sdk_mini_text_box_over.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
15:52:16: Texture: sdk_pulse.png: Loading 1 faces(PF_R8G8B8,8x1x1) with 3 hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,8x1x1.
15:52:16: Finished parsing scripts for resource group Essential
15:52:16: Creating resources for group Essential
15:52:16: All done
15:52:16: Parsing scripts for resource group General
15:52:16: Finished parsing scripts for resource group General
15:52:16: Creating resources for group General
15:52:16: All done
15:52:16: Parsing scripts for resource group Internal
15:52:16: Finished parsing scripts for resource group Internal
15:52:16: Creating resources for group Internal
15:52:16: All done
15:52:16: Parsing scripts for resource group Popular
15:52:16: Parsing script Instancing.program
15:52:16: Parsing script DualQuaternion.program
15:52:16: OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/DualQuaternionHardwareSkinningTwoWeightsTwoPhaseCg: The compile returned an error.
DualQuaternion_Common.cg(167) : warning C7019: "blendWgt" is too large for semantic "BLENDWEIGHT", which is size 1
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
in CgProgram::compileMicrocode at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
15:52:16: High-level program Ogre/DualQuaternionHardwareSkinningTwoWeightsTwoPhaseCg encountered an error during loading and is thus not supported.
OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/DualQuaternionHardwareSkinningTwoWeightsTwoPhaseCg: The compile returned an error.
DualQuaternion_Common.cg(167) : warning C7019: "blendWgt" is too large for semantic "BLENDWEIGHT", which is size 1
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
in CgProgram::compileMicrocode at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
15:52:16: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1441)
15:52:16: Compiler error: invalid parameters in DualQuaternion.program(28): setting of constant failed
15:52:16: Parsing script Examples.program
15:52:16: Parsing script StdQuad_vp.program
15:52:16: Parsing script deferred_post.program
15:52:16: Parsing script ShadowCaster.program
15:52:16: Parsing script ASCII.material
15:52:16: Parsing script ASMSwizzle.material
15:52:16: Parsing script BlackAndWhite.material
15:52:16: Parsing script Bloom.material
15:52:16: Parsing script Bloom2.material
15:52:16: Parsing script CGSwizzle.material
15:52:16: Parsing script CompositorDemo.material
15:52:16: Parsing script DepthShadowmap.material
15:52:16: Parsing script Dither.material
15:52:16: Parsing script DOF.material
15:52:16: Parsing script DualQuaternion.material
15:52:16: Parsing script Embossed.material
15:52:16: Parsing script Example-Water.material
15:52:16: Parsing script Examples-Advanced.material
15:52:16: Compiler error: object unsupported by render system in Examples-Advanced.material(787)
15:52:16: Parsing script Examples-DynTex.material
15:52:16: Parsing script Examples-Water.material
15:52:16: Parsing script Examples.material
15:52:16: Parsing script facial.material
15:52:16: Parsing script Glass.material
15:52:16: Parsing script GLSLSwizzle.material
15:52:16: Parsing script Halftone.material
15:52:16: Parsing script hdr.material
15:52:16: Parsing script HeatVision.material
15:52:16: Parsing script Hurt.material
15:52:16: Parsing script HWInstancing.material
15:52:16: Parsing script HW_VTFInstancing.material
15:52:16: Parsing script HW_VTF_LUTInstancing.material
15:52:16: Parsing script instancing.material
15:52:16: Parsing script InstancingMisc.material
15:52:16: Parsing script Invert.material
15:52:16: Parsing script IsoSurf.material
15:52:16: Problem parsing the following Cg Uniform: '@TMP29' in file Ogre/IsoSurf/TessellateTetrahedraGS_CG
15:52:16: Parsing script Laplace.material
15:52:16: Parsing script MotionBlur.material
15:52:16: Parsing script MRTtest.material
15:52:16: Parsing script NightVision.material
15:52:16: Parsing script Ocean.material
15:52:16: Parsing script OffsetMapping.material
15:52:16: Parsing script Ogre.material
15:52:16: Parsing script OldMovie.material
15:52:16: Parsing script OldTV.material
15:52:16: Parsing script ParticleGS.material
15:52:16: Parsing script Penguin.material
15:52:16: Parsing script Posterize.material
15:52:16: Parsing script pssm.material
15:52:16: Parsing script RadialBlur.material
15:52:16: Parsing script RZR-002.material
15:52:16: Parsing script ShaderInstancing.material
15:52:16: Parsing script ShaderSystem.material
15:52:16: Parsing script shadows.material
15:52:16: Parsing script SharpenEdges.material
15:52:16: Parsing script sibenik.material
15:52:16: Parsing script smoke.material
15:52:16: Parsing script Tiling.material
15:52:16: Parsing script VarianceShadowmap.material
15:52:16: Parsing script VTFInstancing.material
15:52:16: Parsing script deferreddemo.material
15:52:16: Parsing script deferred_post.material
15:52:16: Parsing script deferred_post_minilight.material
15:52:16: Parsing script ShadowCaster.material
15:52:16: Parsing script ssao.material
15:52:16: Parsing script ROOM.material
15:52:16: Parsing script DualQuaternionSkinning_Shadow.material
15:52:16: OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/RTShader/shadow_caster_dq_skinning_1weight_twophase_vs_cg: The compile returned an error.
<invalid atom 65535>(227) : warning C7019: "blendWgt" is too large for semantic "BLENDWEIGHT", which is size 1
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
in CgProgram::compileMicrocode at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
15:52:16: High-level program Ogre/RTShader/shadow_caster_dq_skinning_1weight_twophase_vs_cg encountered an error during loading and is thus not supported.
OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/RTShader/shadow_caster_dq_skinning_1weight_twophase_vs_cg: The compile returned an error.
<invalid atom 65535>(227) : warning C7019: "blendWgt" is too large for semantic "BLENDWEIGHT", which is size 1
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
in CgProgram::compileMicrocode at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
15:52:16: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1441)
15:52:16: Compiler error: invalid parameters in DualQuaternionSkinning_Shadow.material(208): setting of constant failed
15:52:16: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1441)
15:52:16: Compiler error: invalid parameters in DualQuaternionSkinning_Shadow.material(209): setting of constant failed
15:52:16: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1441)
15:52:16: Compiler error: invalid parameters in DualQuaternionSkinning_Shadow.material(210): setting of constant failed
15:52:16: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1441)
15:52:16: Compiler error: invalid parameters in DualQuaternionSkinning_Shadow.material(211): setting of constant failed
15:52:16: OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/RTShader/shadow_caster_dq_skinning_2weight_twophase_vs_cg: The compile returned an error.
<invalid atom 65535>(261) : warning C7019: "blendWgt" is too large for semantic "BLENDWEIGHT", which is size 1
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
in CgProgram::compileMicrocode at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
15:52:16: High-level program Ogre/RTShader/shadow_caster_dq_skinning_2weight_twophase_vs_cg encountered an error during loading and is thus not supported.
OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/RTShader/shadow_caster_dq_skinning_2weight_twophase_vs_cg: The compile returned an error.
<invalid atom 65535>(261) : warning C7019: "blendWgt" is too large for semantic "BLENDWEIGHT", which is size 1
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers needed to compiled program
in CgProgram::compileMicrocode at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
15:52:16: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1441)
15:52:16: Compiler error: invalid parameters in DualQuaternionSkinning_Shadow.material(225): setting of constant failed
15:52:16: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1441)
15:52:16: Compiler error: invalid parameters in DualQuaternionSkinning_Shadow.material(226): setting of constant failed
15:52:16: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1441)
15:52:16: Compiler error: invalid parameters in DualQuaternionSkinning_Shadow.material(227): setting of constant failed
15:52:16: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1441)
15:52:16: Compiler error: invalid parameters in DualQuaternionSkinning_Shadow.material(228): setting of constant failed
15:52:16: Parsing script HardwareSkinningShadow.material
15:52:16: OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/RTShader/shadow_caster_skinning_1weight_vs: The compile returned an error.
<invalid atom 65535>(21) : warning C7019: "blendWgt" is too large for semantic "BLENDWEIGHT", which is size 1
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
in CgProgram::compileMicrocode at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
15:52:16: High-level program Ogre/RTShader/shadow_caster_skinning_1weight_vs encountered an error during loading and is thus not supported.
OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/RTShader/shadow_caster_skinning_1weight_vs: The compile returned an error.
<invalid atom 65535>(21) : warning C7019: "blendWgt" is too large for semantic "BLENDWEIGHT", which is size 1
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
in CgProgram::compileMicrocode at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
15:52:16: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1441)
15:52:16: Compiler error: invalid parameters in HardwareSkinningShadow.material(29): setting of constant failed
15:52:16: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1441)
15:52:16: Compiler error: invalid parameters in HardwareSkinningShadow.material(30): setting of constant failed
15:52:16: OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/RTShader/shadow_caster_skinning_2weight_vs_cg: The compile returned an error.
<invalid atom 65535>(41) : warning C7019: "blendWgt" is too large for semantic "BLENDWEIGHT", which is size 1
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
in CgProgram::compileMicrocode at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
15:52:16: High-level program Ogre/RTShader/shadow_caster_skinning_2weight_vs_cg encountered an error during loading and is thus not supported.
OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/RTShader/shadow_caster_skinning_2weight_vs_cg: The compile returned an error.
<invalid atom 65535>(41) : warning C7019: "blendWgt" is too large for semantic "BLENDWEIGHT", which is size 1
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
in CgProgram::compileMicrocode at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
15:52:16: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1441)
15:52:16: Compiler error: invalid parameters in HardwareSkinningShadow.material(43): setting of constant failed
15:52:16: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1441)
15:52:16: Compiler error: invalid parameters in HardwareSkinningShadow.material(44): setting of constant failed
15:52:16: OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/RTShader/shadow_caster_skinning_3weight_vs: The compile returned an error.
<invalid atom 65535>(64) : warning C7019: "blendWgt" is too large for semantic "BLENDWEIGHT", which is size 1
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
in CgProgram::compileMicrocode at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
15:52:16: High-level program Ogre/RTShader/shadow_caster_skinning_3weight_vs encountered an error during loading and is thus not supported.
OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/RTShader/shadow_caster_skinning_3weight_vs: The compile returned an error.
<invalid atom 65535>(64) : warning C7019: "blendWgt" is too large for semantic "BLENDWEIGHT", which is size 1
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
in CgProgram::compileMicrocode at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
15:52:16: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1441)
15:52:16: Compiler error: invalid parameters in HardwareSkinningShadow.material(57): setting of constant failed
15:52:16: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1441)
15:52:16: Compiler error: invalid parameters in HardwareSkinningShadow.material(58): setting of constant failed
15:52:16: OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/RTShader/shadow_caster_skinning_4weight_vs: The compile returned an error.
<invalid atom 65535>(88) : warning C7019: "blendWgt" is too large for semantic "BLENDWEIGHT", which is size 1
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
in CgProgram::compileMicrocode at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
15:52:16: High-level program Ogre/RTShader/shadow_caster_skinning_4weight_vs encountered an error during loading and is thus not supported.
OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/RTShader/shadow_caster_skinning_4weight_vs: The compile returned an error.
<invalid atom 65535>(88) : warning C7019: "blendWgt" is too large for semantic "BLENDWEIGHT", which is size 1
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
<invalid atom 65535>(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
in CgProgram::compileMicrocode at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
15:52:16: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1441)
15:52:16: Compiler error: invalid parameters in HardwareSkinningShadow.material(72): setting of constant failed
15:52:16: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1441)
15:52:16: Compiler error: invalid parameters in HardwareSkinningShadow.material(73): setting of constant failed
15:52:16: OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/RTShader/shadow_receiver_vs: The compile returned an error.
(0) : error C3001: no program defined
in CgProgram::compileMicrocode at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
15:52:16: High-level program Ogre/RTShader/shadow_receiver_vs encountered an error during loading and is thus not supported.
OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/RTShader/shadow_receiver_vs: The compile returned an error.
(0) : error C3001: no program defined
in CgProgram::compileMicrocode at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
15:52:16: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1441)
15:52:16: Compiler error: invalid parameters in HardwareSkinningShadow.material(206): setting of constant failed
15:52:16: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1441)
15:52:16: Compiler error: invalid parameters in HardwareSkinningShadow.material(207): setting of constant failed
15:52:16: OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/RTShader/shadow_receiver_ps: The compile returned an error.
(0) : error C3001: no program defined
in CgProgram::compileMicrocode at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
15:52:16: High-level program Ogre/RTShader/shadow_receiver_ps encountered an error during loading and is thus not supported.
OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/RTShader/shadow_receiver_ps: The compile returned an error.
(0) : error C3001: no program defined
in CgProgram::compileMicrocode at ..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)
15:52:16: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at ..\..\..\..\OgreMain\src\OgreGpuProgramParams.cpp (line 1441)
15:52:16: Compiler error: invalid parameters in HardwareSkinningShadow.material(219): setting of constant failed
15:52:16: Parsing script RTShaderSystem.material
15:52:16: Compiler error: unknown error in RTShaderSystem.material(23): token "rtshader_system" is not recognized
15:52:16: Compiler error: unknown error in RTShaderSystem.material(52): token "rtshader_system" is not recognized
15:52:16: Compiler error: unknown error in RTShaderSystem.material(81): token "rtshader_system" is not recognized
15:52:16: Compiler error: unknown error in RTShaderSystem.material(110): token "rtshader_system" is not recognized
15:52:16: Compiler error: unknown error in RTShaderSystem.material(146): token "rtshader_system" is not recognized
15:52:16: Compiler error: unknown error in RTShaderSystem.material(81): token "rtshader_system" is not recognized
15:52:16: Compiler error: unknown error in RTShaderSystem.material(162): token "rtshader_system" is not recognized
15:52:16: Compiler error: unknown error in RTShaderSystem.material(81): token "rtshader_system" is not recognized
15:52:16: Compiler error: unknown error in RTShaderSystem.material(110): token "rtshader_system" is not recognized
15:52:16: Compiler error: unknown error in RTShaderSystem.material(211): token "rtshader_system" is not recognized
15:52:16: Parsing script CreaseShading.material
15:52:16: Parsing script Crytek.material
15:52:16: Parsing script GBuffer.material
15:52:16: Parsing script HemisphereMC.material
15:52:16: Parsing script HorizonBased.material
15:52:17: Parsing script ShowDepth.material
15:52:17: Parsing script ShowNormals.material
15:52:17: Parsing script ShowViewPos.material
15:52:17: Parsing script SSAOPost.material
15:52:17: Parsing script UnsharpMask.material
15:52:17: Parsing script Volumetric.material
15:52:17: Parsing script RomanBath.material
15:52:17: Parsing script Sinbad.material
15:52:17: Parsing script racecar.material
15:52:17: Parsing script wheel50cmx10cmx50cm.material
15:52:17: Parsing script photon.material
15:52:17: Parsing script cc.material
15:52:17: Parsing script emitted_emitter.particle
15:52:17: Parsing script Examples-Water.particle
15:52:17: Parsing script Examples.particle
15:52:17: Parsing script smoke.particle
15:52:17: Parsing script nxogre.zz.particle
15:52:17: Parsing script Examples.compositor
15:52:17: Parsing script deferred.compositor
15:52:17: Parsing script ssao.compositor
15:52:17: Parsing script SSAO.compositor
15:52:17: Parsing script SSAOPost.compositor
15:52:17: Parsing script sample.fontdef
15:52:17: Finished parsing scripts for resource group Popular
15:52:17: Creating resources for group Popular
15:52:17: All done
15:52:17: Parsing scripts for resource group Tests
15:52:17: Finished parsing scripts for resource group Tests
15:52:17: Creating resources for group Tests
15:52:17: All done
15:52:17: Texture: dejavu.png: Loading 1 faces(PF_A8R8G8B8,512x512x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,512x512x1.
15:52:17: Texture: nxogre.floor.png: Loading 1 faces(PF_A8R8G8B8,512x512x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,512x512x1.
15:52:17: Texture: nxogre.floor.shadowalpha.png: Loading 1 faces(PF_R8G8B8,1024x1024x1) with 5 hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,1024x1024x1.
15:52:18: Mesh: Loading cube.1m.mesh.
15:52:18: WARNING: cube.1m.mesh is an older format ([MeshSerializer_v1.41]); you should upgrade it as soon as possible using the OgreMeshUpgrade tool.
15:52:18: Texture: nxogre.cube.png: Loading 1 faces(PF_R8G8B8,512x512x1) with 5 hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,512x512x1.
15:52:18: Mesh: Loading ogrehead.mesh.
15:52:18: Texture: GreenSkin.jpg: Loading 1 faces(PF_R8G8B8,256x256x1) with 5 hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
15:52:18: Texture: spheremap.png: Loading 1 faces(PF_R8G8B8,256x256x1) with 5 hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
15:52:18: Texture: tusk.jpg: Loading 1 faces(PF_R8G8B8,128x128x1) with 5 hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,128x128x1.
15:52:18: Mesh: Loading barrel.mesh.
15:52:18: WARNING: barrel.mesh is an older format ([MeshSerializer_v1.40]); you should upgrade it as soon as possible using the OgreMeshUpgrade tool.
15:52:18: Texture: nxogre.barrel.png: Loading 1 faces(PF_R8G8B8,512x512x1) with 5 hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,512x512x1.
15:52:18: Mesh: Loading container.mesh.
15:52:18: WARNING: container.mesh is an older format ([MeshSerializer_v1.40]); you should upgrade it as soon as possible using the OgreMeshUpgrade tool.
15:52:18: Texture: nxogre.container1.png: Loading 1 faces(PF_R8G8B8,1024x1024x1) with 5 hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,1024x1024x1.
15:52:18: Mesh: Loading nxogre.playpen.mesh.
15:52:18: WARNING: nxogre.playpen.mesh is an older format ([MeshSerializer_v1.40]); you should upgrade it as soon as possible using the OgreMeshUpgrade tool.
15:52:18: Texture: nxogre.concrete.jpg: Loading 1 faces(PF_R8G8B8,512x512x1) with 5 hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,512x512x1.
15:52:18: Texture: nxogre.wall.jpg: Loading 1 faces(PF_R8G8B8,512x512x1) with 5 hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,512x512x1.
15:52:18: Mesh: Loading cube.mesh.
15:52:18: Texture: wales.png: Loading 1 faces(PF_A8R8G8B8,800x480x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,800x480x1.
15:52:18: *** Initializing OIS ***
15:52:18: Texture: spot_shadow_fade.png: Loading 1 faces(PF_R8G8B8,128x128x1) with 5 hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,128x128x1.
15:52:18: Font SdkTrays/Caption using texture size 512x256
15:52:18: Info: Freetype returned null for character 160 in font SdkTrays/Caption
15:52:18: Texture: SdkTrays/CaptionTexture: Loading 1 faces(PF_BYTE_LA,512x256x1) Internal format is PF_BYTE_LA,512x256x1.
15:52:18: Font SdkTrays/Value using texture size 512x256
15:52:18: Info: Freetype returned null for character 127 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 128 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 129 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 130 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 131 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 132 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 133 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 134 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 135 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 136 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 137 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 138 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 139 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 140 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 141 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 142 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 143 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 144 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 145 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 146 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 147 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 148 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 149 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 150 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 151 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 152 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 153 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 154 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 155 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 156 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 157 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 158 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 159 in font SdkTrays/Value
15:52:18: Info: Freetype returned null for character 160 in font SdkTrays/Value
15:52:18: Texture: SdkTrays/ValueTexture: Loading 1 faces(PF_BYTE_LA,512x256x1) Internal format is PF_BYTE_LA,512x256x1.

NoMonkey

06-11-2012 12:46:15

Did you made any progress?
My program also crashes when using the line
mCloth = mRenderSystem->createCloth(desc, "wales");
in a
Unhandled exception at 0x0086fb06 (NxOgreDebug.dll) in CubeOnAPlane.exe: 0xC0000005: Access violation reading location 0xcccccccc.

The responsible line of code is
NxClothMesh* Mesh::getAsCloth()
{
return mType == Enums::MeshType_Cloth ? mMesh.mCloth : 0;
}


It wont help if I use DirectX instead of OpenGL as suggeste here and in other threads...
The physX SDK sample cloth does not crash but i dont think its working properly either since there are only some balls sitting there. Nothing realy cloth-related in my opinion :D. In the command-window it says
[...]/NpPhysicsSDK.cpp(100): unkown error: kernel execution failed

Senzin

10-11-2012 11:46:00

Nope, I've had no luck fixing the crashing either.

NoMonkey

12-11-2012 08:00:00

Do you get the "kernel execution failed" error as well when starting cloth or fluid samples from the PhysX SDK?

Senzin

13-11-2012 07:25:26

No, all the PhysX demos work perfectly. Only the NxOgre versions ever crash.

Senzin

13-11-2012 08:39:22

Okay, so I've updated NxOgre, Critter and the tutorials to version 1.7. I notice there are a lot more tutorials here. I've gone through and my old list of what works and what crashes has not changed:

OpenGL Mode:
NxOgre 1001 - Cloth (crashes on load)
NxOgre 1002 - Cloth and external forces (crashes on load)
NxOgre 1003 - Cloth Damping (crashes on load)
NxOgre 1004 - Cloth Pipes (crashes on load)
NxOgre 107 - Rigidbody Properties (crashes on load)
NxOgre 108 - Rigidbody Flags (crashes on load)
NxOgre 113 - Rigidbodies and Cloth (crashes on load)

Direct3D Mode:
NxOgre 1001 - Cloth: Changing method from setPosition causes crash.
NxOgre 1002 - Cloth and external forces: Changing wind strength causes crash.
NxOgre 1003 - Cloth Damping: Changing method from setPosition causes crash.
NxOgre 107 - Rigidbody Properties: Crashes on load.
NxOgre 108 - Rigidbody Flags: Crashes on load.
NxOgre 113 - Rigidbodies and Cloth: Changing wind strength causes crash.

Sadly, there is now one more demo that crashes in both OpenGL and Direct3D modes:
NxOgre 1303 - Critter - Animation: Changing animation settings causes crash.

Edit: Discovered a bug. It seems that in 1.7, each call to createBody() requires a unique instance of a BodyDescription. If you reuse it, like in demo 102, you will get multiple physics objects that you can see with the debugger, but only one of them will be a visible, textured entity.

Also it seems the Critter::Body::setSceneNode() method was removed, which I find rather annoying.
Edit: Figured it out. Body::getNode()::addEntity(). However, there are reasons to want complete control over nodes. For example, when using some sort of zone system (where you can turn the rendering of entire zones on and off based on what the player can see due to occlusion, etc.), it's very convenient to have all objects in a zone attached to a zone SceneNode (as their "zone root"), which itself can simply be detached from the root SceneNode do disable rendering of that zone, and reattached to enable rendering again.

What's the last version of Ogre on which NxOgre worked correctly, betajaen?

NoMonkey

13-11-2012 12:59:11

I played around with my setup and I think, that my rug.xcl may be corrupted or my program can't find it at all. When I do something after this line:
mClothMesh = NxOgre::MeshGenerator::makePlane(clothSize, 0.1, NxOgre::Enums::MeshType_Cloth, "file://rug.xcl");

like
mClothMesh->isLoaded(); it will crash with the same error. I tried changing "file://rug.xcl" to just "rug.xcl" and even changed it to complete gibberish but the error stays the same.
Is it possible that this is causing my problem?

Senzin

14-11-2012 11:34:22

I've made a tiny bit of progress. I switched from Ogre 1.8.1 to Ogre 1.7.2 and now everything works under Direct3D, but OpenGL still crashes on loading anything with cloth.

With 1.8.1 and Direct3D, many of the crashes occurred only when I tried to change settings, like wind speed, and when I tried to change the animation settings in 1303 (no cloth at all). Could it be that the crashes in Direct3D mode were actually related to a difference in the SdkTrayManager from version 1.7.2 to 1.8.1 and had nothing to do with PhysX? As in, maybe the tutorials were invoking SdkTrayManager incorrectly in 1.8.1?

Remember, though, that crashes still occur on load with OpenGL and cloth.

NoMonkey

14-11-2012 15:34:14

Well thats at least something.
I tried compiling the samples with ogre 1.7.4 since I'm using VS2010 and I can only find a SDK for that version.
I edited my environment variable for OGRE_HOME to the 1.7.4 SDK but when I try compiling it, it says 1>LINK : fatal error LNK1104: cannot open file 'libboost_thread-vc100-mt-gd-1_49.lib'

I looked in the boost folder and there is just the libboost_thread-vc100-mt-gd-1_47.lib
Will it work with 1_47 aswell and if so how can I tell VS to use 1_47 instead of 1_49.
Thank you!

I just copied the _49 files into the 1_47 boost and they compiled. But when I run the SampleBrowser it says "The procedure entry point ?setRenderingMinPixelSize@MovaleObject@Ogre@@UAEXM@Z could not be located in the dynamic link library OgreMain_d.dll" and then something like NxOgreDebug.dll is corrupted and I can't use any of the NxOgre-Samples...
Guess thats not the right way to do it :-D

Could you tell me you're complete setup? Ogre Version, NxOgre Version, PhysXSDK Version and IDE?
Do I have to compile NxOgre again? I dont think so because it's intepended of Ogre, isn't it? I recompiled Critter but it didnt change a thing.

Senzin

15-11-2012 03:33:14

Somewhere along the Ogre version change from 1.7.x to 1.8.x they changed the boost folder from Ogre/boost_1_42/ to Ogre/boost/. So you probably have to change the path in your project settings. You have to make the change for release and debug, and for c++ and linker. Though I think for c++ you can change it in "All configurations" as opposed to one at a time for release and debug configs. OR, you can just add a simlink pointing boost to boost_1_42.

NoMonkey

15-11-2012 09:34:35

Thanks for your reply. I did that but Visual Studio keeps asking for libboost_thread-vc100-mt-gd-1_49.lib but under OgreSDK_vc10_v1-7-4\boost_1_47\lib there is only this file: libboost_thread-vc100-mt-gd-1_47.lib

Edit:
The basic example that comes with the ogre appwizard (the giant ogre head) works fine with Ogre 1.7.4 but when I add some NxOgre-code the error mentioned above occurs.

Senzin

15-11-2012 11:47:23

You're getting that message because NxOgre and Critter were compiled with a different version of Ogre, one that used boost 1.49. You have to recompile NxOgre, then Critter, and then the Samples, all pointing to the different version of Ogre.

NoMonkey

15-11-2012 15:57:50

Thank you for your advice. I thought i did that but somewhere I had a mistake I guess. I set up the entire project from scratch and now at least the tutorials work fine (using DirectX). :-) That's a huge advance :-D So thank you for that!
I tried the basic example I wrote (resp. I copy-pasted them into my own program) but when I crate some cloth it still crashs and I still think it has something to do with loading the mesh.

Senzin

16-11-2012 06:52:12

This is the function I use to create the cloth. It's pretty much straight from the samples:

void Nx::makeCloth(const NxOgre::Vec3 & barPosition)
{
NxOgre::Vec3 pos = barPosition;
NxOgre::Vec2 clothSize(8,4);

pos.x -= clothSize.x * 0.5f;

if (mClothMesh == 0)
mClothMesh = NxOgre::MeshGenerator::makePlane(clothSize, 0.1, NxOgre::Enums::MeshType_Cloth, "file://rug.xcl");

NxOgre::Vec3 holderPos = pos;
holderPos.x += clothSize.x * 0.5f;;
holderPos.y += 0.05f;
holderPos.z -= 0.05f;
NxOgre::SceneGeometry* geom = mScene->createSceneGeometry(NxOgre::BoxDescription(10, 0.1, 0.1), holderPos);

SceneNode* geom_node = mRenderSystem->createSceneNodeEntityPair("cube.mesh", holderPos);
geom_node->scale(0.1, 0.001, 0.001);

NxOgre::ClothDescription desc;
desc.mMesh = mClothMesh;
desc.mThickness = 0.2;
desc.mFriction = 0.5;
//desc.mFlags |= NxOgre::Enums::ClothFlags_BendingResistance;
//desc.mFlags |= NxOgre::Enums::ClothFlags_TwoWayCollisions;

desc.mGlobalPose.set(pos);

mCloth = mRenderSystem->createCloth(desc, "wales");
mCloth->attachToShape((*geom->getShapes().begin()), NxOgre::Enums::ClothAttachmentFlags_Twoway);
}

NoMonkey

16-11-2012 10:42:42

Thank you!
That's pretty much the code I used and when I try yours it crashes the same way... *sigh*
I really don't know what to do know :-D

Senzin

17-11-2012 01:50:04

Are you able to load other objects, like the boxes and barrels? Do you have this line somewhere? It's required before you can load objects.

NxOgre::ResourceSystem::getSingleton()->openProtocol(new Critter::OgreResourceProtocol());

NoMonkey

17-11-2012 10:57:22

Yep, it's the first thing I do after mWorld = NxOgre::World::createWorld();
Boxes and Barrels work just fine (copy-pasted from the tutorials).

This is the code I use. Could you maybe check if it works for you?

/*
-----------------------------------------------------------------------------
Filename: SimpleCloth.cpp
-----------------------------------------------------------------------------


This source file is generated by the
___ _ __ __ _ _
/___\__ _ _ __ ___ /_\ _ __ _ __/ / /\ \ (_)______ _ _ __ __| |
// // _` | '__/ _ \ //_\\| '_ \| '_ \ \/ \/ / |_ / _` | '__/ _` |
/ \_// (_| | | | __/ / _ \ |_) | |_) \ /\ /| |/ / (_| | | | (_| |
\___/ \__, |_| \___| \_/ \_/ .__/| .__/ \/ \/ |_/___\__,_|_| \__,_|
|___/ |_| |_|
Ogre 1.8.x Application Wizard for VC10 (May 2012)
https://bitbucket.org/jacmoe/ogreappwizards
-----------------------------------------------------------------------------
*/

#include "SimpleCloth.h"

#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
#include "../res/resource.h"
#endif


//-------------------------------------------------------------------------------------
SimpleCloth::SimpleCloth(void)
: mRoot(0),
mCamera(0),
mSceneMgr(0),
mWindow(0),
mResourcesCfg(Ogre::StringUtil::BLANK),
mPluginsCfg(Ogre::StringUtil::BLANK),
mTrayMgr(0),
mCameraMan(0),
mDetailsPanel(0),
mCursorWasVisible(false),
mShutDown(false),
mInputManager(0),
mMouse(0),
mKeyboard(0)
{
}

//-------------------------------------------------------------------------------------
SimpleCloth::~SimpleCloth(void)
{
if (mTrayMgr) delete mTrayMgr;
if (mCameraMan) delete mCameraMan;

//Remove ourself as a Window listener
Ogre::WindowEventUtilities::removeWindowEventListener(mWindow, this);
windowClosed(mWindow);
delete mRoot;
}

//-------------------------------------------------------------------------------------
bool SimpleCloth::configure(void)
{
// Show the configuration dialog and initialise the system
// You can skip this and use root.restoreConfig() to load configuration
// settings if you were sure there are valid ones saved in ogre.cfg
if(mRoot->showConfigDialog())
{
// If returned true, user clicked OK so initialise
// Here we choose to let the system create a default rendering window by passing 'true'
mWindow = mRoot->initialise(true, "SimpleCloth Render Window");

// Let's add a nice window icon
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
HWND hwnd;
mWindow->getCustomAttribute("WINDOW", (void*)&hwnd);
LONG iconID = (LONG)LoadIcon( GetModuleHandle(0), MAKEINTRESOURCE(IDI_APPICON) );
SetClassLong( hwnd, GCL_HICON, iconID );
#endif
return true;
}
else
{
return false;
}
}
//-------------------------------------------------------------------------------------
void SimpleCloth::chooseSceneManager(void)
{
// Get the SceneManager, in this case a generic one
mSceneMgr = mRoot->createSceneManager(Ogre::ST_GENERIC);
}
//-------------------------------------------------------------------------------------
void SimpleCloth::createCamera(void)
{
// Create the camera
mCamera = mSceneMgr->createCamera("PlayerCam");

// Position it at 500 in Z direction
mCamera->setPosition(Ogre::Vector3(0,0,80));
// Look back along -Z
mCamera->lookAt(Ogre::Vector3(0,0,-300));
mCamera->setNearClipDistance(5);

mCameraMan = new OgreBites::SdkCameraMan(mCamera); // create a default camera controller
}
//-------------------------------------------------------------------------------------
void SimpleCloth::createFrameListener(void)
{
Ogre::LogManager::getSingletonPtr()->logMessage("*** Initializing OIS ***");
OIS::ParamList pl;
size_t windowHnd = 0;
std::ostringstream windowHndStr;

mWindow->getCustomAttribute("WINDOW", &windowHnd);
windowHndStr << windowHnd;
pl.insert(std::make_pair(std::string("WINDOW"), windowHndStr.str()));

mInputManager = OIS::InputManager::createInputSystem( pl );

mKeyboard = static_cast<OIS::Keyboard*>(mInputManager->createInputObject( OIS::OISKeyboard, true ));
mMouse = static_cast<OIS::Mouse*>(mInputManager->createInputObject( OIS::OISMouse, true ));

mMouse->setEventCallback(this);
mKeyboard->setEventCallback(this);

//Set initial mouse clipping size
windowResized(mWindow);

//Register as a Window listener
Ogre::WindowEventUtilities::addWindowEventListener(mWindow, this);

mTrayMgr = new OgreBites::SdkTrayManager("InterfaceName", mWindow, mMouse, this);
mTrayMgr->showFrameStats(OgreBites::TL_BOTTOMLEFT);
mTrayMgr->showLogo(OgreBites::TL_BOTTOMRIGHT);
mTrayMgr->hideCursor();

// create a params panel for displaying sample details
Ogre::StringVector items;
items.push_back("cam.pX");
items.push_back("cam.pY");
items.push_back("cam.pZ");
items.push_back("");
items.push_back("cam.oW");
items.push_back("cam.oX");
items.push_back("cam.oY");
items.push_back("cam.oZ");
items.push_back("");
items.push_back("Filtering");
items.push_back("Poly Mode");

mDetailsPanel = mTrayMgr->createParamsPanel(OgreBites::TL_NONE, "DetailsPanel", 200, items);
mDetailsPanel->setParamValue(9, "Bilinear");
mDetailsPanel->setParamValue(10, "Solid");
mDetailsPanel->hide();

mRoot->addFrameListener(this);
}
//-------------------------------------------------------------------------------------
void SimpleCloth::destroyScene(void)
{
}
//-------------------------------------------------------------------------------------
void SimpleCloth::createViewports(void)
{
// Create one viewport, entire window
Ogre::Viewport* vp = mWindow->addViewport(mCamera);
vp->setBackgroundColour(Ogre::ColourValue(0,0,0));

// Alter the camera aspect ratio to match the viewport
mCamera->setAspectRatio(
Ogre::Real(vp->getActualWidth()) / Ogre::Real(vp->getActualHeight()));
}
//-------------------------------------------------------------------------------------
void SimpleCloth::setupResources(void)
{
// Load resource paths from config file
Ogre::ConfigFile cf;
cf.load(mResourcesCfg);

// Go through all sections & settings in the file
Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator();

Ogre::String secName, typeName, archName;
while (seci.hasMoreElements())
{
secName = seci.peekNextKey();
Ogre::ConfigFile::SettingsMultiMap *settings = seci.getNext();
Ogre::ConfigFile::SettingsMultiMap::iterator i;
for (i = settings->begin(); i != settings->end(); ++i)
{
typeName = i->first;
archName = i->second;
Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
archName, typeName, secName);
}
}
}
//-------------------------------------------------------------------------------------
void SimpleCloth::createResourceListener(void)
{

}
//-------------------------------------------------------------------------------------
void SimpleCloth::loadResources(void)
{
Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
}
//-------------------------------------------------------------------------------------
void SimpleCloth::go(void)
{
#ifdef _DEBUG
mResourcesCfg = "resources_d.cfg";
mPluginsCfg = "plugins_d.cfg";
#else
mResourcesCfg = "resources.cfg";
mPluginsCfg = "plugins.cfg";
#endif

if (!setup())
return;

mRoot->startRendering();

// clean up
destroyScene();
}
//-------------------------------------------------------------------------------------
bool SimpleCloth::setup(void)
{
mRoot = new Ogre::Root(mPluginsCfg);

setupResources();

bool carryOn = configure();
if (!carryOn) return false;

chooseSceneManager();
createCamera();
createViewports();

// Set default mipmap level (NB some APIs ignore this)
Ogre::TextureManager::getSingleton().setDefaultNumMipmaps(5);

// Create any resource listeners (for loading screens)
createResourceListener();
// Load resources
loadResources();

// Create the scene
createScene();

createFrameListener();

return true;
};
//-------------------------------------------------------------------------------------
void SimpleCloth::createScene(void)
{
Ogre::ColourValue background = Ogre::ColourValue(16.f/255.f, 16.f/255.f, 16.f/255.f);

// mViewport->setBackgroundColour(background);
mSceneMgr->setFog(Ogre::FOG_EXP, background, 0.001, 800, 1000);

// set shadow properties
mSceneMgr->setShadowTechnique(Ogre::SHADOWTYPE_TEXTURE_MODULATIVE);
mSceneMgr->setShadowColour(Ogre::ColourValue(0.5, 0.5, 0.5));
mSceneMgr->setShadowTextureSize(1024);
mSceneMgr->setShadowTextureCount(1);

// create a floor mesh resource
Ogre::MeshManager::getSingleton().createPlane("floor", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,
Ogre::Plane(Ogre::Vector3::UNIT_Y, 0), 1000, 1000, 1,1 , true, 1, 1, 1, Ogre::Vector3::UNIT_Z);

// create a floor entity, give it a material, and place it at the origin
Ogre::Entity* floor = mSceneMgr->createEntity("Floor", "floor");
floor->setMaterialName("ground-from-nxogre.org");
floor->setCastShadows(false);
mSceneMgr->getRootSceneNode()->attachObject(floor);

// use a small amount of ambient lighting
mSceneMgr->setAmbientLight(Ogre::ColourValue(0.3, 0.3, 0.3));

// add a bright light above the scene
Ogre::Light* light = mSceneMgr->createLight();
light->setType(Ogre::Light::LT_POINT);
light->setPosition(-10, 40, 20);
light->setSpecularColour(Ogre::ColourValue::White);

mCamera->setPosition(10,10,10);
mCamera->lookAt(0,0,0);
mCamera->setNearClipDistance(0.02f);
mCamera->setFarClipDistance(1000.0f);
mCameraMan->setTopSpeed(7.5);
setupPhysics();
}
//-------------------------------------------------------------------------------------
void SimpleCloth::setupPhysics(void){
// Create the world.
mWorld = NxOgre::World::createWorld();
NxOgre::ResourceSystem::getSingleton()->openProtocol(new Critter::OgreResourceProtocol());
mWorld->getRemoteDebugger()->connect();

// Create the scene
NxOgre::SceneDescription scene_description;
scene_description.mGravity = NxOgre::Constants::MEAN_EARTH_GRAVITY;
scene_description.mUseHardware = false;
mScene = mWorld->createScene(scene_description);

// Set default material properties
mDefaultMaterial = mScene->getMaterial(0);
mDefaultMaterial->setRestitution(0.1f);
mDefaultMaterial->setDynamicFriction(0.9);
mDefaultMaterial->setStaticFriction(0.5);

// Set barrel material
NxOgre::MaterialDescription material_b;
material_b.mDynamicFriction = 0.05f;
material_b.mStaticFriction = 0.05f;
material_b.mRestitution = 0.05f;
mMaterialB = mScene->createMaterial(material_b);

// Plane creation
mScene->createSceneGeometry(NxOgre::PlaneGeometryDescription());

// Create the rendersystem.
mRenderSystem = new Critter::RenderSystem(mScene, mSceneMgr);

//Loading Mesehs
NxOgre::MeshManager* mMeshManager = NxOgre::MeshManager::getSingleton();
mBarrelMesh = mMeshManager->load("ogre://General/barrel.nxs", "barrel");

//Visual Debugger
// mRenderSystem->createVisualDebugger();

mClothSelectedVertexMarker = mRenderSystem->createSceneNodeEntityPair("cube.mesh", Ogre::Vector3(0,-10,0));
mClothSelectedVertexMarker->setScale(0.001, 0.001, 0.001);
mClothSelectedVertexMarker->roll(Ogre::Degree(45));
mClothSelectedVertexMarker->yaw(Ogre::Degree(45));
mClothSelectedVertexMarker->pitch(Ogre::Degree(45));


}
//------------------------------------------------------------------------------------
void SimpleCloth::makeCloth(const NxOgre::Vec3 & barPosition)
{
NxOgre::Vec3 pos = barPosition;
NxOgre::Vec2 clothSize(8,4);

pos.x -= clothSize.x * 0.5f;

if (mClothMesh == 0)
mClothMesh = NxOgre::MeshGenerator::makePlane(clothSize, 0.1, NxOgre::Enums::MeshType_Cloth, "file://rug.xcl");

NxOgre::Vec3 holderPos = pos;
holderPos.x += clothSize.x * 0.5f;;
holderPos.y += 0.05f;
holderPos.z -= 0.05f;
NxOgre::SceneGeometry* geom = mScene->createSceneGeometry(NxOgre::BoxDescription(10, 0.1, 0.1), holderPos);

Ogre::SceneNode* geom_node = mRenderSystem->createSceneNodeEntityPair("cube.mesh", holderPos);
geom_node->scale(0.1, 0.001, 0.001);

NxOgre::ClothDescription desc;
desc.mMesh = mClothMesh;
desc.mThickness = 0.2;
desc.mFriction = 0.5;
//desc.mFlags |= NxOgre::Enums::ClothFlags_BendingResistance;
//desc.mFlags |= NxOgre::Enums::ClothFlags_TwoWayCollisions;

desc.mGlobalPose.set(pos);

mCloth = mRenderSystem->createCloth(desc, "wales");
mCloth->attachToShape((*geom->getShapes().begin()), NxOgre::Enums::ClothAttachmentFlags_Twoway);
}

//------------------------------------------------------------------------------------
void SimpleCloth::createFixedJoint(void){
Critter::BodyDescription bodyDescription;
bodyDescription.mMass = 20.0f;
Critter::Body * a =mRenderSystem->createBody(NxOgre::BoxDescription(1,1,1), NxOgre::Vec3(1,1,1), "cube.1m.mesh");
Critter::Body * b =mRenderSystem->createBody(NxOgre::BoxDescription(1,1,1), NxOgre::Vec3(2,1.5,1), "cube.1m.mesh");
NxOgre::FixedJointDescription jointparams;
jointparams.mMaxForce = 1.0f;
jointparams.mMaxTorque = 1.0f;
mScene->createFixedJoint(a,b,jointparams);
}
//------------------------------------------------------------------------------------
void SimpleCloth::makeFluid(NxOgre::Vec3 pos)
{
NxOgre::FluidDescription desc;
desc.mMaxParticles = 2500;
desc.mKernelRadiusMultiplier = 2.0f;
desc.mRestParticlesPerMetre = 7.0f;
desc.mMotionLimitMultiplier = 3.0f;
desc.mPacketSizeMultiplier = 8;
desc.mCollisionDistanceMultiplier = 0.1f;
desc.mStiffness = 50.0f;
desc.mViscosity = 10.0f;
desc.mRestDensity = 1000.0f;

desc.mSimulationMethod = NxOgre::Enums::FluidSimulationMethod_SPH;
// desc.mSimulationMethod = NxOgre::Enums::FluidSimulationMethod_MixedMode;
//desc.mFlags |= NxOgre::Enums::FluidFlags_Hardware;
//desc.mFlags |= NxOgre::Enums::FluidFlags_DisableGravity;

mFluid = mRenderSystem->createFluid(desc, "Gas", Critter::Enums::FluidType_OgreParticle);

NxOgre::FluidEmitterDescription edesc;
edesc.mPose.set(0, 3, 0);
edesc.mShape = NxOgre::Enums::FluidEmitterShape_Rectangular;
edesc.mParticleLifetime = 15.0;
edesc.mRate = 50;
edesc.mFluidSpeed = 1;
edesc.mRandomAngle = NxOgre::Radian(NxOgre::Real(6));
edesc.mType = NxOgre::Enums::FluidEmitterType_FlowRate;
edesc.mReplusionCoefficient = 0.8f;
edesc.mDimensionX = 0.1f;
edesc.mDimensionY = 0.1f;

mEmitter = mFluid->createEmitter(edesc);
}


//------------------------------------------------------------------------------------


void SimpleCloth::spawnBox(NxOgre::Vec3 pos, float weight){
Critter::BodyDescription bodyDescription;
bodyDescription.mMass = weight; // Set the mass to 40kg.
mBodys.push_back(mRenderSystem->createBody(NxOgre::BoxDescription(1,1,1), pos, "cube.1m.mesh", bodyDescription));
}
//------------------------------------------------------------------------------------
void SimpleCloth::resetBox(void){
for(int i = 0; i < mBodys.size(); i++){
mRenderSystem->destroyBody(mBodys);
}
mBodys.clear();

}
//-------------------------------------------------------------------------------------
void SimpleCloth::buildHouse(int size){
for(int stockwerk = 0; stockwerk <= size; stockwerk++){
for(int blocknummer = 0; blocknummer <= size - stockwerk; blocknummer++){
spawnBox(NxOgre::Vec3(stockwerk*0.5 + blocknummer,stockwerk+1,0));
}
}
}
//-------------------------------------------------------------------------------------
void SimpleCloth::applyForce(int force){
for(int i = 0; i < mBodys.size(); i++){
mBodys->addForce(NxOgre::Vec3(0,force,0));
}
}
//

void SimpleCloth::spawnBarell(NxOgre::Vec3 pos, float weight){
pos = mCamera->getPosition();
NxOgre::Vec3 ori = mCamera->getDirection();
pos = pos + ori*3;
Critter::BodyDescription bodyDescription;
bodyDescription.mMass = weight*1.8;
NxOgre::ConvexDescription barrelDescription = NxOgre::ConvexDescription(mBarrelMesh);
barrelDescription.mMaterial = mMaterialB->getIdentifier();
mBodys.push_back(mRenderSystem->createBody(barrelDescription, pos, "barrel.mesh", bodyDescription));
mBodys[mBodys.size()-1]->addForce(100000 * ori);
}

void SimpleCloth::throwBlock(int force){
NxOgre::Vec3 pos = mCamera->getPosition();
NxOgre::Vec3 ori = mCamera->getDirection();
pos = pos + ori*3;
spawnBox(pos);
mBodys[mBodys.size()-1]->addForce(force * ori);

}
//-------------------------------------------------------------------------------------
bool SimpleCloth::frameRenderingQueued(const Ogre::FrameEvent& evt)
{
if(mWindow->isClosed())
return false;

if(mShutDown)
return false;

//Advance Ogre
mWorld->advance(evt.timeSinceLastFrame);
mLastTimeStep = mScene->getTimeStep().getModified();

//Need to capture/update each device
mKeyboard->capture();
mMouse->capture();

mTrayMgr->frameRenderingQueued(evt);

if (!mTrayMgr->isDialogVisible())
{
mCameraMan->frameRenderingQueued(evt); // if dialog isn't up, then update the camera
if (mDetailsPanel->isVisible()) // if details panel is visible, then update its contents
{
mDetailsPanel->setParamValue(0, Ogre::StringConverter::toString(mCamera->getDerivedPosition().x));
mDetailsPanel->setParamValue(1, Ogre::StringConverter::toString(mCamera->getDerivedPosition().y));
mDetailsPanel->setParamValue(2, Ogre::StringConverter::toString(mCamera->getDerivedPosition().z));
mDetailsPanel->setParamValue(4, Ogre::StringConverter::toString(mCamera->getDerivedOrientation().w));
mDetailsPanel->setParamValue(5, Ogre::StringConverter::toString(mCamera->getDerivedOrientation().x));
mDetailsPanel->setParamValue(6, Ogre::StringConverter::toString(mCamera->getDerivedOrientation().y));
mDetailsPanel->setParamValue(7, Ogre::StringConverter::toString(mCamera->getDerivedOrientation().z));
}
}

return true;
}
//-------------------------------------------------------------------------------------
bool SimpleCloth::keyPressed( const OIS::KeyEvent &arg )
{
if (mTrayMgr->isDialogVisible()) return true; // don't process any more keys if dialog is up

if(arg.key == OIS::KC_J)
{
//mBody->setGlobalPosition(NxOgre::Vec3(3,3,3));
spawnBox();
}
if(arg.key == OIS::KC_K)
{
resetBox();
}
if(arg.key == OIS::KC_L)
{
applyForce();
}
if(arg.key == OIS::KC_O)
{
buildHouse(5);
}
if(arg.key == OIS::KC_I)
{
throwBlock(100000);
}
if(arg.key == OIS::KC_P)
{
spawnBarell();
}
if(arg.key == OIS::KC_1)
{
createFixedJoint();
}
if(arg.key == OIS::KC_2)
{
makeCloth();
}
if(arg.key== OIS::KC_3)
{
makeFluid();
}


if (arg.key == OIS::KC_F) // toggle visibility of advanced frame stats
{
mTrayMgr->toggleAdvancedFrameStats();
}
else if (arg.key == OIS::KC_G) // toggle visibility of even rarer debugging details
{
if (mDetailsPanel->getTrayLocation() == OgreBites::TL_NONE)
{
mTrayMgr->moveWidgetToTray(mDetailsPanel, OgreBites::TL_TOPRIGHT, 0);
mDetailsPanel->show();
}
else
{
mTrayMgr->removeWidgetFromTray(mDetailsPanel);
mDetailsPanel->hide();
}
}
else if (arg.key == OIS::KC_T) // cycle polygon rendering mode
{
Ogre::String newVal;
Ogre::TextureFilterOptions tfo;
unsigned int aniso;

switch (mDetailsPanel->getParamValue(9).asUTF8()[0])
{
case 'B':
newVal = "Trilinear";
tfo = Ogre::TFO_TRILINEAR;
aniso = 1;
break;
case 'T':
newVal = "Anisotropic";
tfo = Ogre::TFO_ANISOTROPIC;
aniso = 8;
break;
case 'A':
newVal = "None";
tfo = Ogre::TFO_NONE;
aniso = 1;
break;
default:
newVal = "Bilinear";
tfo = Ogre::TFO_BILINEAR;
aniso = 1;
}

Ogre::MaterialManager::getSingleton().setDefaultTextureFiltering(tfo);
Ogre::MaterialManager::getSingleton().setDefaultAnisotropy(aniso);
mDetailsPanel->setParamValue(9, newVal);
}
else if (arg.key == OIS::KC_R) // cycle polygon rendering mode
{
Ogre::String newVal;
Ogre::PolygonMode pm;

switch (mCamera->getPolygonMode())
{
case Ogre::PM_SOLID:
newVal = "Wireframe";
pm = Ogre::PM_WIREFRAME;
break;
case Ogre::PM_WIREFRAME:
newVal = "Points";
pm = Ogre::PM_POINTS;
break;
default:
newVal = "Solid";
pm = Ogre::PM_SOLID;
}

mCamera->setPolygonMode(pm);
mDetailsPanel->setParamValue(10, newVal);
}
else if(arg.key == OIS::KC_F5) // refresh all textures
{
Ogre::TextureManager::getSingleton().reloadAll();
}
else if (arg.key == OIS::KC_SYSRQ) // take a screenshot
{
mWindow->writeContentsToTimestampedFile("screenshot", ".jpg");
}
else if (arg.key == OIS::KC_ESCAPE)
{
mShutDown = true;
}

mCameraMan->injectKeyDown(arg);
return true;
}

bool SimpleCloth::keyReleased( const OIS::KeyEvent &arg )
{
mCameraMan->injectKeyUp(arg);
return true;
}

bool SimpleCloth::mouseMoved( const OIS::MouseEvent &arg )
{
if (mTrayMgr->injectMouseMove(arg)) return true;
mCameraMan->injectMouseMove(arg);
return true;
}

bool SimpleCloth::mousePressed( const OIS::MouseEvent &arg, OIS::MouseButtonID id )
{
if (mTrayMgr->injectMouseDown(arg, id)) return true;
mCameraMan->injectMouseDown(arg, id);
return true;
}

bool SimpleCloth::mouseReleased( const OIS::MouseEvent &arg, OIS::MouseButtonID id )
{
if (mTrayMgr->injectMouseUp(arg, id)) return true;
mCameraMan->injectMouseUp(arg, id);
return true;
}

//Adjust mouse clipping area
void SimpleCloth::windowResized(Ogre::RenderWindow* rw)
{
unsigned int width, height, depth;
int left, top;
rw->getMetrics(width, height, depth, left, top);

const OIS::MouseState &ms = mMouse->getMouseState();
ms.width = width;
ms.height = height;
}

//Unattach OIS before window shutdown (very important under Linux)
void SimpleCloth::windowClosed(Ogre::RenderWindow* rw)
{
//Only close for window that created OIS (the main window in these demos)
if( rw == mWindow )
{
if( mInputManager )
{
mInputManager->destroyInputObject( mMouse );
mInputManager->destroyInputObject( mKeyboard );

OIS::InputManager::destroyInputSystem(mInputManager);
mInputManager = 0;
}
}
}


#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
#define WIN32_LEAN_AND_MEAN
#include "windows.h"
#endif

#ifdef __cplusplus
extern "C" {
#endif

#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
#else
int main(int argc, char *argv[])
#endif
{
// Create application object
SimpleCloth app;

try {
app.go();
} catch( Ogre::Exception& e ) {
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
MessageBox( NULL, e.getFullDescription().c_str(), "An exception has occured!", MB_OK | MB_ICONERROR | MB_TASKMODAL);
#else
std::cerr << "An exception has occured: " <<
e.getFullDescription().c_str() << std::endl;
#endif
}

return 0;
}

#ifdef __cplusplus
}
#endif


and my header:

/*
-----------------------------------------------------------------------------
Filename: SimpleCloth.h
-----------------------------------------------------------------------------


This source file is generated by the
___ _ __ __ _ _
/___\__ _ _ __ ___ /_\ _ __ _ __/ / /\ \ (_)______ _ _ __ __| |
// // _` | '__/ _ \ //_\\| '_ \| '_ \ \/ \/ / |_ / _` | '__/ _` |
/ \_// (_| | | | __/ / _ \ |_) | |_) \ /\ /| |/ / (_| | | | (_| |
\___/ \__, |_| \___| \_/ \_/ .__/| .__/ \/ \/ |_/___\__,_|_| \__,_|
|___/ |_| |_|
Ogre 1.8.x Application Wizard for VC10 (May 2012)
https://bitbucket.org/jacmoe/ogreappwizards
-----------------------------------------------------------------------------
*/
#ifndef __SimpleCloth_h_
#define __SimpleCloth_h_
#define MaxStrength 1e7f

#include <OgreCamera.h>
#include <OgreEntity.h>
#include <OgreLogManager.h>
#include <OgreRoot.h>
#include <OgreViewport.h>
#include <OgreSceneManager.h>
#include <OgreRenderWindow.h>
#include <OgreConfigFile.h>

#include <OISEvents.h>
#include <OISInputManager.h>
#include <OISKeyboard.h>
#include <OISMouse.h>

#include <SdkTrays.h>
#include <SdkCameraMan.h>

#include "NxOgre.h"
#include "critter.h"
#include <vector>

class SimpleCloth : public Ogre::FrameListener, public Ogre::WindowEventListener, public OIS::KeyListener, public OIS::MouseListener, OgreBites::SdkTrayListener
{
public:
SimpleCloth(void);
virtual ~SimpleCloth(void);

void go(void);

protected:
bool setup();
bool configure(void);
void chooseSceneManager(void);
void createCamera(void);
void createFrameListener(void);
void createScene(void);
void destroyScene(void);
void createViewports(void);
void setupResources(void);
void createResourceListener(void);
void loadResources(void);

void setupPhysics(void);
void stopPhysics(void);
void spawnBox(NxOgre::Vec3 pos = NxOgre::Vec3(0,15,0), float weight = 40.0f);
void resetBox(void);
void applyForce(int force = 15000);
void buildHouse(int size);
void throwBlock(int force = 30000);
void spawnBarell(NxOgre::Vec3 pos = NxOgre::Vec3(0,15,0), float weight = 40.0f);
void createFixedJoint(void);
void makeCloth(const NxOgre::Vec3 & barPosition = NxOgre::Vec3(0,4,0));
void makeFluid(NxOgre::Vec3 pos = NxOgre
::Vec3(0,3,0));
// Ogre::FrameListener
virtual bool frameRenderingQueued(const Ogre::FrameEvent& evt);

// OIS::KeyListener
virtual bool keyPressed( const OIS::KeyEvent &arg );
virtual bool keyReleased( const OIS::KeyEvent &arg );
// OIS::MouseListener
virtual bool mouseMoved( const OIS::MouseEvent &arg );
virtual bool mousePressed( const OIS::MouseEvent &arg, OIS::MouseButtonID id );
virtual bool mouseReleased( const OIS::MouseEvent &arg, OIS::MouseButtonID id );

// Ogre::WindowEventListener
//Adjust mouse clipping area
virtual void windowResized(Ogre::RenderWindow* rw);
//Unattach OIS before window shutdown (very important under Linux)
virtual void windowClosed(Ogre::RenderWindow* rw);

Ogre::Root *mRoot;
Ogre::Camera* mCamera;
Ogre::SceneManager* mSceneMgr;
Ogre::RenderWindow* mWindow;
Ogre::String mResourcesCfg;
Ogre::String mPluginsCfg;

// OgreBites
OgreBites::SdkTrayManager* mTrayMgr;
OgreBites::SdkCameraMan* mCameraMan; // basic camera controller
OgreBites::ParamsPanel* mDetailsPanel; // sample details panel
bool mCursorWasVisible; // was cursor visible before dialog appeared
bool mShutDown;

//NxOgre
NxOgre::World* mWorld;
NxOgre::Scene* mScene;
NxOgre::Material* mDefaultMaterial;
NxOgre::Material* mMaterialB;
Critter::RenderSystem* mRenderSystem;
Critter::Body* mBody;
std::vector<Critter::Body*> mBodys;
float mLastTimeStep;
NxOgre::MeshManager* mMeshManager;
NxOgre::Mesh* mBarrelMesh;

NxOgre::Cloth* mCloth;
NxOgre::Mesh* mClothMesh;
int mClothSelectedVertex;
Ogre::SceneNode* mClothSelectedVertexMarker;
//OgreBites::SelectMenu* mClothSelectedMethodMenu;
enum VertexMethod
{
VM_SetPosition,
VM_AttachVertex,
VM_AddForce
};
VertexMethod mClothSelectedMethod;
NxOgre::Fluid* mFluid;
NxOgre::FluidEmitter* mEmitter;

//OIS Input devices
OIS::InputManager* mInputManager;
OIS::Mouse* mMouse;
OIS::Keyboard* mKeyboard;
};

#endif // #ifndef __SimpleCloth_h_


Thank you so much for your help!

Senzin

18-11-2012 03:43:24

Your code, as you gave it to me, does not actually crate any objects other than the ground plane. It compiled an ran fin. I edited by calling makeCloth(NxOgre::Vec3(0,5,-5)) at the end of your setupPhysics function. It compiled, but crashed when I ran it.

Here is the code for my test scene. If you don't have Gorilla and OgreConsoleForGorilla, you'll have to comment out any references to them to get this to compile. I'm pretty sure the Gorilla stuff is only in Nx.h and Nx.cpp.

BaseApplication.h
/*
-----------------------------------------------------------------------------
Filename: BaseApplication.h
-----------------------------------------------------------------------------


This source file is generated by the
___ _ __ __ _ _
/___\__ _ _ __ ___ /_\ _ __ _ __/ / /\ \ (_)______ _ _ __ __| |
// // _` | '__/ _ \ //_\\| '_ \| '_ \ \/ \/ / |_ / _` | '__/ _` |
/ \_// (_| | | | __/ / _ \ |_) | |_) \ /\ /| |/ / (_| | | | (_| |
\___/ \__, |_| \___| \_/ \_/ .__/| .__/ \/ \/ |_/___\__,_|_| \__,_|
|___/ |_| |_|
Ogre 1.8.x Application Wizard for VC10 (May 2012)
https://bitbucket.org/jacmoe/ogreappwizards
-----------------------------------------------------------------------------
*/
#ifndef __BaseApplication_h_
#define __BaseApplication_h_

#include <OgreCamera.h>
#include <OgreEntity.h>
#include <OgreLogManager.h>
#include <OgreRoot.h>
#include <OgreViewport.h>
#include <OgreSceneManager.h>
#include <OgreRenderWindow.h>
#include <OgreConfigFile.h>

#include <OISEvents.h>
#include <OISInputManager.h>
#include <OISKeyboard.h>
#include <OISMouse.h>

#include <SdkTrays.h>
#include "SdkCameraMan.h"

//typedef Ogre::StringConverter::toString tostr;
typedef Ogre::StringConverter osc;

using namespace Ogre;

class BaseApplication : public Ogre::FrameListener, public Ogre::WindowEventListener, public OIS::KeyListener, public OIS::MouseListener, OgreBites::SdkTrayListener
{
public:
BaseApplication(void);
virtual ~BaseApplication(void);

virtual void go(void);

protected:
virtual bool setup();
virtual bool configure(void);
virtual void chooseSceneManager(void);
virtual void createCamera(void);
virtual void createFrameListener(void);
virtual void createScene(void) = 0; // Override me!
virtual void destroyScene(void);
virtual void createViewports(void);
virtual void setupResources(void);
virtual void createResourceListener(void);
virtual void loadResources(void);

// Ogre::FrameListener
virtual bool frameRenderingQueued(const Ogre::FrameEvent& evt);

// OIS::KeyListener
virtual bool keyPressed( const OIS::KeyEvent &arg );
virtual bool keyReleased( const OIS::KeyEvent &arg );
// OIS::MouseListener
virtual bool mouseMoved( const OIS::MouseEvent &arg );
virtual bool mousePressed( const OIS::MouseEvent &arg, OIS::MouseButtonID id );
virtual bool mouseReleased( const OIS::MouseEvent &arg, OIS::MouseButtonID id );

// Ogre::WindowEventListener
// Adjust mouse clipping area
virtual void windowResized(Ogre::RenderWindow* rw);
// Unattach OIS before window shutdown (very important under Linux)
virtual void windowClosed(Ogre::RenderWindow* rw);

Ogre::Root *mRoot;
Ogre::Camera* mCamera;
Ogre::SceneManager* mSceneMgr;
Ogre::RenderWindow* mWindow;
Ogre::Viewport* mViewport;
Ogre::String mResourcesCfg;
Ogre::String mPluginsCfg;

// OgreBites
OgreBites::SdkTrayManager* mTrayMgr;
OgreBites::SdkCameraMan* mCameraMan; // basic camera controller
OgreBites::ParamsPanel* mDetailsPanel; // sample details panel
OgreBites::CheckBox* mCheckBox;
bool mCursorWasVisible; // was cursor visible before dialog appeared
bool mShutDown;

// OIS Input devices
OIS::InputManager* mInputManager;
OIS::Mouse* mMouse;
OIS::Keyboard* mKeyboard;
};

#endif // #ifndef __BaseApplication_h_


BaseApplication.cpp
/*
-----------------------------------------------------------------------------
Filename: BaseApplication.cpp
-----------------------------------------------------------------------------


This source file is generated by the
___ _ __ __ _ _
/___\__ _ _ __ ___ /_\ _ __ _ __/ / /\ \ (_)______ _ _ __ __| |
// // _` | '__/ _ \ //_\\| '_ \| '_ \ \/ \/ / |_ / _` | '__/ _` |
/ \_// (_| | | | __/ / _ \ |_) | |_) \ /\ /| |/ / (_| | | | (_| |
\___/ \__, |_| \___| \_/ \_/ .__/| .__/ \/ \/ |_/___\__,_|_| \__,_|
|___/ |_| |_|
Ogre 1.8.x Application Wizard for VC10 (May 2012)
https://bitbucket.org/jacmoe/ogreappwizards
-----------------------------------------------------------------------------
*/
#include "BaseApplication.h"

#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
#include "../res/resource.h"
#endif


//-------------------------------------------------------------------------------------
BaseApplication::BaseApplication(void)
: mRoot(0),
mCamera(0),
mSceneMgr(0),
mWindow(0),
mResourcesCfg(Ogre::StringUtil::BLANK),
mPluginsCfg(Ogre::StringUtil::BLANK),
mTrayMgr(0),
mCameraMan(0),
mDetailsPanel(0),
mCursorWasVisible(false),
mShutDown(false),
mInputManager(0),
mMouse(0),
mKeyboard(0)
{
}

//-------------------------------------------------------------------------------------
BaseApplication::~BaseApplication(void)
{
if (mTrayMgr) delete mTrayMgr;
if (mCameraMan) delete mCameraMan;

//Remove ourself as a Window listener
Ogre::WindowEventUtilities::removeWindowEventListener(mWindow, this);
windowClosed(mWindow);
delete mRoot;
}

//-------------------------------------------------------------------------------------
bool BaseApplication::configure(void)
{
// Show the configuration dialog and initialise the system
// You can skip this and use root.restoreConfig() to load configuration
// settings if you were sure there are valid ones saved in ogre.cfg
if(mRoot->showConfigDialog())
{
// If returned true, user clicked OK so initialise
// Here we choose to let the system create a default rendering window by passing 'true'
mWindow = mRoot->initialise(true, "Nx Render Window");

// Let's add a nice window icon
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
HWND hwnd;
mWindow->getCustomAttribute("WINDOW", (void*)&hwnd);
LONG iconID = (LONG)LoadIcon( GetModuleHandle(0), MAKEINTRESOURCE(IDI_APPICON) );
SetClassLong( hwnd, GCL_HICON, iconID );
#endif
return true;
}
else
{
return false;
}
}
//-------------------------------------------------------------------------------------
void BaseApplication::chooseSceneManager(void)
{
// Get the SceneManager, in this case a generic one
mSceneMgr = mRoot->createSceneManager(Ogre::ST_GENERIC);
}
//-------------------------------------------------------------------------------------
void BaseApplication::createCamera(void)
{
// Create the camera
mCamera = mSceneMgr->createCamera("PlayerCam");

// Position it at 500 in Z direction
mCamera->setPosition(Ogre::Vector3(0,0,80));
// Look back along -Z
mCamera->lookAt(Ogre::Vector3(0,0,-300));
mCamera->setNearClipDistance(5);

mCameraMan = new OgreBites::SdkCameraMan(mCamera); // create a default camera controller
}
//-------------------------------------------------------------------------------------
void BaseApplication::createFrameListener(void)
{
Ogre::LogManager::getSingletonPtr()->logMessage("*** Initializing OIS ***");
OIS::ParamList pl;
size_t windowHnd = 0;
std::ostringstream windowHndStr;

mWindow->getCustomAttribute("WINDOW", &windowHnd);
windowHndStr << windowHnd;
pl.insert(std::make_pair(std::string("WINDOW"), windowHndStr.str()));

mInputManager = OIS::InputManager::createInputSystem( pl );

mKeyboard = static_cast<OIS::Keyboard*>(mInputManager->createInputObject( OIS::OISKeyboard, true ));
mMouse = static_cast<OIS::Mouse*>(mInputManager->createInputObject( OIS::OISMouse, true ));

mMouse->setEventCallback(this);
mKeyboard->setEventCallback(this);

//Set initial mouse clipping size
windowResized(mWindow);

//Register as a Window listener
Ogre::WindowEventUtilities::addWindowEventListener(mWindow, this);

mTrayMgr = new OgreBites::SdkTrayManager("InterfaceName", mWindow, mMouse, this);
mTrayMgr->showFrameStats(OgreBites::TL_BOTTOMLEFT);
mTrayMgr->showLogo(OgreBites::TL_BOTTOMRIGHT);
mTrayMgr->hideCursor();

// create a params panel for displaying sample details
Ogre::StringVector items;
items.push_back("cam.pX");
items.push_back("cam.pY");
items.push_back("cam.pZ");
items.push_back("");
items.push_back("cam.oW");
items.push_back("cam.oX");
items.push_back("cam.oY");
items.push_back("cam.oZ");
items.push_back("");
items.push_back("Filtering");
items.push_back("Poly Mode");

mDetailsPanel = mTrayMgr->createParamsPanel(OgreBites::TL_NONE, "DetailsPanel", 200, items);
mDetailsPanel->setParamValue(9, "Bilinear");
mDetailsPanel->setParamValue(10, "Solid");
mDetailsPanel->hide();

//mCheckBox = mTrayMgr->createCheckBox(OgreBites::TL_CENTER, "CheckBox", "", 38);

mRoot->addFrameListener(this);
}
//-------------------------------------------------------------------------------------
void BaseApplication::destroyScene(void)
{
}
//-------------------------------------------------------------------------------------
void BaseApplication::createViewports(void)
{
// Create one viewport, entire window
Ogre::Viewport* vp = mWindow->addViewport(mCamera);
vp->setBackgroundColour(Ogre::ColourValue(0,0,0));

// Alter the camera aspect ratio to match the viewport
mCamera->setAspectRatio(
Ogre::Real(vp->getActualWidth()) / Ogre::Real(vp->getActualHeight()));
mViewport = vp;
}
//-------------------------------------------------------------------------------------
void BaseApplication::setupResources(void)
{
// Load resource paths from config file
Ogre::ConfigFile cf;
cf.load(mResourcesCfg);

// Go through all sections & settings in the file
Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator();

Ogre::String secName, typeName, archName;
while (seci.hasMoreElements())
{
secName = seci.peekNextKey();
Ogre::ConfigFile::SettingsMultiMap *settings = seci.getNext();
Ogre::ConfigFile::SettingsMultiMap::iterator i;
for (i = settings->begin(); i != settings->end(); ++i)
{
typeName = i->first;
archName = i->second;
Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
archName, typeName, secName);
}
}
}
//-------------------------------------------------------------------------------------
void BaseApplication::createResourceListener(void)
{

}
//-------------------------------------------------------------------------------------
void BaseApplication::loadResources(void)
{
Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
}
//-------------------------------------------------------------------------------------
void BaseApplication::go(void)
{
#ifdef _DEBUG
mResourcesCfg = "resources_d.cfg";
mPluginsCfg = "plugins_d.cfg";
#else
mResourcesCfg = "resources.cfg";
mPluginsCfg = "plugins.cfg";
#endif

if (!setup())
return;

mRoot->startRendering();

// clean up
destroyScene();
}
//-------------------------------------------------------------------------------------
bool BaseApplication::setup(void)
{
mRoot = new Ogre::Root(mPluginsCfg);

setupResources();

bool carryOn = configure();
if (!carryOn) return false;

chooseSceneManager();
createCamera();
createViewports();

// Set default mipmap level (NB some APIs ignore this)
Ogre::TextureManager::getSingleton().setDefaultNumMipmaps(5);

// Create any resource listeners (for loading screens)
createResourceListener();
// Load resources
loadResources();

// Create the scene
createScene();

createFrameListener();

return true;
};
//-------------------------------------------------------------------------------------
bool BaseApplication::frameRenderingQueued(const Ogre::FrameEvent& evt)
{
if(mWindow->isClosed())
return false;

if(mShutDown)
return false;

//Need to capture/update each device
mKeyboard->capture();
mMouse->capture();

mTrayMgr->frameRenderingQueued(evt);

if (!mTrayMgr->isDialogVisible())
{
mCameraMan->frameRenderingQueued(evt); // if dialog isn't up, then update the camera
if (mDetailsPanel->isVisible()) // if details panel is visible, then update its contents
{
mDetailsPanel->setParamValue(0, Ogre::StringConverter::toString(mCamera->getDerivedPosition().x));
mDetailsPanel->setParamValue(1, Ogre::StringConverter::toString(mCamera->getDerivedPosition().y));
mDetailsPanel->setParamValue(2, Ogre::StringConverter::toString(mCamera->getDerivedPosition().z));
mDetailsPanel->setParamValue(4, Ogre::StringConverter::toString(mCamera->getDerivedOrientation().w));
mDetailsPanel->setParamValue(5, Ogre::StringConverter::toString(mCamera->getDerivedOrientation().x));
mDetailsPanel->setParamValue(6, Ogre::StringConverter::toString(mCamera->getDerivedOrientation().y));
mDetailsPanel->setParamValue(7, Ogre::StringConverter::toString(mCamera->getDerivedOrientation().z));
}
}

return true;
}
//-------------------------------------------------------------------------------------
bool BaseApplication::keyPressed( const OIS::KeyEvent &arg )
{
if (mTrayMgr->isDialogVisible()) return true; // don't process any more keys if dialog is up

if (arg.key == OIS::KC_F) // toggle visibility of advanced frame stats
{
mTrayMgr->toggleAdvancedFrameStats();
}
else if (arg.key == OIS::KC_G) // toggle visibility of even rarer debugging details
{
if (mDetailsPanel->getTrayLocation() == OgreBites::TL_NONE)
{
mTrayMgr->moveWidgetToTray(mDetailsPanel, OgreBites::TL_TOPRIGHT, 0);
mDetailsPanel->show();
}
else
{
mTrayMgr->removeWidgetFromTray(mDetailsPanel);
mDetailsPanel->hide();
}
}
else if (arg.key == OIS::KC_T) // cycle polygon rendering mode
{
Ogre::String newVal;
Ogre::TextureFilterOptions tfo;
unsigned int aniso;

switch (mDetailsPanel->getParamValue(9).asUTF8()[0])
{
case 'B':
newVal = "Trilinear";
tfo = Ogre::TFO_TRILINEAR;
aniso = 1;
break;
case 'T':
newVal = "Anisotropic";
tfo = Ogre::TFO_ANISOTROPIC;
aniso = 8;
break;
case 'A':
newVal = "None";
tfo = Ogre::TFO_NONE;
aniso = 1;
break;
default:
newVal = "Bilinear";
tfo = Ogre::TFO_BILINEAR;
aniso = 1;
}

Ogre::MaterialManager::getSingleton().setDefaultTextureFiltering(tfo);
Ogre::MaterialManager::getSingleton().setDefaultAnisotropy(aniso);
mDetailsPanel->setParamValue(9, newVal);
}
else if (arg.key == OIS::KC_R) // cycle polygon rendering mode
{
Ogre::String newVal;
Ogre::PolygonMode pm;

switch (mCamera->getPolygonMode())
{
case Ogre::PM_SOLID:
newVal = "Wireframe";
pm = Ogre::PM_WIREFRAME;
break;
case Ogre::PM_WIREFRAME:
newVal = "Points";
pm = Ogre::PM_POINTS;
break;
default:
newVal = "Solid";
pm = Ogre::PM_SOLID;
}

mCamera->setPolygonMode(pm);
mDetailsPanel->setParamValue(10, newVal);
}
else if(arg.key == OIS::KC_F5) // refresh all textures
{
Ogre::TextureManager::getSingleton().reloadAll();
}
else if (arg.key == OIS::KC_SYSRQ) // take a screenshot
{
mWindow->writeContentsToTimestampedFile("screenshot", ".jpg");
}
else if (arg.key == OIS::KC_ESCAPE)
{
mShutDown = true;
}
else if (arg.key == OIS::KC_M)
{
mCameraMan->setRevMouseLook(! mCameraMan->getRevMouseLook());
}

mCameraMan->injectKeyDown(arg);
return true;
}

bool BaseApplication::keyReleased( const OIS::KeyEvent &arg )
{
mCameraMan->injectKeyUp(arg);
return true;
}

bool BaseApplication::mouseMoved( const OIS::MouseEvent &arg )
{
if (mTrayMgr->injectMouseMove(arg)) return true;
mCameraMan->injectMouseMove(arg);
return true;
}

bool BaseApplication::mousePressed( const OIS::MouseEvent &arg, OIS::MouseButtonID id )
{
if (mTrayMgr->injectMouseDown(arg, id)) return true;
mCameraMan->injectMouseDown(arg, id);
return true;
}

bool BaseApplication::mouseReleased( const OIS::MouseEvent &arg, OIS::MouseButtonID id )
{
if (mTrayMgr->injectMouseUp(arg, id)) return true;
mCameraMan->injectMouseUp(arg, id);
return true;
}

//Adjust mouse clipping area
void BaseApplication::windowResized(Ogre::RenderWindow* rw)
{
unsigned int width, height, depth;
int left, top;
rw->getMetrics(width, height, depth, left, top);

const OIS::MouseState &ms = mMouse->getMouseState();
ms.width = width;
ms.height = height;
}

//Unattach OIS before window shutdown (very important under Linux)
void BaseApplication::windowClosed(Ogre::RenderWindow* rw)
{
//Only close for window that created OIS (the main window in these demos)
if( rw == mWindow )
{
if( mInputManager )
{
mInputManager->destroyInputObject( mMouse );
mInputManager->destroyInputObject( mKeyboard );

OIS::InputManager::destroyInputSystem(mInputManager);
mInputManager = 0;
}
}
}


Nx.h
/*
-----------------------------------------------------------------------------
Filename: Nx.h
-----------------------------------------------------------------------------


This source file is generated by the
___ _ __ __ _ _
/___\__ _ _ __ ___ /_\ _ __ _ __/ / /\ \ (_)______ _ _ __ __| |
// // _` | '__/ _ \ //_\\| '_ \| '_ \ \/ \/ / |_ / _` | '__/ _` |
/ \_// (_| | | | __/ / _ \ |_) | |_) \ /\ /| |/ / (_| | | | (_| |
\___/ \__, |_| \___| \_/ \_/ .__/| .__/ \/ \/ |_/___\__,_|_| \__,_|
|___/ |_| |_|
Ogre 1.8.x Application Wizard for VC10 (May 2012)
https://bitbucket.org/jacmoe/ogreappwizards
-----------------------------------------------------------------------------
*/
#ifndef __Nx_h_
#define __Nx_h_

#include "BaseApplication.h"
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
#include "../res/resource.h"
#endif

//#include <conio.h>
#include <NxOgre.h>
#include <Critter.h>
#include "Gorilla.h"
#include "OgreConsoleForGorilla.h"

#define MaxStrength 1e7f

class Nx : public BaseApplication
{
public:
Nx(void);
virtual ~Nx(void);

static Nx * this_s;

// Gorilla
Gorilla::Silverback * mGorilla;
Gorilla::Screen * mScreen;
OgreConsole * mConsole;
Gorilla::Layer * mStatusLayer;
Gorilla::Caption * mStatus;
Ogre::Real mTimer;
Gorilla::Layer * mReticleLayer;
Gorilla::Rectangle * mReticle;

// Nx
NxOgre::World * mWorld;
NxOgre::Scene * mScene;
NxOgre::MeshManager * mMeshManager;
Critter::RenderSystem * mRenderSystem;
NxOgre::VisualDebugger * mVisualDebugger;
float mLastTimeStep;
NxOgre::Material * mDefaultMaterial;
Critter::Body * mBody;
Critter::Body * mHead;
NxOgre::Mesh * mBarrelMesh;
NxOgre::Mesh * mPlaypenMesh;
int mNumBarrels;

NxOgre::Cloth * mCloth;
NxOgre::Mesh * mClothMesh;
int mClothSelectedVertex;
Ogre::SceneNode * mClothSelectedVertexMarker;
OgreBites::SelectMenu * mClothSelectedMethodMenu;
enum VertexMethod
{
VM_SetPosition,
VM_AttachVertex,
VM_AddForce
};
VertexMethod mClothSelectedMethod;

protected:
void createScene();
void destroyScene();
void createGorilla();
void destroyGorilla();
void createPhysics();
Critter::Body * makeContainer(const NxOgre::Matrix44& globalPose);
Critter::Body * makeBarrel(const NxOgre::Matrix44& globalPose, const NxOgre::Vec3& initialVelocity);
NxOgre::SceneGeometry* makePlaypen(const NxOgre::Matrix44& globalPose);
void makeCloth(const NxOgre::Vec3& barPosition);
void destroyPhysics();
bool keyPressed(const OIS::KeyEvent& evt);
bool keyReleased(const OIS::KeyEvent& evt);
bool mouseMoved( const OIS::MouseEvent &evt );
bool mousePressed( const OIS::MouseEvent &evt, OIS::MouseButtonID id );
bool frameRenderingQueued(const Ogre::FrameEvent& evt);

// Gorilla
static void version_s(Ogre::StringVector&);
static void make_s(Ogre::StringVector & vec);
static void barrels_s(Ogre::StringVector&);
};

#endif // #ifndef __Nx_h_


Nx.cpp
/*
-----------------------------------------------------------------------------
Filename: Nx.cpp
-----------------------------------------------------------------------------


This source file is generated by the
___ _ __ __ _ _
/___\__ _ _ __ ___ /_\ _ __ _ __/ / /\ \ (_)______ _ _ __ __| |
// // _` | '__/ _ \ //_\\| '_ \| '_ \ \/ \/ / |_ / _` | '__/ _` |
/ \_// (_| | | | __/ / _ \ |_) | |_) \ /\ /| |/ / (_| | | | (_| |
\___/ \__, |_| \___| \_/ \_/ .__/| .__/ \/ \/ |_/___\__,_|_| \__,_|
|___/ |_| |_|
Ogre 1.8.x Application Wizard for VC10 (May 2012)
https://bitbucket.org/jacmoe/ogreappwizards
-----------------------------------------------------------------------------
*/

#include "Nx.h"

Nx * Nx::this_s = 0;

//-------------------------------------------------------------------------------------
Nx::Nx()
{
this_s = this;
}
//-------------------------------------------------------------------------------------
Nx::~Nx()
{
}

void Nx::version_s(Ogre::StringVector&)
{
std::stringstream s;
s << "Ogre " << OGRE_VERSION_MAJOR << "." << OGRE_VERSION_MINOR << "." << OGRE_VERSION_PATCH << " '" << OGRE_VERSION_NAME << "'";
OgreConsole::getSingleton().print(s.str());
}

void Nx::make_s(Ogre::StringVector & vec)
{
if (vec.size() == 1)
OgreConsole::getSingleton().print("Make you what?");
else
{
Ogre::String item_to_make = vec[1];
Ogre::StringUtil::toLowerCase(item_to_make);
if (item_to_make == "sandwich")
OgreConsole::getSingleton().print("Make it yourself!");
else if (item_to_make == "universe")
OgreConsole::getSingleton().print("Boom!");
else if (item_to_make == "ogre")
OgreConsole::getSingleton().print("I need a Daddy and Mommy Ogre");
else if (item_to_make == "gorilla")
OgreConsole::getSingleton().print("He wouldn't like that");
else
OgreConsole::getSingleton().print("Go check your fridge.");
}
}

void Nx::barrels_s(Ogre::StringVector&)
{
stringstream ss;
ss << "Barrels: " << Nx::this_s->mNumBarrels;
OgreConsole::getSingleton().print(ss.str());
}


//-------------------------------------------------------------------------------------
void Nx::createScene()
{
createGorilla();

// Set shadow properties
mSceneMgr->setShadowTechnique(SHADOWTYPE_STENCIL_MODULATIVE);
//mSceneMgr->setShadowTechnique(SHADOWTYPE_TEXTURE_MODULATIVE);
//mSceneMgr->setShadowTextureSize(2048);
//mSceneMgr->setShadowFarDistance(80);
//mSceneMgr->setShadowTextureConfig(0
//mSceneMgr->setShadowColour(ColourValue(0.5, 0.5, 0.5));

//// Set ambient light
//mSceneMgr->setAmbientLight(Ogre::ColourValue(0.5, 0.5, 0.5));

//// Create a light
//Ogre::Light* l = mSceneMgr->createLight("MainLight");
//l->setPosition(20,80,50);

// Use a small amount of ambient lighting
mSceneMgr->setAmbientLight(ColourValue(0.3, 0.3, 0.3));

// Add a bright light above the scene
Light* light = mSceneMgr->createLight();
light->setType(Light::LT_POINT);
light->setPosition(-10, 40, 20);
light->setSpecularColour(ColourValue::White);

ColourValue background = ColourValue(16.f/255.f, 16.f/255.f, 16.f/255.f);
mViewport->setBackgroundColour(background);
mSceneMgr->setFog(Ogre::FOG_EXP, background, 0.001, 800, 1000);

//Ogre::Entity* ogreHead = mSceneMgr->createEntity("Head", "ogrehead.mesh");

//Ogre::SceneNode* headNode = mSceneMgr->getRootSceneNode()->createChildSceneNode();
//headNode->attachObject(ogreHead);
//headNode->setScale(0.035, 0.035, 0.035);
//headNode->setPosition(0, 5, 0);

// Create a floor mesh resource
MeshManager::getSingleton().createPlane("floor", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,
Plane(Vector3::UNIT_Y, -0.05), 1000, 1000, 1, 1, true, 1, 1, 1, Vector3::UNIT_Z);

// Create a floor entity, give it a material, and place it at the origin
Entity* floor = mSceneMgr->createEntity("Floor", "floor");
floor->setMaterialName("ground-from-nxogre.org");
floor->setCastShadows(false);
mSceneMgr->getRootSceneNode()->attachObject(floor);

mCamera->setPosition(0,12,12);
mCamera->lookAt(0,1,0);
mCamera->setNearClipDistance(0.1f);
//mCamera->setFarClipDistance(1000.0f);
mCameraMan->setTopSpeed(7.5);

createPhysics();
}

void Nx::destroyScene()
{
destroyPhysics();
destroyGorilla();
}

void Nx::createGorilla()
{
mGorilla = new Gorilla::Silverback();
mGorilla->loadAtlas("dejavu");
mScreen = mGorilla->createScreen(mViewport, "dejavu");

// Console
mConsole = new OgreConsole();
mConsole->init(mScreen);
mConsole->setVisible(false);
mConsole->addCommand("version", Nx::version_s);
mConsole->addCommand("make", Nx::make_s);
mConsole->addCommand("barrels", Nx::barrels_s);

// Status
mStatusLayer = mScreen->createLayer(14);
mStatus = mStatusLayer->createCaption(14, 200, mViewport->getActualHeight() - 25, Ogre::StringUtil::BLANK);

// Target reticle
mReticleLayer = mScreen->createLayer(14);
mReticle = mReticleLayer->createRectangle(mViewport->getActualWidth()/2-2, mViewport->getActualHeight()/2-2, 4, 4);
mReticle->background_colour(Gorilla::Colours::Aqua);
mReticleLayer->setAlphaModifier(0.3);
}

void Nx::destroyGorilla()
{
delete mGorilla;
}

void Nx::createPhysics()
{
// Create the world
mWorld = NxOgre::World::createWorld();
mWorld->getRemoteDebugger()->connect();

// Create the scene
NxOgre::SceneDescription sceneDesc;
sceneDesc.mGravity = NxOgre::Constants::MEAN_EARTH_GRAVITY;
sceneDesc.mUseHardware = false;

// Get mesh manager
mMeshManager = NxOgre::MeshManager::getSingleton();

// Allow NxOgre to use the Ogre resource system, via the Critter OgreResourceProtocol class.
// - ResourceProtocols are normally owned by the ResourceSystem, so we don't have to delete it later.
NxOgre::ResourceSystem::getSingleton()->openProtocol(new Critter::OgreResourceProtocol());

mScene = mWorld->createScene(sceneDesc);

// Set default material properties
mDefaultMaterial = mScene->getMaterial(0);
mDefaultMaterial->setRestitution(0.1);
mDefaultMaterial->setDynamicFriction(0.9);
mDefaultMaterial->setStaticFriction(0.5);

// Plane creation
mScene->createSceneGeometry(NxOgre::PlaneGeometryDescription());

// Create the rendersystem
mRenderSystem = new Critter::RenderSystem(mScene, mSceneMgr);

// Create visual debugger
NxOgre::VisualDebuggerDescription vdd;
vdd.showDebug();
mVisualDebugger = mRenderSystem->createVisualDebugger(vdd);
mVisualDebugger->disable();

// Setup a BodyDescription
Critter::BodyDescription boxDesc;
boxDesc.mMass = 40.0f; // 40kg

// Box
mBody = 0;
mBody = mRenderSystem->createBody(NxOgre::BoxDescription(1,1,1), NxOgre::Vec3(-5,5,0), "cube.1m.mesh", boxDesc);

// Ogre head
mHead = 0;
Critter::BodyDescription headDesc;
headDesc.mMass = 40;
Ogre::Entity* ogreHead = mSceneMgr->createEntity("Head", "ogrehead.mesh");
//Ogre::SceneNode* headNode = mSceneMgr->getRootSceneNode()->createChildSceneNode();
//headNode->attachObject(ogreHead);
//headNode->setScale(0.035, 0.035, 0.035);
mHead = mRenderSystem->createBody(NxOgre::SphereDescription(1), NxOgre::Vec3(-5,7,0), Ogre::StringUtil::BLANK, headDesc);
//mHead->setSceneNode(headNode);
mHead->getNode()->addEntity(ogreHead);
mHead->getNode()->setScale(0.035);

// Barrels
mNumBarrels = 0;
mBarrelMesh = mMeshManager->load("ogre://General/barrel.nxs", "barrel");
for (int i = 0; i < 10; ++i)
{
Critter::BodyDescription barrelDesc;
barrelDesc.mMass = 40.0f;
mRenderSystem->createBody(NxOgre::ConvexDescription(mBarrelMesh), NxOgre::Vec3( (i%2==0?-5:-7), 45+(i*2),0), "barrel.mesh", barrelDesc);
++mNumBarrels;
}

// Containers
makeContainer(NxOgre::Vec3(0, 1, 0));
makeContainer(NxOgre::Vec3(3.5, 3, 0));

// Make playpen
mPlaypenMesh = 0;
makePlaypen(NxOgre::Vec3(10,0.3,0));

// Cloth
mClothMesh = 0;
mClothSelectedMethod = VM_SetPosition;
mClothSelectedVertex = -1;
makeCloth(NxOgre::Vec3(0,5,-5));
}

Critter::Body * Nx::makeContainer(const NxOgre::Matrix44& globalPose)
{

// Create a ShapeDescriptions container (NxOgre::vector<ShapeDescription*>).
NxOgre::ShapeDescriptions shapes;

// Each shape in the Actor/Body may have it's own seperate material, but the default one is good enough for now.
NxOgre::MaterialIdentifier material = mDefaultMaterial->getIdentifier();

// Our container should be hollow inside, to let things through it.
// - Convex shapes cannot have holes.
// - Spheres, Capsules do have holes either.
// - Triangle Meshes can only be used in StaticGeometries, and StaticGeometries do not move.
// - Instead we make up the container using box shapes repesenting each side of the container, there are four
// sides, so four BoxDescriptions.

NxOgre::BoxDescription side1(NxOgre::Vec3(3.784, 1.75, 0.1), material, NxOgre::Vec3(0, 0, -0.975));
NxOgre::BoxDescription side2(NxOgre::Vec3(3.784, 1.75, 0.1), material, NxOgre::Vec3(0, 0, 0.975));
NxOgre::BoxDescription side3(NxOgre::Vec3(3.784, 0.1, 2), material, NxOgre::Vec3(0, -0.85, 0));
NxOgre::BoxDescription side4(NxOgre::Vec3(3.784, 0.1, 2), material, NxOgre::Vec3(0, 0.85, 0));

// Then add them to the ShapeDescriptions.
// - You can use pointers and create the BoxDescriptions via new. But you need to delete them afterwards for leaks.
// - Careful using references! As with C++ they will be deleted when they are out of scope.
shapes.push_back(&side1);
shapes.push_back(&side2);
shapes.push_back(&side3);
shapes.push_back(&side4);

// Create the container BodyDescription.
Critter::BodyDescription description;
description.mMass = 1000; // Make it pretty heavy, 1000kg.

// Create the container using the "shapes" ShapeDescriptions as our Shape argument.
Critter::Body * container = mRenderSystem->createBody(shapes, globalPose, "container.mesh", description);

return container;
}

Critter::Body * Nx::makeBarrel(const NxOgre::Matrix44& globalPose, const NxOgre::Vec3& initialVelocity)
{

if (mBarrelMesh == 0)
mBarrelMesh = NxOgre::MeshManager::getSingleton()->load("ogre://General/barrel.nxs", "barrel");

Critter::BodyDescription bodyDescription;
bodyDescription.mMass = 40.0f;
bodyDescription.mLinearVelocity = initialVelocity;

Critter::Body * barrel = mRenderSystem->createBody(NxOgre::ConvexDescription(mBarrelMesh), globalPose, "barrel.mesh", bodyDescription);
++mNumBarrels;

return barrel;
}

NxOgre::SceneGeometry * Nx::makePlaypen(const NxOgre::Matrix44& globalPose)
{

if (mPlaypenMesh == 0)
mPlaypenMesh = NxOgre::MeshManager::getSingleton()->load("ogre://General/playpen.nxs", "playpen");

NxOgre::SceneGeometry* scene_geom = mScene->createSceneGeometry(NxOgre::TriangleGeometryDescription(mPlaypenMesh), globalPose);
mRenderSystem->createSceneNodeEntityPair("nxogre.playpen.mesh", NxOgre::Vec3(globalPose), NxOgre::Quat(globalPose));
return scene_geom;
}

void Nx::makeCloth(const NxOgre::Vec3 & barPosition)
{
NxOgre::Vec3 pos = barPosition;
NxOgre::Vec2 clothSize(8,4);

pos.x -= clothSize.x * 0.5f;

if (mClothMesh == 0)
mClothMesh = NxOgre::MeshGenerator::makePlane(clothSize, 0.1, NxOgre::Enums::MeshType_Cloth, "file://rug.xcl");

NxOgre::Vec3 holderPos = pos;
holderPos.x += clothSize.x * 0.5f;;
holderPos.y += 0.05f;
holderPos.z -= 0.05f;
NxOgre::SceneGeometry* geom = mScene->createSceneGeometry(NxOgre::BoxDescription(10, 0.1, 0.1), holderPos);

SceneNode* geom_node = mRenderSystem->createSceneNodeEntityPair("cube.mesh", holderPos);
geom_node->scale(0.1, 0.001, 0.001);

NxOgre::ClothDescription desc;
desc.mMesh = mClothMesh;
desc.mThickness = 0.2;
desc.mFriction = 0.5;
//desc.mFlags |= NxOgre::Enums::ClothFlags_BendingResistance;
//desc.mFlags |= NxOgre::Enums::ClothFlags_TwoWayCollisions;

desc.mGlobalPose.set(pos);

mCloth = mRenderSystem->createCloth(desc, "wales");
mCloth->attachToShape((*geom->getShapes().begin()), NxOgre::Enums::ClothAttachmentFlags_Twoway);
}

void Nx::destroyPhysics()
{
NxOgre::World::destroyWorld();
}

bool Nx::keyPressed(const OIS::KeyEvent& evt)
{
// Gorilla
if (evt.key == OIS::KC_GRAVE) mConsole->setVisible(! mConsole->isVisible());
mConsole->onKeyPressed(evt);
if (mConsole->isVisible()) return true; // All keys go to console


NxOgre::Vec3 force;

if (evt.key == OIS::KC_I)
force.z -= .18;
else if (evt.key == OIS::KC_K)
force.z += .18;
else if (evt.key == OIS::KC_J)
force.x -= .18;
else if (evt.key == OIS::KC_L)
force.x += .18;
else if (evt.key == OIS::KC_U)
force.y += .18;
else if (evt.key == OIS::KC_M)
force.y -= .18;

if (!force.isZero())
mBody->addForce(MaxStrength * force * mLastTimeStep);


if (evt.key == OIS::KC_1)
makeBarrel(NxOgre::Matrix44(NxOgre::Vec3(2,3,0), NxOgre::Quat(0.707, NxOgre::Vec3(1,0,0))), NxOgre::Vec3(2,0,0));

if (evt.key == OIS::KC_Y)
{
// Reset
if (mBody)
{
mBody->setGlobalPose(NxOgre::Matrix44(NxOgre::Vec3(-5,3,0), NxOgre::Quat(1,0,0,0)));
mBody->setAngularVelocity(0,0,0);
mBody->setLinearVelocity(0,0,0);
}
if (mHead)
{
mHead->setGlobalPose(NxOgre::Matrix44(NxOgre::Vec3(-5,6,0), NxOgre::Quat(1,0,0,0)));
mHead->setAngularVelocity(0,0,0);
mHead->setLinearVelocity(0,0,0);
}
}

if (evt.key == OIS::KC_H)
{
static bool show = true;
//if (show) mRenderSystem->setVisualisationMode(NxOgre::Enums::VisualDebugger_ShowAll);
//else mRenderSystem->setVisualisationMode(NxOgre::Enums::VisualDebugger_ShowNone);
if (show) mVisualDebugger->enable();
else mVisualDebugger->disable();
show = !show;
}

return BaseApplication::keyPressed(evt);
}

bool Nx::keyReleased(const OIS::KeyEvent& evt)
{
return BaseApplication::keyReleased(evt);
}

bool Nx::mouseMoved( const OIS::MouseEvent &evt )
{
Ray ogreRay = mCamera->getCameraToViewportRay(0.5, 0.5);
NxOgre::Ray ray;
ray.mOrigin.from(ogreRay.getOrigin());
ray.mDirection.from(ogreRay.getDirection());
NxOgre::RaycastHit hit = mScene->raycastClosestShape(ray, NxOgre::Enums::ShapesType_All);
std::stringstream s;
s << hit.mDistance << ", (" << hit.mWorldNormal << "), (" << hit.mWorldImpact << ")";
mStatus->text(s.str());

return BaseApplication::mouseMoved(evt);
}

bool Nx::mousePressed( const OIS::MouseEvent &evt, OIS::MouseButtonID id )
{
if (id == OIS::MB_Left)
{
Ray ogreRay = mCamera->getCameraToViewportRay(0.5, 0.5);
NxOgre::Ray ray;
ray.mOrigin = ogreRay.getOrigin();
ray.mDirection = ogreRay.getDirection();
NxOgre::RaycastHit hit = mScene->raycastClosestShape(ray, NxOgre::Enums::ShapesType_All);
mConsole->print("(" + ray.mOrigin.to_s() + "), (" + ray.mDirection.to_s() + ")");
mConsole->print(osc::toString(hit.mDistance) + ", (" + hit.mWorldNormal.to_s() + "), (" + hit.mWorldImpact.to_s() + ")");
}

return BaseApplication::mousePressed(evt, id);
}

bool Nx::frameRenderingQueued(const Ogre::FrameEvent& evt)
{
// Advance NxOgre
mWorld->advance(evt.timeSinceLastFrame);
mLastTimeStep = mScene->getTimeStep().getModified();

// Don't let the camera go underground
if (mCamera->getPosition().y < 0.5f)
{
Ogre::Vector3 pos = mCamera->getPosition();
pos.y = 0.5f;
mCamera->setPosition(pos);
}

// Gorilla
//mTimer += evt.timeSinceLastFrame;
//if (mTimer > 1.0f / 60.0f)
//{
// mTimer = 0;
// std::stringstream s;
// s << "FPS: " << mWindow->getLastFPS() << ", Batches: " << mRoot->getRenderSystem()->_getBatchCount() << "\n";
// mStatus->text(s.str());
//}

return BaseApplication::frameRenderingQueued(evt);
}



#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
#define WIN32_LEAN_AND_MEAN
#include "windows.h"
#endif

#ifdef __cplusplus
extern "C" {
#endif

#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
#else
int main(int argc, char *argv[])
#endif
{
// Create application object
Nx app;
//AllocConsole();
//_cprintf("Console open");
try {
app.go();
} catch( Ogre::Exception& e ) {
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
MessageBox( NULL, e.getFullDescription().c_str(), "An Ogre exception has occured!", MB_OK | MB_ICONERROR | MB_TASKMODAL);
#else
std::cerr << "An exception has occured: " <<
e.getFullDescription().c_str() << std::endl;
#endif
#ifdef NDEBUG
} catch( NxOgre::Exception& e ) {
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
MessageBox( NULL, e.getDescription().c_str(), "An NxOgre exception has occured!", MB_OK | MB_ICONERROR | MB_TASKMODAL);
#else
std::cerr << "An exception has occured: " <<
e.getDescription().c_str() << std::endl;
#endif
#endif
} catch( const std::exception & e) {
MessageBox( NULL, e.what(), "A STD exception has occured!", MB_OK | MB_ICONERROR | MB_TASKMODAL);
} catch( const std::string & e ) {
MessageBox( NULL, e.c_str(), "An exception has occured!", MB_OK | MB_ICONERROR | MB_TASKMODAL);
}
//FreeConsole();
return 0;
}

#ifdef __cplusplus
}
#endif

betajaen

18-11-2012 11:09:32

Do the cloth samples work out of the box? If not, then it's likely to be NxOgre and/or PhysX.

Senzin

18-11-2012 22:10:25

Welcome back betajaen. Unless you've been following the thread, you missed an important discovery. I'll re-post it here...

I've made a tiny bit of progress. I switched from Ogre 1.8.1 to Ogre 1.7.2 (also tried 1.7.4) and now everything works under Direct3D, but OpenGL still crashes on loading anything with cloth.

With 1.8.1 and Direct3D, the crashes occurred only when I tried to change settings, like wind speed, and when I tried to change the animation settings in 1303 (no cloth at all). Could it be that the crashes were actually related to a difference in the SdkTrayManager from version 1.7.x to 1.8.x and had nothing to do with PhysX? As in, maybe the tutorials were invoking SdkTrayManager functions incorrectly in 1.8.x?

Remember, though, that crashes still occur on load with OpenGL and cloth, which still really bothers me. Also, there is a bug in 1.7.x with stencil shadows, so I'd really prefer to use 1.8.x.

NoMonkey

20-11-2012 09:23:05

Do the cloth samples work out of the box? If not, then it's likely to be NxOgre and/or PhysX.
Like Senzin said, with Ogre 1.7.4 and DirectX the samples work but when I copy-paste them inside my own project it crahses.

betajaen

20-11-2012 10:35:41

Hmm. Some of that code looks like mine. ;)

What happens if you create cloth, but not render it (i.e. create it without using critter), then see it in the Visual Debugger?

NoMonkey

20-11-2012 14:17:24

Your code, as you gave it to me, does not actually crate any objects other than the ground plane. It compiled an ran fin. I edited by calling makeCloth(NxOgre::Vec3(0,5,-5)) at the end of your setupPhysics function. It compiled, but crashed when I ran it.

Here is the code for my test scene. If you don't have Gorilla and OgreConsoleForGorilla, you'll have to comment out any references to them to get this to compile. I'm pretty sure the Gorilla stuff is only in Nx.h and Nx.cpp.

Sorry, I should have mentioned that I bound spawning things to keys. But thank you for your code! After commenting out all that Gorilla stuff everything worked fine :-) No I just have to find out what the difference is :-D

Hmm. Some of that code looks like mine.
It sure does :-D I don't really know how to create things without critter. My guess is via mScene->createCloth but I don't really know what the Renderable parameter should be.
Thank you for the effort!

betajaen

20-11-2012 15:01:11

My guess is via mScene->createCloth but I don't really know what the Renderable parameter should be. Thank you for the effort!

I *think* you can pass in null for the renderable.

NoMonkey

21-11-2012 13:26:14

I found my error. It's quite stupid in hindsight.. I forgot to initialize "mClothMesh = 0;" so it was never created because of the "if(mClothMesh == 0) ... " statement.
I thank both of you for your help!

Senzin

25-11-2012 01:12:35

Glad you got it working, NoMonkey.

So, betajaen, any thoughts on what I asked before? To recap...

I've made a tiny bit of progress. I switched from Ogre 1.8.1 to Ogre 1.7.2 (also tried 1.7.4) and now everything works under Direct3D, but OpenGL still crashes on loading anything with cloth.

With 1.8.1 and Direct3D, the crashes occurred only when I tried to change settings, like wind speed, and when I tried to change the animation settings in 1303 (no cloth at all). Could it be that the crashes were actually related to a difference in the SdkTrayManager from version 1.7.x to 1.8.x and had nothing to do with PhysX? As in, maybe the tutorials were invoking SdkTrayManager functions incorrectly in 1.8.x?

Remember, though, that crashes still occur on load with OpenGL and cloth, which really bothers me. Also, there is a bug in 1.7.x with stencil shadows, so I'd really prefer to use 1.8.x.

Also, you said before that you no longer have PhysX nor NxOgre installed on your computer. Are you no longer developing NxOgre? Is the Buggy Swires development branch dead?

Senzin

12-12-2012 10:57:10

Hello? Seems these forums aren't very active...