Terrain Analysis & Propagation

Influence Mapping 영향도 알고리즘

  • 수치를 2d grid에 분산시켜 놓은 추상 디자인

Generalized Grid Terrain Analysis

  • 다중 레이어가 가진 수치의 총합으로 맵 구성
  • 레이어의 종류
    1. Visibility: 현재 위치에서 보이는지 image
    2. Openness layer: static obstacle에 얼마나 근접하는지
    3. Cover layer: 현재 위치에서 영향력을 행사할 수 있는지
      • 무기 범위, 인지 범위 등 image
    4. Area occupancy layer: 한 위치에 얼마나 많은 오브젝트가 있는지 image
    5. Line-of-fire layer: 에임했을 때 데미지 받는 방향과 범위 안인지
    6. Light level layer: 빛이 도달하는지
    7. Area search layer: 탐색 과정에서 이미 방문한 곳인지
    8. Occupancy map: 탐색 대상이 있을 확률

Combine Layers

  • 위의 각 레이어를 하나로 합쳐서 수치의 총계를 산출 image
  • 이때 최종 수치 산출하는 방법은
    1. multiplied
    2. mean
    3. geometric mean

Propagation

image

  1. Influence Layer와 Temp Layer 2개의 Layer 세팅
  2. Decay 후의 값을 Temp Layer에 저장
  3. Temp Layer의 값을 Influence Layer에 다시 복사

Decay Factor

  • 얼마나 빠르게 distance에 따라 decay가 전파되는지
  • 얼마나 빠르게 influence가 사라지는지
  • decay factor가 높을수록 influence는 빠르게 낮아진다

Growing Factor

image

  • influence value를 업데이트 하면서 기존 값과 새 값 중 어느 값에 더 편중할지

How to propagate?

image

  • decay factor와 growing factor 세팅
  • 현재 노드 (Red)에 대해 이웃 노드들 (Right, Bottom, Right-Bottom)에 대해 Decay formula로 influence value 연산
  • 최대값 확인 (Right-Bottom = 0.75)

image

  • 보간 공식에 따라 값 연산
  • 해당 값을 TempLayer에 저장

image

  • 최종 연산한 값들이 저장된 TempLayer의 값을 Original Layer에 복사

Why using double bufferubg?

image

  • TempLayer가 필요한 이유는 하나의 Layer에서 Influence 값을 연산하면서 후순위로 연산되는 값들이 앞에 이미 연산된 값들에 영향을 받아 오류가 발생하기 때문

출처

Categories: ,

Updated: