언제 외삽하고 언제 보간해야합니까?


16

언제 외삽하고 언제 보간해야하는지 이해하는 데 어려움이 있습니다. 그는 게임에 관심을 갖고 보간한다고 말했지만 다른 기사에서는 플레이어를 추정하는 것이 좋습니다. 내 질문은 언제 외삽하는 것이 좋으며 언제 보간하는 것이 더 낫습니까?


22
두 종류의 사람들이 있습니다. 불완전한 데이터로부터 추정 할 수있는 사람들
Almo

2
@Almo와 다른 종류는 무엇입니까? 말해줘, 나도 알아야 해!
DJMcMayhem

4
@DJMcMayhem ... 그리고 생선 튀김을 즐기는 사람들.
user253751

4
질문을 이해하지 못합니다. (3, c)에서 c를 예측하기 위해 점 {(1, a), (2, b)}를 "보간"하는 한 가지 방법을 설명 할 수 있습니까? 어떻게 외삽하겠습니까?
user541686

답변:


29

'이전'및 '이후'값 을 알고 있으면 보간 합니다.

예를 들어 포인트 앤 클릭 게임에서 플레이어는 현재 X 위치에 있고 인터페이스에서 스팟 Y를 클릭 합니다. 두 값 을 알고 있으므로 X와 Y 사이의 변위를 보간 해야 합니다.

당신은 당신이 이미 알고있는 것에 기초하여 미래 가치가 될 것을 추측 할 때 외삽합니다.

예를 들어 1 인칭 슈팅 게임에서 플레이어는 X 위치에 있으며 마지막 2 초 동안 키보드의 UP 화살표를 누르고 있습니다. 기본적으로 다음 초 동안 다시 수행 할 것이라고 가정 할 수 있습니다 게임에서 가장 빈번한 행동; 다음 프레임이 될 위치 를 추정 합니다. 서버는이를 다른 게임 클라이언트에게 전송하는데, 이는 서버에서 플레이어로의 전송 지연을 설명합니다.

외삽은 주로 움직임 예측에 사용됩니다. 게임 서버 에는 필요하지 않지만, 게임 클라이언트는 플레이어에게 부드러운 시각적 경험을 제공하기 위해 게임 상태에 대한 다소 현실적이고 현재 비전을 표시해야합니다.


나는 그 부분을 이해하지만 이해하지 못하는 것은 각각을 사용해야 할 때입니다. 예를 들어, 플레이어를 보간하면 실제로 움직임을 보는 데 지연이 발생하지만 외삽하면 더 즉각적이지만 정확하지 않을 수 있으며 수정해야합니다. 일반적으로 외삽으로부터 순간적인 움직임 또는 내삽으로부터보다 일관된 움직임을 갖는 것이 더 바람직합니까?
J leong

@Jleong 게임이 사용자에게 최대한 부드럽게 제공되기를 원합니다. 게임의 현재 상태를 보간하고 몇 프레임에서 어떻게 진행되는지 보간합니다. 외삽 된 값을 다른 플레이어에게 보내 네트워크 전송 지연을 설명합니다. 보간 된 값을 보내면 게임이 지연되는 것처럼 보이며 재미 있지 않습니다. (내 답변을 편집했습니다. 조금 더 정리하기를 바랍니다.)
명확 해지기를

오, 그래서 클라이언트가 어떤 일이 일어날 지 예측하기를 원할 때 외삽 법이 사용됩니까? 그렇다면 게임을 실시간에 가깝게 유지하기 위해 항상 외삽 할 수 있다면 보간의 요점은 무엇입니까? FPS처럼 플레이어가 외삽되고 다른 플레이어가 보간됩니까?
J leong

일반적으로 서버는 모든 것을 수행합니다. 서버는 알고있는 것을 보간하고,이를 바탕으로 값을 외삽하고이를 클라이언트에게 보내서 플레이어에게 제시 할 수 있도록 제 시간에 도착합니다. FPS에서 보간은 발사체, AI 등과 같은 것을 표시하는 데 사용됩니다. 프레임 B를 수행 할 때 (프레임 A에서 오는) 프레임 B의 상태에 대한 값을 보간합니다. 알려진 값 을 보간하여 프레임 C 예측을 시작할 수도 있지만 모르는 값 (플레이어 입력)을 추정해야합니다. 그런 다음 "미래"상태를 클라이언트로 보냅니다.
Vaillancourt

@Jleong 클라이언트와 서버의 차이점에 대해 생각하지 않고 사용할 수 있습니다. 보간 을 사용하여 알려진 두 지점 사이의 위치 (프레임간에 발생할 수있는 충돌 확인 등)를 도출하거나 데이터 세트를 가져 와서 속도 / 궤도 및 가속도, 일련의 포인트가 주어지고 마지막으로 알려진 속도 / 가속도 / 궤도가 주어지면, 일관된 시간 프레임을 가정하여 미래에 그러한 물체가 어디에 있는지 추정 할 수 있습니다. 서버-클라이언트 통신의 경우 "최적"외삽 위치가 사용됩니다.
Norguard

14

보간은 시작 값과 끝 값이 모두있을 때 수행되며이 시작 값과 끝 값 사이에 어떤 일이 발생하는지 추정하려고합니다. 예를 들어 유동적 인 움직임으로 플레이어를 위치 A에서 위치 B로 옮기는 것이 있습니다.

외삽은 시작 값이 있지만 아직 끝 데이터가 없을 때 수행됩니다. 그런 다음 가지고있는 데이터를 기반으로 추정 할 수 있습니다. 예를 들어, 플레이어의 이전 움직임을 기반으로 다음 프레임에서 그가 어디에 있을지 결정할 수 있습니다.


2

가능하면 항상 보간하십시오.

보간 할 정보가 충분하지 않은 경우 외삽해야합니다.

정말 간단합니다. 너무 많이 생각하지 마십시오. :)

조금 더 설명하려면 :

보간이 항상 맞기 때문에 일반적으로 보간이 더 좋습니다. 외삽하려면 추측해야합니다. 그런 다음 잘못 추측했을 때 발생하는 일을 처리해야합니다. 그러면 고무 밴딩 또는 튀어 나와 모든 종류의 시스템이 모든 것을 처리하고 위장 할 수 있습니다.

박쥐 위치를 외삽하고 올바른 위치로 가고 공을 튀는 것을 보여준 다음에 자신이 틀렸고 공을 튕기 지 않았다는 것을 알게되면 어떻게됩니까? 해당 시나리오를 처리하는 좋은 방법은 없습니다.


오, 그래서 탁구에서, 사용자의 외륜이 예측되고 공과 다른 외륜이 보간됩니까?
J leong

그것은 전적으로 구현 방법에 달려 있습니다. 자세한 내용은 내 편집을 참조하십시오.
Tim B

2

알려진 값 사이의 상태를 찾기 위해 보간하고 미래의 상태를 찾기 위해 외삽합니다.

위치 및 속도와 같은 상태 변수 측면에서 문제를 생각하십시오. 모든 시나리오에서 최상의 상태로 작업해야하는 모든 컴퓨터는 작업하려는 시간 동안 상태 데이터에 액세스 할 수 있습니다. 예를 들어, 레이저 리플 샷 X가 플레이어 A의 머리를 끼우는 지 여부를 확인하는 충돌 알고리즘은 모든 경우 중 가장 좋은 것은 알고리즘이 레이저가 발사 될 때 모든 물체의 정확한 위치를 알고있을 때입니다.

현실에서, 우리는 항상 그렇게 운이 좋은 것은 아닙니다. 때때로 우리가받는 진실 정보가 더 희박합니다. 예를 들어 플레이어 A가 다른 컴퓨터의 원격 플레이어 인 경우 레이저를 발사 할 때 플레이어가 어디로 가고 있는지 정확히 알지 못하고 샷을 계산해야 할 수도 있습니다. 이 경우 일반적으로 보간 또는 외삽을 사용하여 A의 위치에 대한 추정기를 작성해야합니다.

이 둘의 차이점은 데이터가 양쪽에 묶여 있는지 아니면 한쪽에만 묶여 있는지입니다. 플레이어 A가 이미 t = 0 및 t = 1에 대한 자신의 진실 위치를 발표했다고 가정 해 봅시다. 플레이어 B는 t = 0.5에서 레이저를 쏜다. 많은 상황에서 플레이어 A가 t = 1에서의 위치를 ​​알리는 것은 플레이어 B가 방아쇠를 당기기 전에 발생할 수 있습니다. 왜? 많은 게임에서 컨트롤의 반응 속도는 완벽하지 않습니다. 레이싱 시뮬레이션에서 플레이어 위치의 대부분은 움직이는 차량의 물리학에 의해 제한됩니다. 단기간에 그렇게 많이 조종 할 수 없다는 것을 알고 있기 때문에 "미래 위치"를 발표 할 수도 있습니다. 미래에 정보가있는 경우 두 값 사이를 보간 할 수 있습니다.

값이 1이 될만큼 운이 좋지 않으면 어떻게합니까? 플레이어 A가 미래의 위치를 ​​발표 할 위치에 있지 않은 상태에서 t = 0의 정보만으로 맞았는지 놓쳤는 지 결정하는 경우 어떻게됩니까? 이 경우 외삽해야합니다. 외삽 법에서는 모션에 대해 알고있는 것을 사용하여 데이터를 넘어 확장합니다. 플레이어 A가 특정 속도를 가지고 있다는 것을 알고있을 수 있으므로 시간에 곱하면 매번 위치를 얻을 수 있다고 가정합니다.

차이점은 동작에 있습니다. 보간에는 상한과 하한이 있어야하지만 항상 그렇지는 않습니다. 그러나 거의 모든 상황에서 외삽보다 결과가 훨씬 낫습니다. 외삽은 쉽게 비현실적인 움직임으로 이어질 수 있습니다. 전진하는 동안 총에 맞지 않기 위해 좌우로 밟고있는 선수의 경우를 고려하십시오. 어느 시점에서나 속도는 대각선을 따라갑니다. 외삽하면 플레이어는 실제로는 절대로하지 않을 때 옆으로 도망 치는 것처럼 보일 수 있습니다. 보간 만 수행하면 값이 실제 값을 벗어나지 않는 경향이 있습니다.

보간과 외삽은 필터링 세계에서 두 가지 극단입니다. 보간과 외삽 사이의 속성을 혼합하고 일치시키는 이와 같은 데이터를 처리하기 위해 많은 많은 필터가 있습니다. 따라서 명확하게 보간되지 않거나 분명하게 외삽되지 않는 알고리즘을 볼 경우 놀라지 마십시오. 이 두 가지는 빙산의 일각에 불과합니다.


1

보간은 알려진 데이터를 사용하여 데이터 세트의 경계 내에서 데이텀을 계산합니다 ( '내부'접두사). 외삽은 기존 데이터의 경계를 벗어난 데이텀을 계산하는 것입니다 ( '외부'접두사 추가). 둘 다 추가 데이터를 합성하는 데 사용되며 생성 된 데이터의 예상 신뢰성을 정의하는 정확한 계산 방법이 사용됩니다.

또는 매우 간단한 다이어그램에 넣으십시오.

A - - - - - B - - - - - C - - - - - D

데이터 점을 감안할 때 AC는 보간 할 수 B및 외삽 D.


보간 또는 외삽의 정확도는 전적으로 계산의 모든 변수를 얼마나 잘 설명 할 수 있는지에 달려 있습니다. 모든 변수를 알고 있고 모든 변수를 설명하는 방정식이있는 경우 똑같이 쉽게 보간하거나 외삽 할 수 있습니다.

게임 메카닉의 경우 제한 요소는 플레이어 나 임의 또는 의사 랜덤 요소에 의해 변수가 예측할 수없는 방식으로 영향을받는 지점이됩니다.

예를 들어, 가장 간단한 형태의 브레이크 아웃에서 볼의 움직임은 플레이어의 패들과 잠재적으로 상호 작용할 수있는 지점까지 외삽 될 수 있습니다. 모든 변수는 해당 지점까지 설명 할 수 있으므로 공의 동작을 정확하게 모델링 할 수 있습니다. 플레이어 상호 작용이 가능한 지점에 도달하면 여러 가지 가능한 결과가 있으며 실제로 발생할 때까지 어떤 결과가 나올지 정확하게 모델링 할 수있는 방법이 없습니다. 이것이 게임 물리 모델의 예측 한계입니다.

알려진 포인트로 작업하고 조건이 변경되는지 궁금 할 필요가 없기 때문에 게임에서 보간이 더 간단합니다. 또한 관련된 변수를 완전히 제어 할 수 있으며 정의한 규칙을 사용하여 객체의 경로를 결정할 수 있습니다. 규칙이 복잡할수록 보간하기가 더 어려울 수 있습니다.

무중력 재생 공간 (브레이크 아웃 또는 탁구 등)에서 간단한 충돌로 객체를 이동하는 경우 경로의 선을 따라 보간하는 메커니즘은 포인트의 단순한 선형 보간이며 동일한 계산을 사용하여 선을 외삽 할 수 있습니다. 향후 충돌을 테스트합니다. 충돌이 감지되면 관련 개체에 해당 충돌의 영향을 추정 할 수 있습니다.


이것은 정확히 단어의 차이점입니다. 우리가 모두 A와 C 일 때 B와 D를 추측하는 단어가 다른 이유는 B를 정확하게 추측하는 것이 D를 정확하게 추측하는 것보다 훨씬 쉽기 때문입니다. 포병 전문가들은 보간법을 요구합니다. 그들은 당신의 양쪽에 두 개의 마킹 라운드를 얻습니다. 움직이지 않으면 죽었습니다. 외삽은 주식 가격 차트를보고 주식 시장을 플레이 할 때하려는 일입니다. 외삽은 어렵다.
candied_orange

@CandiedOrange 복잡한 시스템을 외삽하는 것은 어렵지만 보간도 마찬가지입니다. 데이터 포인트의 품질과 시스템 예측 가능 여부에 따라 다릅니다. 시스템을 설명하는 정확한 방정식을 도출 할 수 있다면 정확도로 보간 또는 외삽 할 수 있습니다.
Corey

나는 보간법이 미적분학의 기본 정리를 제공한다는 것을 의미합니다. 추정하지 않습니다. A와 C는 B가 A에게 주어진 C를 가능하게 한 어딘가에 있다고 말합니다. D를 요구하는 것은 미래를 예측하도록 요구하고 있습니다. 모두 C가 플레이어가 죽은 곳이라는 것을 알고 있습니다. 보간 또는 외삽 중 어느 것이 더 안정적이고 수용 가능합니까? 왜 외삽-위험-보간보다
candied_orange

@CandiedOrange 물론, 외삽은 모든 관련 변수를 제어하고 예측할 수있는 정도로 제한됩니다. 보간도 마찬가지입니다. 과거에 플레이어가 차지한 두 위치가 주어지면 플레이어가 직접 또는 최적의 경로를 벗어 났을 수 있으므로 반드시 중간 점을 정확하게 보간 할 수는 없습니다. 두 방법 모두 제한적입니다.
Corey

물론 둘 다 제한적입니다. 그러나 하나는 다른 것보다 경력을 더 자주 파괴합니다. 어느 것을 추측하십시오. 내 주장은 보간이 완벽하지 않다는 것입니다. 그것들이 동일한 예측력을 갖는 것으로 보는 것은 위험합니다.
candied_orange

0

짧은 대답 : 두 개의 알려진 값 사이의 값을 추정해야 할 때 보간합니다 (예 : 1 시간 동안 값은 1, 3 시간이면 3입니다). 값). 외삽은 미지가 당신이 알고있는 것 밖에있을 때이므로, 1과 2가 알려지면 3에 대해 교육적인 추측을 할 수 있습니다.

보간 : 내부 보간 : 외부

여기에 긴 대답은 더 정확하고 과학적으로 정확할 수 있지만 간단한 설명이 일부에 의미가 있기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.