O objeto ResourceGroupManager e, na realidade, uma especie de hub para o carregamento de recursos reutilizaveis como texturas e meshes. Atraves dele o programador pode definir grupos de recursos que podem ser descarregados ou recarregados em conjunto sempre que se precisar. Ao seu favor, estao varios ResourceManagers, que gerenciam os tipos de recursos individualmente - a exemplo dos TextureManager e MeshManager. Nesse contexto, recursos sao conjuntos de dados que devem ser carregados para fornecer ao OGRE os dados que ele precisa.ResourceManagers asseguram que recursos sejam carregados uma unica vez e compartilhados atraves da engine OGRE. Eles tambem sao responsaveis pelos requisitos de memoria dos recursos que gerenciam e podem procurar em varios lugares pelos recursos que precisam - inclusive caminhos de busca multiplos e arquivos compactados (ZIP).A maior parte do tempo, o programador nao lida com ResourceManagers diretamente. Eles sao chamados, quando necessario, por outras partes do sistema OGRE. Por exemplo, quando se solicita que uma textura seja aplicada a um material, o TextureManager e chamado automaticamente.Se preferir, o programador pode manipular diretamente o gerente de recurso apropriado para pre-carregamento de recursos (se, por exemplo, ele quiser evitar o acesso a disco mais tarde) mas nao ha problema algum em deixar que OGRE decida quando fazer essa manipulacao.Uma coisa que se deve fazer e informar aos gerentes de recursos onde procurar pelos recursos. Isso e feito atraves da instrucao Root::getSingleton().addResourceLocation - que, na verdade, passa a informacao para o ResourceGroupManager.Como so existe sempre uma unica instancia para cada ResourceManager da engine, se voce quiser obter referencia a um gerente de recursos, pode fazer como no exemplo a seguir:TextureManager::getSingleton().algumMetodo()MeshManager::getSingleton().algumMetodo() O objeto Material controla como objetos na cena sao renderizados. Ele especifica propriedades basicas da superficie que os objetos tem (como reflexao de cores, brilho, etc), quantas camadas de textura sao utilizadas, quais as imagens que estao nelas e como sao mescladas, quais efeitos especiais sao aplicados (mapeamento ambiental, por exemplo), qual modo de clipagem (recorte) e utilizado, como as texturas sao filtradas, etc.Materiais podem tanto ser configurados via codigo pela chamada ao metodo SceneManager::createMaterial ou via especificacao em um script que e carregado em tempo de execucao. Futuras postagens explanarao a respeito da utilizacao de scripts.Praticamente todas as caracteristicas de um objeto que dizem respeito a sua aparencia (com excecao de seu formato) sao controladas pela classe Material.O objeto SceneManager gerencia a lista mestra dos materiais disponiveis para uma cena. A lista pode ser incrementada com a chamada ao metodo SceneManager::createMaterial ou pelo carregamento de um Mesh (que, por sua vez, ira realizar o carregamento de materiais).Sempre que um material e adicionado ao SceneManager, ele possui, a priori, um conjunto de propriedades padroes, que estao listadas a seguir:ambient reflectance = ColourValue::White (full)diffuse reflectance = ColourValue::White (full)specular reflectance = ColourValue::Black (none)emmissive = ColourValue::Black (none)shininess = 0 (sem brilho)No texture layers (& hence no textures)SourceBlendFactor = SBF_ONE, DestBlendFactor = SBF_ZERO (opaco)Depth buffer checking onDepth buffer writing onDepth buffer comparison function = CMPF_LESS_EQUALCulling mode = CULL_CLOCKWISEAmbient lighting in scene = ColourValue(0.5, 0.5, 0.5) (meio-cinza)Dynamic lighting enabledGourad shading modeSolid polygon modeBilinear texture filteringEssas propriedades podem ser alteradas