Axiom.Demos.WaterMesh.CalculateFakeNormals C# (CSharp) Method

CalculateFakeNormals() public method

Calculate Fake Normals (close but not precise, but faster)
public CalculateFakeNormals ( ) : void
return void
		public void CalculateFakeNormals()
		{
			float d1, d2; // diagonal slopes across 2 grid squares
			float ycomp = 6f * size / cmplx; // Fixed y-component of each vertex normal

			for ( int i = 1; i < cmplx; i++ )
			{
				for ( int j = 1; j < cmplx; j++ )
				{
					// Take average slopes across two grids
					d1 = vBuf[ i - 1, j - 1 ].y - vBuf[ i + 1, j + 1 ].y;
					d2 = vBuf[ i + 1, j - 1 ].y - vBuf[ i - 1, j + 1 ].y;
					vNorms[ i, j ].x = vBuf[ i, j - 1 ].y - vBuf[ i, j + 1 ].y + d1 + d2; // x-only component
					vNorms[ i, j ].z = vBuf[ i - 1, j ].y - vBuf[ i + 1, j ].y + d1 - d2; // z-only component
					vNorms[ i, j ].y = ycomp;
					vNorms[ i, j ].Normalize();
				}
			}
			// Create Unit-Y Normals for Water Edges (no angle for edges)
			for ( int i = 0; i <= cmplx; i++ )
			{
				vNorms[ i, 0 ] = vNorms[ i, cmplx ] = vNorms[ 0, i ] = vNorms[ cmplx, i ] = Vector3.UnitY;
			}

			// Write Normals to Hardware Buffer
			normVBuf.WriteData( 0, normVBuf.Size, vNorms, true );
		}