
// Cg@0@̏ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++( Jn )
#if LG@0@_USE

	// fBt[YFvZ

	// DiffuseAngleGen = fBt[YpxvZ
	DiffuseAngleGen = saturate( dot( Normal, PSInput.Light@0@_Dir_Gen.xyz ) ) ;
	
	// eɂ錸Zo
	ShadowGen = max( ShadowRate.x, SHADOWMAP1_ENABLE_LGT@0@ ) *
	            max( ShadowRate.y, SHADOWMAP2_ENABLE_LGT@0@ ) *
	            max( ShadowRate.z, SHADOWMAP3_ENABLE_LGT@0@ ) ;

	#if LG@0@_DIR

		#if TOON
			#if TOON == 1
				// gD[̏ꍇ͂̎_ł͒_or}eÃfBt[YJ[͎gpȂ
				// fBt[YJ[~ϒl += Cg̃fBt[YJ[ * fBt[YJ[px + Cg̃ArGgJ[ƃ}eÃArGgJ[Z 
				TempF4 = cfLight[ @0@ ].Diffuse * DiffuseAngleGen * ShadowGen ;
				TotalLightDiffuse += TempF4 ;
				TotalDiffuse += TempF4 + cfLight[ @0@ ].Ambient ;

			#else // TOON == 1
				// gD[Q̏ꍇ̓fBt[YJ[ƃCg̊px͕ʁXɕۑĂ
				// fBt[YJ[~ϒl += Cg̃fBt[YJ[
				// Cg̊px̒~ϒl += Cg̊px
				// Cg̃ArGgJ[̒~ϒl += Cg̃ArGgJ[
				TotalDiffuse += cfLight[ @0@ ].Diffuse ;

				TotalAmbient += cfLight[ @0@ ].Ambient.rgb ;
				TotalAngleGen += DiffuseAngleGen * ShadowGen ;

			#endif // TOON == 1
		#else // TOON
			// fBt[YJ[~ϒl += Cg̃fBt[YJ[ * fBt[YJ[ * fBt[YJ[px + Cg̃ArGgJ[ƃ}eÃArGgJ[Z 
			TotalDiffuse += cfLight[ @0@ ].Diffuse * PSInput.Diffuse * DiffuseAngleGen * ShadowGen + cfLight[ @0@ ].Ambient ;

		#endif //TOON

	#else // LG@0@_DIR

		#if TOON
			#if TOON == 1
				// gD[̏ꍇ͂̎_ł͒_or}eÃfBt[YJ[͎gpȂ
				// fBt[YJ[~ϒl += ( Cg̃fBt[YJ[ * fBt[YJ[px + Cg̃ArGgJ[ƃ}eÃArGgJ[Z  ) * EX|bgCg̊px
				TempF4 = cfLight[ @0@ ].Diffuse * DiffuseAngleGen * ShadowGen ;
				TotalLightDiffuse += TempF4 * PSInput.Light@0@_Dir_Gen.w ;
				TotalDiffuse += ( TempF4 + cfLight[ @0@ ].Ambient ) * PSInput.Light@0@_Dir_Gen.w ;

			#else // TOON == 1
				// gD[Q̏ꍇ̓fBt[YJ[ƃCg̊px͕ʁXɕۑĂ
				// fBt[YJ[~ϒl += Cg̃fBt[YJ[
				// Cg̃ArGgJ[̒~ϒl += Cg̃ArGgJ[
				// Cg̊px̒~ϒl += Cg̊px
				TotalDiffuse += cfLight[ @0@ ].Diffuse ;

				TotalAmbient += cfLight[ @0@ ].Ambient.rgb ;
				TotalAngleGen += DiffuseAngleGen * ShadowGen * PSInput.Light@0@_Dir_Gen.w ;

			#endif // TOON == 1
		#else // TOON
			// fBt[YJ[~ϒl += ( Cg̃fBt[YJ[ * fBt[YJ[ * fBt[YJ[px + Cg̃ArGgJ[ƃ}eÃArGgJ[Z  ) * EX|bgCg̊px
			TotalDiffuse += ( cfLight[ @0@ ].Diffuse * PSInput.Diffuse * DiffuseAngleGen * ShadowGen + cfLight[ @0@ ].Ambient ) * PSInput.Light@0@_Dir_Gen.w ;
			

		#endif // TOON

	#endif // LG@0@_DIR


	// XyLJ[vZ
	#ifdef USE_SPE

		// n[txNǧvZ
		TempF3 = PSInput.V_to_Eye_ShadowMap3PosZ.xyz + PSInput.Light@0@_Dir_Gen.xyz ;
		#ifdef    PHONG
			TempF3 = normalize( TempF3 ) ;
		#else  // PHONG
			TempF3 *= 0.5f ;
		#endif // PHONG

		// Temp = pow( max( 0.0f, N * H ), cfMaterial.Power.x )
		Temp = pow( max( 0.0f, dot( Normal, TempF3 ) ), cfMaterial.Power.x ) ;

		#if LG@0@_DIR

			// XyLJ[~ϒl += Temp * Cg̃XyLJ[
			TotalSpecular += Temp * cfLight[ @0@ ].Specular * ShadowGen ;

		#else // LG@0@_DIR

			// XyLJ[~ϒl += Temp * EX|bgCg̊px * Cg̃XyLJ[
			TotalSpecular += Temp * PSInput.Light@0@_Dir_Gen.w * cfLight[ @0@ ].Specular * ShadowGen ;

		#endif // LG@0@_DIR

	#endif // USE_SPE

#endif // LG@0@_USE
// Cg@0@̏ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++( I )








