[gpg1권 조진현] 4.16~4.20 실시간 사실적 지형 + 프랙탈

48

Upload: -

Post on 14-Jul-2015

724 views

Category:

Technology


2 download

TRANSCRIPT

Void FilterHeightBand( float* fpBand, int iStride, int iCount, float fFilter )

{

float v= fpBand[0];

int j = iStride;

int i;

//go through the height band and apply the erosion filter

for( i=0; i<iCount-1; i++ )

{

fpBand[j]= fFilter*v + ( 1-fFilter )*fpBand[j];

v = fpBand[j];

j+= iStride;

}

}

Void FilterHeightField( float* fpHeightData, float fFilter )

{

int i;

//erode left to right

for( i=0; i<m_iSize; i++ )

FilterHeightBand( &fpHeightData[m_iSize*i], 1, m_iSize, fFilter );

//erode right to left

for( i=0; i<m_iSize; i++ )

FilterHeightBand( &fpHeightData[m_iSize*i+m_iSize-1], -1, m_iSize, fFilter );

//erode top to bottom

for( i=0; i<m_iSize; i++ )

FilterHeightBand( &fpHeightData[i], m_iSize, m_iSize, fFilter);

//erode from bottom to top

for( i=0; i<m_iSize; i++ )

FilterHeightBand( &fpHeightData[m_iSize*(m_iSize-1)+i],

-m_iSize, m_iSize, fFilter );

}