Ejemplo n.º 1
0
	//---------------------------------------------------------------------
	void PSSMShadowCameraSetup::setSplitPoints(const SplitPointList& newSplitPoints)
	{
		if (newSplitPoints.size() < 3) // 3, not 2 since splits + 1 points
			OGRE_EXCEPT(Exception::ERR_INVALIDPARAMS, "Cannot specify less than 2 splits", 
			"PSSMShadowCameraSetup::setSplitPoints");
		mSplitCount = newSplitPoints.size() - 1;
		mSplitPoints = newSplitPoints;
		mOptimalAdjustFactors.resize(mSplitCount);
	}
//-----------------------------------------------------------------------
void IntegratedPSSM3::setSplitPoints(const SplitPointList& newSplitPoints)
{
    if (newSplitPoints.size() != 4)
    {
        OGRE_EXCEPT(Exception::ERR_DUPLICATE_ITEM,
            "IntegratedPSSM3 sub render state supports only 4 split points",
            "IntegratedPSSM3::setSplitPoints");
    }

    mShadowTextureParamsList.resize(newSplitPoints.size() - 1);

    for (unsigned int i=1; i < newSplitPoints.size(); ++i)
    {
        ShadowTextureParams& curParams = mShadowTextureParamsList[i-1];

        curParams.mMaxRange             = newSplitPoints[i];        
    }
}