Más contenido relacionado [Gpg1권 조진현] 4.16~4.20 실시간 사실적 지형 + 프랙탈 21. Rand() 의 문제점. 자연스럽지 못하다. 생성한 것을 재현할 수 없다. Srand() 의 시드 값을 활용!!! 34. 침식 단계 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 ); } 37. C Height = [ -dHeight / 2, +dHeight / 2 ] Per step -- dHeight * 2-r 39. 다이아몬드 단계 E = (A+B+C+D)/4 + random Random = [-dHeight/2, +dHeight/2] 41. 랜덤 높이값= 전체 크기 / 2 지형 계수 R = 2-r While ( 사각형의 크기 > 0 ) 다이아몬드 단계 사각형 단계 사각형의 크기 /= 2 랜덤 높이값 *= R End 50. 빈도 테이블에 글자들을 추가 Total = 빈도테이블[0][i] 를 모두 더한다. Random = [1,Total] While( v < Random ) V += 빈도테이블[0][iIndex] If( v > Random ) return 빈도테이블[0][iIndex] End