void BatchPage::build() { batch->build(); BatchedGeometry::SubBatchIterator it = batch->getSubBatchIterator(); while (it.hasMoreElements()){ BatchedGeometry::SubBatch *subBatch = it.getNext(); MaterialPtr mat = subBatch->getMaterial(); //Disable specular unless a custom shader is being used. //This is done because the default shader applied by BatchPage //doesn't support specular, and fixed-function needs to look //the same as the shader (for computers with no shader support) for (int t = 0; t < mat->getNumTechniques(); ++t){ Technique *tech = mat->getTechnique(t); for (int p = 0; p < tech->getNumPasses(); ++p){ Pass *pass = tech->getPass(p); if (pass->getVertexProgramName() == "") pass->setSpecular(0, 0, 0, 1); } } //Store the original materials unfadedMaterials.push_back(subBatch->getMaterial()); } _updateShaders(); }
//----------------------------------------------------------------------------- /// void BatchPage::build() { m_pBatchGeom->build(); BatchedGeometry::TSubBatchIterator it = m_pBatchGeom->getSubBatchIterator(); while (it.hasMoreElements()) { BatchedGeometry::SubBatch *subBatch = it.getNext(); const MaterialPtr &ptrMat = subBatch->getMaterial(); //Disable specular unless a custom shader is being used. //This is done because the default shader applied by BatchPage //doesn't support specular, and fixed-function needs to look //the same as the shader (for computers with no shader support) for (unsigned short t = 0, tCnt = ptrMat->getNumTechniques(); t < tCnt; ++t) { Technique *tech = ptrMat->getTechnique(t); for (unsigned short p = 0, pCnt = tech->getNumPasses(); p < pCnt; ++p) { Pass *pass = tech->getPass(p); //if (pass->getVertexProgramName() == "") // pass->setSpecular(0, 0, 0, 1); if (!pass->hasVertexProgram()) pass->setSpecular(0.f, 0.f, 0.f, 1.f); } } //Store the original materials m_vecUnfadedMaterials.push_back(subBatch->getMaterial()); } _updateShaders(); }