언제 외삽하고 언제 보간해야하는지 이해하는 데 어려움이 있습니다. 그는 게임에 관심을 갖고 보간한다고 말했지만 다른 기사에서는 플레이어를 추정하는 것이 좋습니다. 내 질문은 언제 외삽하는 것이 좋으며 언제 보간하는 것이 더 낫습니까?
언제 외삽하고 언제 보간해야하는지 이해하는 데 어려움이 있습니다. 그는 게임에 관심을 갖고 보간한다고 말했지만 다른 기사에서는 플레이어를 추정하는 것이 좋습니다. 내 질문은 언제 외삽하는 것이 좋으며 언제 보간하는 것이 더 낫습니까?
답변:
'이전'및 '이후'값 을 알고 있으면 보간 합니다.
예를 들어 포인트 앤 클릭 게임에서 플레이어는 현재 X 위치에 있고 인터페이스에서 스팟 Y를 클릭 합니다. 두 값 을 알고 있으므로 X와 Y 사이의 변위를 보간 해야 합니다.
당신은 당신이 이미 알고있는 것에 기초하여 미래 가치가 될 것을 추측 할 때 외삽합니다.
예를 들어 1 인칭 슈팅 게임에서 플레이어는 X 위치에 있으며 마지막 2 초 동안 키보드의 UP 화살표를 누르고 있습니다. 기본적으로 다음 초 동안 다시 수행 할 것이라고 가정 할 수 있습니다 게임에서 가장 빈번한 행동; 다음 프레임이 될 위치 를 추정 합니다. 서버는이를 다른 게임 클라이언트에게 전송하는데, 이는 서버에서 플레이어로의 전송 지연을 설명합니다.
외삽은 주로 움직임 예측에 사용됩니다. 게임 서버 에는 필요하지 않지만, 게임 클라이언트는 플레이어에게 부드러운 시각적 경험을 제공하기 위해 게임 상태에 대한 다소 현실적이고 현재 비전을 표시해야합니다.
가능하면 항상 보간하십시오.
보간 할 정보가 충분하지 않은 경우 외삽해야합니다.
정말 간단합니다. 너무 많이 생각하지 마십시오. :)
조금 더 설명하려면 :
보간이 항상 맞기 때문에 일반적으로 보간이 더 좋습니다. 외삽하려면 추측해야합니다. 그런 다음 잘못 추측했을 때 발생하는 일을 처리해야합니다. 그러면 고무 밴딩 또는 튀어 나와 모든 종류의 시스템이 모든 것을 처리하고 위장 할 수 있습니다.
박쥐 위치를 외삽하고 올바른 위치로 가고 공을 튀는 것을 보여준 다음에 자신이 틀렸고 공을 튕기 지 않았다는 것을 알게되면 어떻게됩니까? 해당 시나리오를 처리하는 좋은 방법은 없습니다.
알려진 값 사이의 상태를 찾기 위해 보간하고 미래의 상태를 찾기 위해 외삽합니다.
위치 및 속도와 같은 상태 변수 측면에서 문제를 생각하십시오. 모든 시나리오에서 최상의 상태로 작업해야하는 모든 컴퓨터는 작업하려는 시간 동안 상태 데이터에 액세스 할 수 있습니다. 예를 들어, 레이저 리플 샷 X가 플레이어 A의 머리를 끼우는 지 여부를 확인하는 충돌 알고리즘은 모든 경우 중 가장 좋은 것은 알고리즘이 레이저가 발사 될 때 모든 물체의 정확한 위치를 알고있을 때입니다.
현실에서, 우리는 항상 그렇게 운이 좋은 것은 아닙니다. 때때로 우리가받는 진실 정보가 더 희박합니다. 예를 들어 플레이어 A가 다른 컴퓨터의 원격 플레이어 인 경우 레이저를 발사 할 때 플레이어가 어디로 가고 있는지 정확히 알지 못하고 샷을 계산해야 할 수도 있습니다. 이 경우 일반적으로 보간 또는 외삽을 사용하여 A의 위치에 대한 추정기를 작성해야합니다.
이 둘의 차이점은 데이터가 양쪽에 묶여 있는지 아니면 한쪽에만 묶여 있는지입니다. 플레이어 A가 이미 t = 0 및 t = 1에 대한 자신의 진실 위치를 발표했다고 가정 해 봅시다. 플레이어 B는 t = 0.5에서 레이저를 쏜다. 많은 상황에서 플레이어 A가 t = 1에서의 위치를 알리는 것은 플레이어 B가 방아쇠를 당기기 전에 발생할 수 있습니다. 왜? 많은 게임에서 컨트롤의 반응 속도는 완벽하지 않습니다. 레이싱 시뮬레이션에서 플레이어 위치의 대부분은 움직이는 차량의 물리학에 의해 제한됩니다. 단기간에 그렇게 많이 조종 할 수 없다는 것을 알고 있기 때문에 "미래 위치"를 발표 할 수도 있습니다. 미래에 정보가있는 경우 두 값 사이를 보간 할 수 있습니다.
값이 1이 될만큼 운이 좋지 않으면 어떻게합니까? 플레이어 A가 미래의 위치를 발표 할 위치에 있지 않은 상태에서 t = 0의 정보만으로 맞았는지 놓쳤는 지 결정하는 경우 어떻게됩니까? 이 경우 외삽해야합니다. 외삽 법에서는 모션에 대해 알고있는 것을 사용하여 데이터를 넘어 확장합니다. 플레이어 A가 특정 속도를 가지고 있다는 것을 알고있을 수 있으므로 시간에 곱하면 매번 위치를 얻을 수 있다고 가정합니다.
차이점은 동작에 있습니다. 보간에는 상한과 하한이 있어야하지만 항상 그렇지는 않습니다. 그러나 거의 모든 상황에서 외삽보다 결과가 훨씬 낫습니다. 외삽은 쉽게 비현실적인 움직임으로 이어질 수 있습니다. 전진하는 동안 총에 맞지 않기 위해 좌우로 밟고있는 선수의 경우를 고려하십시오. 어느 시점에서나 속도는 대각선을 따라갑니다. 외삽하면 플레이어는 실제로는 절대로하지 않을 때 옆으로 도망 치는 것처럼 보일 수 있습니다. 보간 만 수행하면 값이 실제 값을 벗어나지 않는 경향이 있습니다.
보간과 외삽은 필터링 세계에서 두 가지 극단입니다. 보간과 외삽 사이의 속성을 혼합하고 일치시키는 이와 같은 데이터를 처리하기 위해 많은 많은 필터가 있습니다. 따라서 명확하게 보간되지 않거나 분명하게 외삽되지 않는 알고리즘을 볼 경우 놀라지 마십시오. 이 두 가지는 빙산의 일각에 불과합니다.
보간은 알려진 데이터를 사용하여 데이터 세트의 경계 내에서 데이텀을 계산합니다 ( '내부'접두사). 외삽은 기존 데이터의 경계를 벗어난 데이텀을 계산하는 것입니다 ( '외부'접두사 추가). 둘 다 추가 데이터를 합성하는 데 사용되며 생성 된 데이터의 예상 신뢰성을 정의하는 정확한 계산 방법이 사용됩니다.
또는 매우 간단한 다이어그램에 넣으십시오.
A - - - - - B - - - - - C - - - - - D
데이터 점을 감안할 때 A
와 C
는 보간 할 수 B
및 외삽 D
.
보간 또는 외삽의 정확도는 전적으로 계산의 모든 변수를 얼마나 잘 설명 할 수 있는지에 달려 있습니다. 모든 변수를 알고 있고 모든 변수를 설명하는 방정식이있는 경우 똑같이 쉽게 보간하거나 외삽 할 수 있습니다.
게임 메카닉의 경우 제한 요소는 플레이어 나 임의 또는 의사 랜덤 요소에 의해 변수가 예측할 수없는 방식으로 영향을받는 지점이됩니다.
예를 들어, 가장 간단한 형태의 브레이크 아웃에서 볼의 움직임은 플레이어의 패들과 잠재적으로 상호 작용할 수있는 지점까지 외삽 될 수 있습니다. 모든 변수는 해당 지점까지 설명 할 수 있으므로 공의 동작을 정확하게 모델링 할 수 있습니다. 플레이어 상호 작용이 가능한 지점에 도달하면 여러 가지 가능한 결과가 있으며 실제로 발생할 때까지 어떤 결과가 나올지 정확하게 모델링 할 수있는 방법이 없습니다. 이것이 게임 물리 모델의 예측 한계입니다.
알려진 포인트로 작업하고 조건이 변경되는지 궁금 할 필요가 없기 때문에 게임에서 보간이 더 간단합니다. 또한 관련된 변수를 완전히 제어 할 수 있으며 정의한 규칙을 사용하여 객체의 경로를 결정할 수 있습니다. 규칙이 복잡할수록 보간하기가 더 어려울 수 있습니다.
무중력 재생 공간 (브레이크 아웃 또는 탁구 등)에서 간단한 충돌로 객체를 이동하는 경우 경로의 선을 따라 보간하는 메커니즘은 포인트의 단순한 선형 보간이며 동일한 계산을 사용하여 선을 외삽 할 수 있습니다. 향후 충돌을 테스트합니다. 충돌이 감지되면 관련 개체에 해당 충돌의 영향을 추정 할 수 있습니다.