Skip to content

Instantly share code, notes, and snippets.

@wngreene
Created March 24, 2017 15:49
Show Gist options
  • Save wngreene/2f2792cba4b833f9b07d58e5904e718e to your computer and use it in GitHub Desktop.
Save wngreene/2f2792cba4b833f9b07d58e5904e718e to your computer and use it in GitHub Desktop.
How to manually load shaders in Ogre. Copied from http://www.ogre3d.org/forums/viewtopic.php?f=2&t=73197
Ogre::HighLevelGpuProgramPtr vertex = Ogre::HighLevelGpuProgramManager::getSingletonPtr()->createProgram( "basicVS", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, "glsl", Ogre::GpuProgramType::GPT_VERTEX_PROGRAM);
vertex->setSourceFile( "basic.vert" );
Ogre::HighLevelGpuProgramPtr fragment = Ogre::HighLevelGpuProgramManager::getSingletonPtr()->createProgram( "basicFS", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, "glsl", Ogre::GpuProgramType::GPT_FRAGMENT_PROGRAM);
fragment->setSourceFile( "basic.frag" );
//Creating new material
Ogre::MaterialPtr matPtr = Ogre::MaterialManager::getSingletonPtr()->create( "ProgramShader", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME );
Ogre::Pass* pass = matPtr->getTechnique(0)->getPass(0);
//pass settings
pass->setLightingEnabled( false );
pass->setVertexProgram( vertex->getName() );
pass->setFragmentProgram( fragment->getName() );
entity->setMaterialName( matPtr->getName() );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment