[GSoC 2011 - Accepted] Dual Quaternion Skinning

Threads related to Google Summer of Code
mysterycoder
Google Summer of Code Student
Google Summer of Code Student
Posts: 169
Joined: Sat Dec 03, 2005 2:04 am
x 6

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by mysterycoder »

Sounds good, though let me know if you'd like me to test any particular areas too.
Also, how will the merge into the main branch work? As far as I'm aware I don't have the appropriate permissions to do it myself, should I just issue a pull request when you've okayed it?
My Google summer of code 2011 topic: Dual Quaternion Skinning
My Google summer of code thread
My Google summer of code wiki page
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by Assaf Raman »

No, Mattan will do it himself.

Mattan - This is what you need to do:
  • 1. Pull the fork to a directory on your local computer.
    2. Pull the trunk to a directory on your local computer.
    3. Open TortoiseHg workbench for the trunk.
    4. In TortoiseHg workbench push the "pull" button.
    5. Open the "syncronize" window
    6. In the window in the bottom part of the screen "Remote repository" - select "local" from the combo and enter the path of the fork. Then press the "pull" button on that window(not the top one).
    7. Fix any issues of this pull if needed.
    8. In TortoiseHg workbench open the top menu item Repository->Terminal.
    9. Type "

    Code: Select all

    hg merge
    " in the command prompt.
    10. merge conflicts if needed.
    11. Commit with the comment: "

    Code: Select all

    Merged GSoC 2011 project - Dual Quaternion Skinning - http://www.ogre3d.org/forums/viewtopic.php?f=13&t=63582
    "
    12. Push back to OGRE trunk.
    13. See here that is was uploaded.
    14. Write a post on this thread that you did all that.
Watch out for my OGRE related tweets here.
User avatar
Mattan Furst
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 260
Joined: Tue Jan 01, 2008 11:28 am
Location: Israel
x 32

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by Mattan Furst »

@mysterycoder

I'm getting some sort of buffer overrun problems in the instancing example. Textures (e.g. gui buttons) and some of the animations become garbled. I believe that the problem is in 2 weights with vtf. most probably in the area where the dual quaternion is written to the texture.

I'm also receiving an isAffine assertion in shader type instancing problems but thats for latter.
I'll get back to debugging it in the evening when I finish work (9 hours from now). If you can take a look as well that will be great.
it's turtles all the way down
mysterycoder
Google Summer of Code Student
Google Summer of Code Student
Posts: 169
Joined: Sat Dec 03, 2005 2:04 am
x 6

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by mysterycoder »

@Mattan Furst

Hmm... I just did a fresh checkout from bitbucket and I'm unable to reproduce this. I tried both VTF and Hardware+VTF with two-weight skinning. This is on Linux with the latest nvidia drivers and Cg 3.0. Are there more detailed steps I need to take to reproduce?
My Google summer of code 2011 topic: Dual Quaternion Skinning
My Google summer of code thread
My Google summer of code wiki page
User avatar
Mattan Furst
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 260
Joined: Tue Jan 01, 2008 11:28 am
Location: Israel
x 32

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by Mattan Furst »

I'm not sure. sometimes it works without a problem sometimes it trashes the graphic card. it's not very consistent. I'm not completely sure about the source of the problem either.

You said you were developing on Linux. Can you run on a windows machine?
it's turtles all the way down
User avatar
Mattan Furst
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 260
Joined: Tue Jan 01, 2008 11:28 am
Location: Israel
x 32

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by Mattan Furst »

Edit:
Disregard this post. look at the next one.

I may have found the bug. I say may because while I can't seem to reproduce the problem any more the fix seams very odd.

Due to how the the instancing shader technique works non-visible entities instead of not being drawn receive a zero filled matrix. When converted into a dual quaternion the quaternion is filled with non-finite type numbers (1.#INF00000). Those numbers are sent to the shader which screws up with the graphic card.

On the graphic engine I am working on at work I had experiences in which crashes and blue screens of death occurred when I was supplied with a non-finite camera position. But I never associated those crashes with the graphic card (I didn't try to associate it with anything I just added code which ignores non-finite values).
On the other hand I can't find any reference in the internet on non-finite numbers in shaders and crashes.
it's turtles all the way down
User avatar
Mattan Furst
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 260
Joined: Tue Jan 01, 2008 11:28 am
Location: Israel
x 32

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by Mattan Furst »

Bad news. That wasn't the bug. but i think I now have found the bug:

While running with the following parameters: Instancing VTF, 6x6 entity grid, 2 weight entities, I had gotten an access violation in the file "OgreMain\src\OgreInstanceBatchVTF.cpp" on line 346.

Code: Select all

*outDualQuaternions++ = dQuat[i];
Code had attempted to write into the buffer of the texture at a position of 21664 (5416 floats) from beginning of the buffer. However the buffer is defined only as a texture of 1196 by 1 pixels (1196*1 pixels = 4784 floats = 19136 chars). clearly not enough room.

Also, when running instanced shader technique when using 2 bone model with a grid of 4 by 4 and zooming out to see all 16 jaquita models. The bottom right model is missing. This is in most probabilities a different bug.

I will continue looking into this tomorrow. I'm a bit too tired to code. sorry.

P.S. A tip I got from dark_slink for debugging the instancing example is that 'space' moves you between techniques.
it's turtles all the way down
mysterycoder
Google Summer of Code Student
Google Summer of Code Student
Posts: 169
Joined: Sat Dec 03, 2005 2:04 am
x 6

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by mysterycoder »

I can reproduce both issues now on my linux machine, but I've set up an additional windows machine just in case.
It seems as if the issue is related to if all of the models are in view. Strangely, I get an access violation somewhere in the OpenGl render system on my system, but I'll go check it out on the windows system too.
My Google summer of code 2011 topic: Dual Quaternion Skinning
My Google summer of code thread
My Google summer of code wiki page
mysterycoder
Google Summer of Code Student
Google Summer of Code Student
Posts: 169
Joined: Sat Dec 03, 2005 2:04 am
x 6

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by mysterycoder »

I think your logic is spot on. :)
After checking BaseInstanceBatchVTF::updateVertexTexture fairly extensively to make sure the pointers writing the information were correct, I tried manually increasing the texture size to double the size and the crashing went away on linux and the visual artifacts went away on windows.

So after setting the texture size back to the calculated size, I put in some code to count the number of floats written to the texture. The number of floats written and the texture size were identical. I think theoretically, that amount of floats should fit. But right after logging the amount of floats that are written, as the program is about to do a second iteration, the program crashes. I checked the amount of floats the second iteration was going to write and while the first iteration perfectly matches the texture size, the second iteration is about 2000 floats larger.

So while I'm not sure why it is changing between iterations, I think I'll find it soon.
My Google summer of code 2011 topic: Dual Quaternion Skinning
My Google summer of code thread
My Google summer of code wiki page
mysterycoder
Google Summer of Code Student
Google Summer of Code Student
Posts: 169
Joined: Sat Dec 03, 2005 2:04 am
x 6

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by mysterycoder »

Just a quick note before I head to bed incase you're working on this.

If you are using 6x6 entities, BaseInstanceBatchVTF::updateVertexTexture is being called twice when you switch to the two weight technique. The first time, the texture size is exact, but the second time the function is called, it tries to write more floats than before, so the texture size is too small. I found that the number of entities seemed to stay the same between the two calls, but the "floatsWritten" for the entities is changing sizes. The first time the function is called, the value is something like 184, but the second time it is called, its 304 or so. This is especially odd since with the linear VTF technique, it seems to stay consistent between calls.

Code: Select all

Total values written: 4784
Total values written: 6704
If you use 4x4 entities, there doesn't seem to be a problem, as BaseInstanceBatchVTF::updateVertexTexture is only called once. Perhaps there's something wrong with the batching code?

Code: Select all

Total values written: 4784
For instance, with the 25x25 entities, when all of them are in the view, I get:

Code: Select all

Total values written: 4784
Total values written: 4784
Total values written: 4784
Total values written: 4784
...
Total values written: 4784
Total values written: 4784
Total values written: 4784
Total values written: 7424
I'm not exactly sure what the changing size of floatsWritten implies, but I'll work on it tomorrow.
My Google summer of code 2011 topic: Dual Quaternion Skinning
My Google summer of code thread
My Google summer of code wiki page
mysterycoder
Google Summer of Code Student
Google Summer of Code Student
Posts: 169
Joined: Sat Dec 03, 2005 2:04 am
x 6

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by mysterycoder »

I've got it! :D

The last batch is always writing the wrong number of floats because it is a partially full batch. The problem lies in InstancedEntity::getTransforms3x4 (but also probably InstancedEntity::getTransforms). The code that writes the zeroed matrices for a non-visible or empty entity is this:

Code: Select all

else
{
	if( mSkeletonInstance )
		retVal = mSkeletonInstance->getNumBones() * 3 * 4;
	else
		retVal = 12;
	
	std::fill_n( xform, retVal, 0.0f );
}
But mSkeletonInstance->getNumBones() gives a bone count of 38, where it should be 23.
If this portion of the code is switched to use the indexToBone map to determine the number of matrices, the output is correct.

Code: Select all

else
{
	if( mSkeletonInstance )
		retVal = mBatchOwner->_getIndexToBoneMap()->size() * 3 * 4;
	else
		retVal = 12;
	
	std::fill_n( xform, retVal, 0.0f );
}
My Google summer of code 2011 topic: Dual Quaternion Skinning
My Google summer of code thread
My Google summer of code wiki page
mysterycoder
Google Summer of Code Student
Google Summer of Code Student
Posts: 169
Joined: Sat Dec 03, 2005 2:04 am
x 6

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by mysterycoder »

I fixed the issue with the shader based instancing.

The reason the 16th model was missing was that it was in a batch that was partially filled. The batches had 5 entities in each, so the 16th model was in it's own batch. The rest of the batch was filled with Matrix::ZERO, which the dual quaternion class is unable to decompose.

To fix this, I added Matrix::ZEROAFFINE, which is defined as:

Code: Select all

const Matrix4 Matrix4::ZEROAFFINE(
	0, 0, 0, 0,
	0, 0, 0, 0,
	0, 0, 0, 0,
	0, 0, 0, 1 );
By the way, thanks for finding these issues. I'm glad we were able to find and resolve them before the code was merged into the trunk.
My Google summer of code 2011 topic: Dual Quaternion Skinning
My Google summer of code thread
My Google summer of code wiki page
User avatar
Mattan Furst
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 260
Joined: Tue Jan 01, 2008 11:28 am
Location: Israel
x 32

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by Mattan Furst »

I leave you alone for 5 minutes... :D

Great job. I didn't work yesterday on the code. I had a last minute all night meeting.

I have a new model for the 2 weight instancing. It's the same as the previous model just resized to 100 meters and containing a "Walk" animation. I'll add it myself tonight.

If everything goes well I'll merge the code either today or Monday. probably Monday.
Attachments
spine100.zip
(228.37 KiB) Downloaded 306 times
it's turtles all the way down
User avatar
Mattan Furst
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 260
Joined: Tue Jan 01, 2008 11:28 am
Location: Israel
x 32

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by Mattan Furst »

Ok, I checked in the new spine.

Unfortunately I had to check it in with a bug. The model animation which rotates the spine passes the antipodality angle. so when running the dual quaternion sample with RTSS shaders the spine flips to the wrong position. I'll ask my art guy to fix it on Thursday (I'm not working tomorrow) and create a slightly better texture for the model to.
it's turtles all the way down
mysterycoder
Google Summer of Code Student
Google Summer of Code Student
Posts: 169
Joined: Sat Dec 03, 2005 2:04 am
x 6

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by mysterycoder »

Oh cool! That should work a lot better than the jaiqua model, thanks.
I saw that you fixed the decomposition of zero filled matrices, I'm surprised I wasn't seeing an issue with that even with Matrix4::ZEROAFFINE. Or maybe I just hadn't noticed a bunch of NaN/inf.

By the way, I have to submit a code sample to google soon. They are flexible about how the code can be submitted (single diff, multiple diffs, etc.), but they require that it doesn't include any changes after August 22nd. I don't know if you have experience with mercurial, but, do you have any tips on how to do it? I imagine that I could somehow get a list of all of the changesets in my particular fork that aren't in the main trunk, then filter the commits by date. Also, should I include your commits as well as mine?
My Google summer of code 2011 topic: Dual Quaternion Skinning
My Google summer of code thread
My Google summer of code wiki page
User avatar
Mattan Furst
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 260
Joined: Tue Jan 01, 2008 11:28 am
Location: Israel
x 32

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by Mattan Furst »

I have limited experience with mercurial. The best person to ask on this would be Assaf Raman. I'll talk to him.
it's turtles all the way down
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by Assaf Raman »

Here you go.
Watch out for my OGRE related tweets here.
mysterycoder
Google Summer of Code Student
Google Summer of Code Student
Posts: 169
Joined: Sat Dec 03, 2005 2:04 am
x 6

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by mysterycoder »

@Assaf Raman
Thank you! Just out of curiosity, would you mind sharing how you did it?
My Google summer of code 2011 topic: Dual Quaternion Skinning
My Google summer of code thread
My Google summer of code wiki page
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by Assaf Raman »

I opened up TortoiseHg workbench, selected all your commits one by one from the list (if you press control you add to the selection) - then right click, export.
Watch out for my OGRE related tweets here.
User avatar
Mattan Furst
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 260
Joined: Tue Jan 01, 2008 11:28 am
Location: Israel
x 32

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by Mattan Furst »

@mysterycoder

Ok. I've merged the code to the ogre trunk.

3 more things to note.
  • I didn't want to bother our art guy to do more work for the dual quaternion model (he has a lot of other work and he was doing it only as a favor to me anyway). I created my own simple texture and added it to the spine model. Feel free to remove it if you don't like it (or to tell me to remove it if you don't have permissions).
  • I hadn't noticed before merging that there was a problem with dual quaternion sample in openGL. The shadow appears to be stuck and in the wrong position and scale.
  • There also appears to be something wrong with the instancing shadow in openGL. Shadow is either drawn on half of the tile or on all of it without any connection to the displayed entities. However this is not a problem from the dual quaternion code as it appeared in the ogre trunk before I added the dual quaternion code to it. This might somehow be related to the second bullet.
I urge you to get the latest code from the trunk and look whether I missed something.
it's turtles all the way down
mysterycoder
Google Summer of Code Student
Google Summer of Code Student
Posts: 169
Joined: Sat Dec 03, 2005 2:04 am
x 6

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by mysterycoder »

Cool, thanks for merging it. :)

I hadn't noticed any shadow problems when developing it - especially in the dual quaternion sample - but I'll be sure to check it out tonight.
My Google summer of code 2011 topic: Dual Quaternion Skinning
My Google summer of code thread
My Google summer of code wiki page
mysterycoder
Google Summer of Code Student
Google Summer of Code Student
Posts: 169
Joined: Sat Dec 03, 2005 2:04 am
x 6

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by mysterycoder »

I have the same problem with the shadow that you have. :?
Also, if I turn off the Cg plugin, the skinning on the model is messed up too.

I did a diff with it against an older version that I have that works, but the relevant files, the shaders and materials, are virtually identical. The only difference is the texture you added and the removal of the specular and ambient terms from the material.

I'll keep investigating, but I'm not really sure what's going on. Maybe something broke elsewhere in Ogre?
My Google summer of code 2011 topic: Dual Quaternion Skinning
My Google summer of code thread
My Google summer of code wiki page
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5292
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1278
Contact:

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by dark_sylinc »

I've just updated to 1.8 since a looooong time. I'm just passing by.

Two things:
  • One of your changes was causing VTF and HW_VTF to crash if using a base mesh that wasn't skeletally animated since findElementBySemantic( VES_BLEND_WEIGHTS ) returned a null pointer. Fixed. Just wanted to remember you VTF != Skeletal animation present
  • I'm seeing a shadow flicker too, in NewInstancing sample, D3D9 & OGL; which wasn't present before. Don't know if it's DQS related. I haven't found anything has actually changed, which is weird. My own game which uses PSSM shadows + instancing works fine though (NewInstancing demo uses FocusedShadowMapping).
Cheers
Dark Sylinc
User avatar
masterfalcon
OGRE Team Member
OGRE Team Member
Posts: 4270
Joined: Sun Feb 25, 2007 4:56 am
Location: Bloomington, MN
x 126
Contact:

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by masterfalcon »

Just wanted to throw this out there. On OS X, the sample doesn't animate correctly. I see only a small portion at the top of the model twisting. I haven't had time to actually look into it but I'm going to post my log, hoping that someone might have some ideas.

Code: Select all

Creating resource group General
Creating resource group Internal
Creating resource group Autodetect
SceneManagerFactory for type 'DefaultSceneManager' registered.
Registering ResourceManager for type Material
Registering ResourceManager for type Mesh
Registering ResourceManager for type Skeleton
MovableObjectFactory for type 'ParticleSystem' registered.
OverlayElementFactory for type Panel registered.
OverlayElementFactory for type BorderPanel registered.
OverlayElementFactory for type TextArea registered.
Registering ResourceManager for type Font
ArchiveFactory for archive type FileSystem registered.
ArchiveFactory for archive type Zip registered.
ArchiveFactory for archive type EmbeddedZip registered.
DDS codec registering
FreeImage version: 3.14.1
This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,gif,hdr,g3,sgi,exr,j2k,j2c,jp2,pfm,pct,pict,pic,bay,bmq,cr2,crw,cs1,dc2,dcr,dng,erf,fff,hdr,k25,kdc,mdc,mos,mrw,nef,orf,pef,pxn,raf,raw,rdc,sr2,srf,arw,3fr,cine,ia,kc2,mef,nrw,qtk,rw2,sti,drf,dsc,ptx,cap,iiq,rwz
Registering ResourceManager for type HighLevelGpuProgram
Registering ResourceManager for type Compositor
MovableObjectFactory for type 'Entity' registered.
MovableObjectFactory for type 'Light' registered.
MovableObjectFactory for type 'BillboardSet' registered.
MovableObjectFactory for type 'ManualObject' registered.
MovableObjectFactory for type 'BillboardChain' registered.
MovableObjectFactory for type 'RibbonTrail' registered.
Loading library RenderSystem_GL
Installing plugin: GL RenderSystem
OpenGL Rendering Subsystem created.
Plugin successfully installed
Loading library Plugin_ParticleFX
Installing plugin: ParticleFX
Particle Emitter Type 'Point' registered
Particle Emitter Type 'Box' registered
Particle Emitter Type 'Ellipsoid' registered
Particle Emitter Type 'Cylinder' registered
Particle Emitter Type 'Ring' registered
Particle Emitter Type 'HollowEllipsoid' registered
Particle Affector Type 'LinearForce' registered
Particle Affector Type 'ColourFader' registered
Particle Affector Type 'ColourFader2' registered
Particle Affector Type 'ColourImage' registered
Particle Affector Type 'ColourInterpolator' registered
Particle Affector Type 'Scaler' registered
Particle Affector Type 'Rotator' registered
Particle Affector Type 'DirectionRandomiser' registered
Particle Affector Type 'DeflectorPlane' registered
Plugin successfully installed
Loading library Plugin_BSPSceneManager
Installing plugin: BSP Scene Manager
Plugin successfully installed
Loading library Plugin_CgProgramManager
Installing plugin: Cg Program Manager
Plugin successfully installed
Loading library Plugin_PCZSceneManager
Installing plugin: Portal Connected Zone Scene Manager
PCZone Factory Type 'ZoneType_Default' registered
Plugin successfully installed
Loading library Plugin_OctreeZone
Installing plugin: Octree Zone Factory
Plugin successfully installed
Loading library Plugin_OctreeSceneManager
Installing plugin: Octree Scene Manager
Plugin successfully installed
*-*-* OGRE Initialising
*-*-* Version 1.8.0unstable (Byatis)
CPU Identifier & Features
-------------------------
 *   CPU ID: GenuineIntel: Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
 *      SSE: yes
 *     SSE2: yes
 *     SSE3: yes
 *      MMX: yes
 *   MMXEXT: yes
 *    3DNOW: no
 * 3DNOWEXT: no
 *     CMOV: yes
 *      TSC: yes
 *      FPU: yes
 *      PRO: yes
 *       HT: no
-------------------------
********************************************
***  Starting Mac OS X OpenGL Subsystem  ***
********************************************
GLRenderSystem::_createRenderWindow "OGRE Sample Browser", 800x600 windowed  miscParams: FSAA=0 gamma=No hidden=No macAPI=cocoa title=OGRE Sample Browser vsync=No 
Creating a Cocoa Compatible Render System
GL_VERSION = 2.1 ATI-7.12.9
GL_VENDOR = ATI Technologies Inc.
GL_RENDERER = AMD Radeon HD 6970M OpenGL Engine
GL_EXTENSIONS = GL_ARB_color_buffer_float GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_draw_buffers GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_instanced_arrays GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_provoking_vertex GL_ARB_seamless_cube_map GL_ARB_shader_objects GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shadow GL_ARB_shadow_ambient GL_ARB_sync GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map 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_mirrored_repeat GL_ARB_texture_non_power_of_two GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_transpose_matrix GL_ARB_vertex_array_bgra GL_ARB_vertex_blend GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_window_pos 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_clip_volume_hint GL_EXT_draw_buffers2 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_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_provoking_vertex GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture_array GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_s3tc GL_EXT_texture_env_add GL_EXT_texture_filter_anisotropic GL_EXT_texture_integer GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_rectangle GL_EXT_texture_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_timer_query GL_EXT_transform_feedback GL_EXT_vertex_array_bgra GL_APPLE_aux_depth_stencil GL_APPLE_client_storage GL_APPLE_element_array GL_APPLE_fence GL_APPLE_float_pixels GL_APPLE_flush_buffer_range GL_APPLE_flush_render GL_APPLE_object_purgeable GL_APPLE_packed_pixels GL_APPLE_pixel_buffer GL_APPLE_rgb_422 GL_APPLE_row_bytes GL_APPLE_specular_vector GL_APPLE_texture_range GL_APPLE_transform_hint GL_APPLE_vertex_array_object GL_APPLE_vertex_array_range GL_APPLE_vertex_point_size GL_APPLE_vertex_program_evaluators GL_APPLE_ycbcr_422 GL_ATI_blend_equation_separate GL_ATI_blend_weighted_minmax GL_ATI_separate_stencil GL_ATI_texture_compression_3dc GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_ATI_texture_mirror_once GL_IBM_rasterpos_clip GL_NV_blend_square GL_NV_conditional_render GL_NV_depth_clamp GL_NV_fog_distance GL_NV_light_max_exponent GL_NV_texgen_reflection GL_SGI_color_matrix GL_SGIS_generate_mipmap GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod 
***************************
*** GL Renderer Started ***
***************************
Registering ResourceManager for type GpuProgram
GLSL support detected
GL: Using GL_EXT_framebuffer_object for rendering to textures (best)
FBO PF_UNKNOWN depth/stencil support: D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
FBO PF_R5G6B5 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
FBO PF_B5G6R5 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
FBO PF_A4R4G4B4 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
FBO PF_A1R5G5B5 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
FBO PF_R8G8B8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
FBO PF_B8G8R8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
FBO PF_A8R8G8B8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
FBO PF_B8G8R8A8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
FBO PF_A2R10G10B10 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
FBO PF_A2B10G10R10 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
FBO PF_FLOAT16_RGB depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
FBO PF_FLOAT16_RGBA depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
FBO PF_FLOAT32_RGB depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
FBO PF_FLOAT32_RGBA depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
FBO PF_X8R8G8B8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
FBO PF_X8B8G8R8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
FBO PF_SHORT_RGBA depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
FBO PF_R3G3B2 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
FBO PF_SHORT_RGB depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
[GL] : Valid FBO targets PF_UNKNOWN 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_SHORT_RGB 
RenderSystem capabilities
-------------------------
RenderSystem Name: OpenGL Rendering Subsystem
GPU Vendor: ati
Device Name: AMD Radeon HD 6970M OpenGL Engine
Driver Version: 2.1.0.0
 * Fixed function pipeline: yes
 * Hardware generation of mipmaps: no
 * Texture blending: yes
 * Anisotropic texture filtering: yes
 * Dot product texture operation: yes
 * Cube mapping: yes
 * Hardware stencil buffer: yes
   - Stencil depth: 8
   - Two sided stencil support: yes
   - Wrap stencil values: yes
 * Hardware vertex / index buffers: yes
 * Vertex programs: yes
 * Number of floating-point constants for vertex programs: 1024
 * Number of integer constants for vertex programs: 0
 * Number of boolean constants for vertex programs: 0
 * Fragment programs: yes
 * Number of floating-point constants for fragment programs: 1024
 * Number of integer constants for fragment programs: 0
 * Number of boolean constants for fragment programs: 0
 * Geometry programs: yes
 * Number of floating-point constants for geometry programs: 4096
 * Number of integer constants for geometry programs: 0
 * Number of boolean constants for geometry programs: 0
 * Supported Shader Profiles: arbfp1 arbvp1 glsl gp4gp gpu_gp nvgp4
 * Texture Compression: yes
   - DXT: yes
   - VTC: no
   - PVRTC: no
 * Scissor Rectangle: yes
 * Hardware Occlusion Query: yes
 * User clip planes: yes
 * VET_UBYTE4 vertex element type: yes
 * Infinite far plane projection: yes
 * Hardware render-to-texture: yes
 * Floating point textures: yes
 * Non-power-of-two textures: yes
 * Volume textures: yes
 * Multiple Render Targets: 8
   - With different bit depths: yes
 * Point Sprites: yes
 * Extended point parameters: yes
 * Max Point Size: 64
 * Vertex texture fetch: yes
 * Number of world matrices: 0
 * Number of texture units: 16
 * Stencil buffer depth: 8
 * Number of vertex blend matrices: 0
   - Max vertex textures: 16
   - Vertex textures shared: yes
 * Render to Vertex Buffer : no
 * GL 1.5 without VBO workaround: no
 * Frame Buffer objects: yes
 * Frame Buffer objects (ARB extension): no
 * Frame Buffer objects (ATI extension): no
 * PBuffer support: yes
 * GL 1.5 without HW-occlusion workaround: no
 * Separate shader objects: no
Registering ResourceManager for type Texture
DefaultWorkQueue('Root') initialising on thread 0x103b15360.
DefaultWorkQueue('Root')::WorkerFunc - thread 0x103d0d010 starting.
DefaultWorkQueue('Root')::WorkerFunc - thread 0x103d18720 starting.
DefaultWorkQueue('Root')::WorkerFunc - thread 0x103d19510 starting.
DefaultWorkQueue('Root')::WorkerFunc - thread 0x103d0d200 starting.
DefaultWorkQueue('Root')::WorkerFunc - thread 0x103d18910 starting.
DefaultWorkQueue('Root')::WorkerFunc - thread 0x103d19130 starting.
DefaultWorkQueue('Root')::WorkerFunc - thread 0x103d19320 starting.
DefaultWorkQueue('Root')::WorkerFunc - thread 0x103d18530 starting.
Particle Renderer Type 'billboard' registered
SceneManagerFactory for type 'BspSceneManager' registered.
Registering ResourceManager for type BspLevel
SceneManagerFactory for type 'PCZSceneManager' registered.
MovableObjectFactory for type 'PCZLight' registered.
MovableObjectFactory for type 'Portal' registered.
MovableObjectFactory for type 'AntiPortal' registered.
PCZone Factory Type 'ZoneType_Octree' registered
SceneManagerFactory for type 'OctreeSceneManager' registered.
Creating resource group Essential
Added resource location '/Users/davidrogers/Documents/Ogre/ogre-v1-8/Samples/Media/thumbnails' of type 'FileSystem' to resource group 'Essential'
Added resource location '/Users/davidrogers/Documents/Ogre/ogre-v1-8/Samples/Media/packs/SdkTrays.zip' of type 'Zip' to resource group 'Essential'
Added resource location '/Users/davidrogers/Documents/Ogre/ogre-v1-8/Samples/Media' of type 'FileSystem' to resource group 'General'
Creating resource group Popular
Added resource location '/Users/davidrogers/Documents/Ogre/ogre-v1-8/Samples/Media/fonts' of type 'FileSystem' to resource group 'Popular'
Added resource location '/Users/davidrogers/Documents/Ogre/ogre-v1-8/Samples/Media/materials/programs' of type 'FileSystem' to resource group 'Popular'
Added resource location '/Users/davidrogers/Documents/Ogre/ogre-v1-8/Samples/Media/materials/scripts' of type 'FileSystem' to resource group 'Popular'
Added resource location '/Users/davidrogers/Documents/Ogre/ogre-v1-8/Samples/Media/materials/textures' of type 'FileSystem' to resource group 'Popular'
Added resource location '/Users/davidrogers/Documents/Ogre/ogre-v1-8/Samples/Media/materials/textures/nvidia' of type 'FileSystem' to resource group 'Popular'
Added resource location '/Users/davidrogers/Documents/Ogre/ogre-v1-8/Samples/Media/models' of type 'FileSystem' to resource group 'Popular'
Added resource location '/Users/davidrogers/Documents/Ogre/ogre-v1-8/Samples/Media/particle' of type 'FileSystem' to resource group 'Popular'
Added resource location '/Users/davidrogers/Documents/Ogre/ogre-v1-8/Samples/Media/DeferredShadingMedia' of type 'FileSystem' to resource group 'Popular'
Added resource location '/Users/davidrogers/Documents/Ogre/ogre-v1-8/Samples/Media/PCZAppMedia' of type 'FileSystem' to resource group 'Popular'
Added resource location '/Users/davidrogers/Documents/Ogre/ogre-v1-8/Samples/Media/RTShaderLib' of type 'FileSystem' to resource group 'Popular'
Added resource location '/Users/davidrogers/Documents/Ogre/ogre-v1-8/Samples/Media/RTShaderLib/materials' of type 'FileSystem' to resource group 'Popular'
Added resource location '/Users/davidrogers/Documents/Ogre/ogre-v1-8/Samples/Media/packs/cubemap.zip' of type 'Zip' to resource group 'Popular'
Added resource location '/Users/davidrogers/Documents/Ogre/ogre-v1-8/Samples/Media/packs/cubemapsJS.zip' of type 'Zip' to resource group 'Popular'
Added resource location '/Users/davidrogers/Documents/Ogre/ogre-v1-8/Samples/Media/packs/dragon.zip' of type 'Zip' to resource group 'Popular'
Added resource location '/Users/davidrogers/Documents/Ogre/ogre-v1-8/Samples/Media/packs/fresneldemo.zip' of type 'Zip' to resource group 'Popular'
Added resource location '/Users/davidrogers/Documents/Ogre/ogre-v1-8/Samples/Media/packs/ogretestmap.zip' of type 'Zip' to resource group 'Popular'
Added resource location '/Users/davidrogers/Documents/Ogre/ogre-v1-8/Samples/Media/packs/ogredance.zip' of type 'Zip' to resource group 'Popular'
Added resource location '/Users/davidrogers/Documents/Ogre/ogre-v1-8/Samples/Media/packs/Sinbad.zip' of type 'Zip' to resource group 'Popular'
Added resource location '/Users/davidrogers/Documents/Ogre/ogre-v1-8/Samples/Media/packs/skybox.zip' of type 'Zip' to resource group 'Popular'
Creating resource group Tests
Added resource location '/Users/davidrogers/Documents/Ogre/ogre-v1-8/Samples/Media/../../Tests/Media' of type 'FileSystem' to resource group 'Tests'
Initialising resource group Essential
Parsing scripts for resource group Essential
Parsing script SdkTrays.material
Parsing script SdkTrays.fontdef
Parsing script SdkTrays.overlay
Texture: sdk_cursor.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
Texture: sdk_tray.png: Loading 1 faces(PF_A8R8G8B8,64x64x1) with 6 generated mipmaps from Image. Internal format is PF_A8R8G8B8,64x64x1.
Texture: sdk_button_up.png: Loading 1 faces(PF_A8R8G8B8,128x32x1) with 7 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x32x1.
Texture: sdk_text_box.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
Texture: sdk_mini_tray.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
Texture: sdk_track.png: Loading 1 faces(PF_A8R8G8B8,16x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,16x32x1.
Texture: sdk_handle.png: Loading 1 faces(PF_A8R8G8B8,16x16x1) with 4 generated mipmaps from Image. Internal format is PF_A8R8G8B8,16x16x1.
Texture: sdk_mini_text_box.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
Texture: sdk_label.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
Texture: sdk_separator.png: Loading 1 faces(PF_A8R8G8B8,64x16x1) with 6 generated mipmaps from Image. Internal format is PF_A8R8G8B8,64x16x1.
Texture: sdk_logo.png: Loading 1 faces(PF_A8R8G8B8,128x64x1) with 7 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x64x1.
Texture: sdk_shade.png: Loading 1 faces(PF_A8R8G8B8,64x48x1) with 6 generated mipmaps from Image. Internal format is PF_A8R8G8B8,64x48x1.
Texture: sdk_frame.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
Texture: sdk_mini_text_box_over.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
Texture: sdk_pulse.png: Loading 1 faces(PF_R8G8B8,8x1x1) with 3 generated mipmaps from Image. Internal format is PF_X8R8G8B8,8x1x1.
Finished parsing scripts for resource group Essential
Creating resources for group Essential
All done
Texture: sdk_bands.png: Loading 1 faces(PF_A8R8G8B8,2x32x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,2x32x1.
Initialising resource group Popular
Parsing scripts for resource group Popular
Font SdkTrays/Caption using texture size 512x256
Info: Freetype returned null for character 160 in font SdkTrays/Caption
Texture: SdkTrays/CaptionTexture: Loading 1 faces(PF_BYTE_LA,512x256x1) with 0 generated mipmaps from Image. Internal format is PF_BYTE_LA,512x256x1.
Font SdkTrays/Value using texture size 512x256
Info: Freetype returned null for character 127 in font SdkTrays/Value
Info: Freetype returned null for character 128 in font SdkTrays/Value
Info: Freetype returned null for character 129 in font SdkTrays/Value
Info: Freetype returned null for character 130 in font SdkTrays/Value
Info: Freetype returned null for character 131 in font SdkTrays/Value
Info: Freetype returned null for character 132 in font SdkTrays/Value
Info: Freetype returned null for character 133 in font SdkTrays/Value
Info: Freetype returned null for character 134 in font SdkTrays/Value
Info: Freetype returned null for character 135 in font SdkTrays/Value
Info: Freetype returned null for character 136 in font SdkTrays/Value
Info: Freetype returned null for character 137 in font SdkTrays/Value
Info: Freetype returned null for character 138 in font SdkTrays/Value
Info: Freetype returned null for character 139 in font SdkTrays/Value
Info: Freetype returned null for character 140 in font SdkTrays/Value
Info: Freetype returned null for character 141 in font SdkTrays/Value
Info: Freetype returned null for character 142 in font SdkTrays/Value
Info: Freetype returned null for character 143 in font SdkTrays/Value
Info: Freetype returned null for character 144 in font SdkTrays/Value
Info: Freetype returned null for character 145 in font SdkTrays/Value
Info: Freetype returned null for character 146 in font SdkTrays/Value
Info: Freetype returned null for character 147 in font SdkTrays/Value
Info: Freetype returned null for character 148 in font SdkTrays/Value
Info: Freetype returned null for character 149 in font SdkTrays/Value
Info: Freetype returned null for character 150 in font SdkTrays/Value
Info: Freetype returned null for character 151 in font SdkTrays/Value
Info: Freetype returned null for character 152 in font SdkTrays/Value
Info: Freetype returned null for character 153 in font SdkTrays/Value
Info: Freetype returned null for character 154 in font SdkTrays/Value
Info: Freetype returned null for character 155 in font SdkTrays/Value
Info: Freetype returned null for character 156 in font SdkTrays/Value
Info: Freetype returned null for character 157 in font SdkTrays/Value
Info: Freetype returned null for character 158 in font SdkTrays/Value
Info: Freetype returned null for character 159 in font SdkTrays/Value
Info: Freetype returned null for character 160 in font SdkTrays/Value
Texture: SdkTrays/ValueTexture: Loading 1 faces(PF_BYTE_LA,512x256x1) with 0 generated mipmaps from Image. Internal format is PF_BYTE_LA,512x256x1.
Parsing script Instancing.program
Parsing script DualQuaternion.program
Compiler error: invalid parameters in DualQuaternion.program(99): setting of constant failed
Compiler error: invalid parameters in DualQuaternion.program(132): setting of constant failed
Parsing script Examples.program
Parsing script StdQuad_vp.program
Parsing script deferred_post.program
Parsing script ShadowCaster.program
Parsing script ASCII.material
Parsing script ASMSwizzle.material
Parsing script BlackAndWhite.material
Parsing script Bloom.material
Parsing script Bloom2.material
Parsing script CGSwizzle.material
Parsing script CompositorDemo.material
Parsing script DepthShadowmap.material
Parsing script Dither.material
Parsing script DOF.material
Parsing script DualQuaternion.material
Parsing script Embossed.material
Parsing script Example-Water.material
Parsing script Examples-Advanced.material
Compiler error: object unsupported by render system in Examples-Advanced.material(526)
Compiler error: object unsupported by render system in Examples-Advanced.material(771)
Parsing script Examples-DynTex.material
Parsing script Examples-Water.material
Parsing script Examples.material
Parsing script facial.material
Parsing script Glass.material
Parsing script GLSLSwizzle.material
Parsing script Halftone.material
Parsing script hdr.material
Parsing script HeatVision.material
Parsing script Hurt.material
Parsing script HW_VTF_LUTInstancing.material
Parsing script HW_VTFInstancing.material
Parsing script HWInstancing.material
Parsing script instancing.material
Parsing script InstancingMisc.material
Parsing script Invert.material
Parsing script IsoSurf.material
Problem parsing the following Cg Uniform: '@TMP29' in file Ogre/IsoSurf/TessellateTetrahedraGS_CG
Parsing script Laplace.material
Parsing script MotionBlur.material
Parsing script MRTtest.material
Parsing script NightVision.material
Parsing script Ocean.material
Parsing script OffsetMapping.material
Compiler error: object unsupported by render system in OffsetMapping.material(35)
Parsing script Ogre.material
Parsing script OldMovie.material
Parsing script OldTV.material
Parsing script ParticleGS.material
Parsing script Penguin.material
Parsing script Posterize.material
Parsing script pssm.material
Parsing script RadialBlur.material
Parsing script RZR-002.material
Parsing script ShaderInstancing.material
Parsing script ShaderSystem.material
Parsing script shadows.material
Parsing script SharpenEdges.material
Parsing script sibenik.material
Parsing script smoke.material
Parsing script Tiling.material
Parsing script VarianceShadowmap.material
Parsing script VTFInstancing.material
Parsing script deferred_post.material
Parsing script deferred_post_minilight.material
Parsing script deferreddemo.material
Parsing script ShadowCaster.material
Parsing script ssao.material
Parsing script ROOM.material
Parsing script DualQuaternionSkinning_Shadow.material
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.
(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 /Users/davidrogers/Documents/Ogre/ogre-v1-8/PlugIns/CgProgramManager/src/OgreCgProgramManagerDll.cpp (line 67)
Compiler error: invalid parameters in DualQuaternionSkinning_Shadow.material(208): setting of constant failed
Compiler error: invalid parameters in DualQuaternionSkinning_Shadow.material(209): setting of constant failed
Compiler error: invalid parameters in DualQuaternionSkinning_Shadow.material(210): setting of constant failed
Compiler error: invalid parameters in DualQuaternionSkinning_Shadow.material(211): setting of constant failed
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.
(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 /Users/davidrogers/Documents/Ogre/ogre-v1-8/PlugIns/CgProgramManager/src/OgreCgProgramManagerDll.cpp (line 67)
Compiler error: invalid parameters in DualQuaternionSkinning_Shadow.material(225): setting of constant failed
Compiler error: invalid parameters in DualQuaternionSkinning_Shadow.material(226): setting of constant failed
Compiler error: invalid parameters in DualQuaternionSkinning_Shadow.material(227): setting of constant failed
Compiler error: invalid parameters in DualQuaternionSkinning_Shadow.material(228): setting of constant failed
Parsing script HardwareSkinningShadow.material
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.
(21) : warning C7019: "blendWgt" is too large for semantic "BLENDWEIGHT", which is size 1
(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(23) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
 in CgProgram::compileMicrocode at /Users/davidrogers/Documents/Ogre/ogre-v1-8/PlugIns/CgProgramManager/src/OgreCgProgramManagerDll.cpp (line 67)
Compiler error: invalid parameters in HardwareSkinningShadow.material(29): setting of constant failed
Compiler error: invalid parameters in HardwareSkinningShadow.material(30): setting of constant failed
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.
(41) : warning C7019: "blendWgt" is too large for semantic "BLENDWEIGHT", which is size 1
(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(44) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
 in CgProgram::compileMicrocode at /Users/davidrogers/Documents/Ogre/ogre-v1-8/PlugIns/CgProgramManager/src/OgreCgProgramManagerDll.cpp (line 67)
Compiler error: invalid parameters in HardwareSkinningShadow.material(43): setting of constant failed
Compiler error: invalid parameters in HardwareSkinningShadow.material(44): setting of constant failed
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.
(64) : warning C7019: "blendWgt" is too large for semantic "BLENDWEIGHT", which is size 1
(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(67) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
 in CgProgram::compileMicrocode at /Users/davidrogers/Documents/Ogre/ogre-v1-8/PlugIns/CgProgramManager/src/OgreCgProgramManagerDll.cpp (line 67)
Compiler error: invalid parameters in HardwareSkinningShadow.material(57): setting of constant failed
Compiler error: invalid parameters in HardwareSkinningShadow.material(58): setting of constant failed
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.
(88) : warning C7019: "blendWgt" is too large for semantic "BLENDWEIGHT", which is size 1
(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
(91) : error C5041: cannot locate suitable resource to bind parameter "<null atom>"
 in CgProgram::compileMicrocode at /Users/davidrogers/Documents/Ogre/ogre-v1-8/PlugIns/CgProgramManager/src/OgreCgProgramManagerDll.cpp (line 67)
Compiler error: invalid parameters in HardwareSkinningShadow.material(72): setting of constant failed
Compiler error: invalid parameters in HardwareSkinningShadow.material(73): setting of constant failed
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 /Users/davidrogers/Documents/Ogre/ogre-v1-8/PlugIns/CgProgramManager/src/OgreCgProgramManagerDll.cpp (line 67)
Compiler error: invalid parameters in HardwareSkinningShadow.material(211): setting of constant failed
Compiler error: invalid parameters in HardwareSkinningShadow.material(212): setting of constant failed
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 /Users/davidrogers/Documents/Ogre/ogre-v1-8/PlugIns/CgProgramManager/src/OgreCgProgramManagerDll.cpp (line 67)
Compiler error: invalid parameters in HardwareSkinningShadow.material(224): setting of constant failed
Parsing script RTShaderSystem.material
Parsing script RomanBath.material
Parsing script Sinbad.material
Parsing script emitted_emitter.particle
Parsing script Examples-Water.particle
Parsing script Examples.particle
Parsing script smoke.particle
Parsing script Examples.compositor
Parsing script deferred.compositor
Parsing script ssao.compositor
Parsing script sample.fontdef
Finished parsing scripts for resource group Popular
Creating resources for group Popular
All done
Loading library Sample_BezierPatch
Installing plugin: Bezier Patch Sample
Plugin successfully installed
Loading library Sample_BSP
Installing plugin: BSP Sample
Plugin successfully installed
Loading library Sample_CameraTrack
Installing plugin: Camera Tracking Sample
Plugin successfully installed
Loading library Sample_CelShading
Installing plugin: Cel-shading Sample
Plugin successfully installed
Loading library Sample_Character
Installing plugin: Character Sample
Plugin successfully installed
Loading library Sample_Compositor
Installing plugin: Compositor Sample
Plugin successfully installed
Loading library Sample_CubeMapping
Installing plugin: Cube Mapping Sample
Plugin successfully installed
Loading library Sample_DeferredShading
Installing plugin: Deferred Shading Sample
Plugin successfully installed
Loading library Sample_Dot3Bump
Installing plugin: Bump Mapping Sample
Plugin successfully installed
Loading library Sample_DynTex
Installing plugin: Dynamic Texturing Sample
Plugin successfully installed
Loading library Sample_DualQuaternion
Installing plugin: Dual Quaternion Skinning Sample
Plugin successfully installed
Loading library Sample_FacialAnimation
Installing plugin: Facial Animation Sample
Plugin successfully installed
Loading library Sample_Fresnel
Installing plugin: Fresnel Sample
Plugin successfully installed
Loading library Sample_Grass
Installing plugin: Grass Sample
Plugin successfully installed
Loading library Sample_Instancing
Installing plugin: Instancing Sample
Plugin successfully installed
Loading library Sample_Isosurf
Installing plugin: Isosurf Sample
Plugin successfully installed
Loading library Sample_Lighting
Installing plugin: Lighting Sample
Plugin successfully installed
Loading library Sample_NewInstancing
Installing plugin: New Instancing Sample
Plugin successfully installed
Loading library Sample_Ocean
Installing plugin: Ocean Sample
Plugin successfully installed
Loading library Sample_ParticleGS
Installing plugin: Particle Effects (GPU) Sample
Plugin successfully installed
Loading library Sample_ParticleFX
Installing plugin: Particle Effects Sample
Plugin successfully installed
Loading library Sample_ShaderSystem
Installing plugin: Shader System Sample
Plugin successfully installed
Loading library Sample_Shadows
Installing plugin: Shadows Sample
Plugin successfully installed
Loading library Sample_SkeletalAnimation
Installing plugin: Skeletal Animation Sample
Plugin successfully installed
Loading library Sample_SkyBox
Installing plugin: Sky Box Sample
Plugin successfully installed
Loading library Sample_SkyDome
Installing plugin: Sky Dome Sample
Plugin successfully installed
Loading library Sample_SkyPlane
Installing plugin: Sky Plane Sample
Plugin successfully installed
Loading library Sample_Smoke
Installing plugin: Smoke Sample
Plugin successfully installed
Loading library Sample_SphereMapping
Installing plugin: Sphere Mapping Sample
Plugin successfully installed
Loading library Sample_Terrain
Installing plugin: Terrain Sample
Plugin successfully installed
Loading library Sample_TextureArray
Installing plugin: Texture Array Sample
Plugin successfully installed
Loading library Sample_TextureFX
Installing plugin: Texture Effects Sample
Plugin successfully installed
Loading library Sample_Transparency
Installing plugin: Transparency Sample
Plugin successfully installed
Loading library Sample_VolumeTex
Installing plugin: Volume Textures Sample
Plugin successfully installed
Loading library Sample_Water
Installing plugin: Water Sample
Plugin successfully installed
Texture: thumb_bsp.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_bezier.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_bump.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_camtrack.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_cel.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_char.png: Loading 1 faces(PF_R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_X8R8G8B8,128x128x1.
Texture: thumb_comp.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_cubemap.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_deferred.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_dualquaternionskinning.png: Loading 1 faces(PF_R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_X8R8G8B8,128x128x1.
Texture: thumb_dyntex.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_facial.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_fresnel.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_grass.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_instancing.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_isosurf.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_lighting.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_newinstancing.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_ocean.png: Loading 1 faces(PF_R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_X8R8G8B8,128x128x1.
Texture: thumb_particles.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_particlegs.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_shadersystem.png: Loading 1 faces(PF_R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_X8R8G8B8,128x128x1.
Texture: thumb_shadows.png: Loading 1 faces(PF_R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_X8R8G8B8,128x128x1.
Texture: thumb_skelanim.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_skybox.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_skydome.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_skyplane.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_smoke.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_spheremap.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_terrain.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_texarray.png: Loading 1 faces(PF_R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_X8R8G8B8,128x128x1.
Texture: thumb_texfx.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_trans.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_voltex.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: thumb_water.png: Loading 1 faces(PF_A8R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x128x1.
Texture: flare.png: Loading 1 faces(PF_R8G8B8,256x256x1) with 5 generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
Texture: rockwall.tga: Loading 1 faces(PF_R8G8B8,256x256x1) with 5 generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
Mesh: Loading spine.mesh.
Skeleton: Loading spine.mesh.skeleton
WARNING: spine.mesh is an older format ([MeshSerializer_v1.40]); you should upgrade it as soon as possible using the OgreMeshUpgrade tool.
Can't assign material spine/01 - Default to SubEntity of Spine because this Material does not exist. Have you forgotten to define it in a .material script?
Texture: circuit.dds: Loading 1 faces(PF_DXT5,256x256x1) with 5 generated mipmaps from Image. Internal format is PF_DXT5,256x256x1.
Can't assign material spine/01 - Default to SubEntity of SpineDQ because this Material does not exist. Have you forgotten to define it in a .material script?
Texture: spot_shadow_fade.png: Loading 1 faces(PF_R8G8B8,128x128x1) with 5 generated mipmaps from Image. Internal format is PF_X8R8G8B8,128x128x1.
GLSL compiling: Ogre/DualQuaternionHardwareSkinningTwoWeightsTwoPhaseGLSLERROR: 0:10: Swizzle of non-vector primitive mat3
ERROR: 0:10: Swizzle of non-vector primitive mat3
ERROR: 0:10: Swizzle of non-vector primitive mat3
ERROR: 0:10: Swizzle of non-vector primitive mat3
ERROR: 0:10: Swizzle of non-vector primitive mat3
ERROR: 0:11: Swizzle of non-vector primitive mat3
ERROR: 0:11: Swizzle of non-vector primitive mat3
ERROR: 0:11: Swizzle of non-vector primitive mat3
ERROR: 0:11: Swizzle of non-vector primitive mat3
ERROR: 0:11: Swizzle of non-vector primitive mat3
ERROR: 0:12: Swizzle of non-vector primitive mat3
ERROR: 0:12: Swizzle of non-vector primitive mat3
ERROR: 0:12: Swizzle of non-vector primitive mat3
ERROR: 0:12: Swizzle of non-vector primitive mat3
ERROR: 0:12: Swizzle of non-vector primitive mat3
ERROR: 0:14: Swizzle of non-vector primitive mat3
ERROR: 0:14: Swizzle of non-vector primitive mat3
ERROR: 0:14: Swizzle of non-vector primitive mat3
ERROR: 0:14: Swizzle of non-vector primitive mat3
ERROR: 0:14: Swizzle of non-vector primitive mat3
ERROR: 0:15: Swizzle of non-vector primitive mat3
ERROR: 0:15: Swizzle of non-vector primitive mat3
ERROR: 0:15: Swizzle of non-vector primitive mat3
ERROR: 0:15: Swizzle of non-vector primitive mat3
ERROR: 0:15: Swizzle of non-vector primitive mat3
ERROR: 0:16: Swizzle of non-vector primitive mat3
ERROR: 0:16: Swizzle of non-vector primitive mat3
ERROR: 0:16: Swizzle of non-vector primitive mat3
ERROR: 0:16: Swizzle of non-vector primitive mat3
ERROR: 0:16: Swizzle of non-vector primitive mat3
ERROR: 0:18: Swizzle of non-vector primitive mat3
ERROR: 0:18: Swizzle of non-vector primitive mat3
ERROR: 0:18: Swizzle of non-vector primitive mat3
ERROR: 0:18: Swizzle of non-vector primitive mat3
ERROR: 0:18: Swizzle of non-vector primitive mat3
ERROR: 0:19: Swizzle of non-vector primitive mat3
ERROR: 0:19: Swizzle of non-vector primitive mat3
ERROR: 0:19: Swizzle of non-vector primitive mat3
ERROR: 0:19: Swizzle of non-vector primitive mat3
ERROR: 0:19: Swizzle of non-vector primitive mat3
ERROR: 0:20: Swizzle of non-vector primitive mat3
ERROR: 0:20: Swizzle of non-vector primitive mat3
ERROR: 0:20: Swizzle of non-vector primitive mat3
ERROR: 0:20: Swizzle of non-vector primitive mat3
ERROR: 0:20: Swizzle of non-vector primitive mat3
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5292
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1278
Contact:

Re: [GSoC 2011 - Accepted] Dual Quaternion Skinning

Post by dark_sylinc »

Function "adjointTransposeMatrix" defined in DualQuaternion_TwoPhase.glsl uses "atM._m00" to access a matrix.
IIRC this isn't valid GLSL syntax.

AFAIK the right way to access matrix elements is by using it as if it were an array.
atM[0][0] instead of atM._m00
Looks like a copy-paste error from Cg

Edit: I wouldn't be surprised if this works in GL NVIDIA cards because their GLSL parser is based on their Cg code, and this is valid Cg syntax, but not GLSL, but NVIDIA drivers are a bit permissive on this...
Post Reply