I wanted to let all of you know that I merged the Geometry shader GSoC code base into the 1.6 branch.
This means that in the next stable releases, geometry shaders and render to vertex buffer will be supported in ogre!
However, there are some things that still need to be done
- Build environments. I used VS 2005 for my development, so the VC8 solution and projects are ready. There are still VC7.1, linux and Mac OSX build environments that need to be updated. I currently don't have access to any of them. Build system maintainers - can you please do this?
- Documentation. The code is properly documented, but the Ogre manual doesn't contain any information about the new features. I will do this in the coming days.
- Minor bugs. There are two problems that I know of.
1) Script parsing problem with unsupported ASM shaders. The following material definition will crash Ogre when loaded with the D3D9 rendersystem :
Code: Select all
geometry_program Ogre/GPTest/Swizzle_GP_ASM asm
{
source Swizzle.gp
syntax nvgp4
}
material Ogre/GPTest/SwizzleASM
{
technique
{
pass SwizzleASMPass
{
geometry_program_ref Ogre/GPTest/Swizzle_GP_ASM
{
}
}
}
}
I think the expected behaviour should be that the material should not have any unsupported techniques. For this to happen, the program object needs to be created, but to flag itself as not supported.
In order to work around this, I currently did not add the ASM version of the swizzle test (the material that I attached to this post), as it is an internal playpen test, and GLSL and CG are enough (and the script compiler behaves differently with them, so they don't have this issue).
2) GL render system has some internal errors. I added some flushing glGetError calls so that the log won't have an additional invalid operation record each frame. I intend to research into this a bit and solve it (hopefully).
So, for all of you that use the 1.6 branch, please contact me in this thread or directly (PMs are fine) if you updated and are having problems. For general questions about the project, please use the GSoC project thread
Thanks!