Geometry Wars에서 워프 효과를 어떻게 복제합니까?


12

Geometry Wars 와 같은 게임에서 볼 수있는 워프 효과를 얻으려고합니다 .

워프 효과를 포함한 기하학 전쟁 스크린 샷

누군가 여기서 무슨 일이 일어나고 있는지 설명해 줄 수 있습니까? 그리드의 z 축이 프로그래머에 의해 어떤 식 으로든 조작되는 것처럼 느껴지지만 실제로 올바른 왜곡 효과를 얻기 위해 알려진 수학 방정식이 있습니까?

편집 : 더 구체적으로 말하면 그리드의 뒤틀림을 의미합니다. 모든 것이 음의 z 축으로 당겨 져서 튀는 모습.


1
배경 굽힘에 대해 언급하고 있습니까? 그것의로 기하학 전쟁 , 내가 시도하고 당신이 언급 된 것을 알려줄 수있는 동안 내 머리를 긁어했다 스크린 샷, 혼돈의 많은이있다.
Grace Note

예, 배경이 구부러집니다.
Joey Green

답변:


12

간단한 스프링 시스템의 10 분 구현 (또는 블로그에서 말합니다 ). 이 시스템은 여러 개의 날실 및 그리드를 왜곡하는 다른 것들을 처리 할 수 ​​있습니다.

사소한 추가 세부 사항을 추가하도록 업데이트되었습니다.

다른 몇 가지 세부 사항. Bizarre Creations 웹 사이트에서 호스팅되었던 인터뷰 (회사 폐쇄로 인해 해당 사이트가 사라졌습니다)에서 다음과 같은 질문이있었습니다.

Q : 게임에서 가장 눈에 띄는 새로운 그래픽 기능 중 하나는 "중력 격자"재생 영역입니다. 어떻게 이렇게 멋지게 보이게 했습니까? 게임의 모든 물체에 실제로 중력이 있습니까? 그리드 자체는 60,000 포인트로 구성되며 각 포인트는 이웃에 약간의 힘을가합니다. 시뮬레이션 자체는 안정성의 가장자리에 위치하므로 게임 개체 중 하나가 작은 푸시를 줄 때 너무 많이 흔들 리게됩니다! 격자에는 몇 가지 유형의 개체 만 영향을줍니다. 그리드 시스템은 계산하는 데 다소 비용이 많이 들기 때문에 실제로 오디오 시스템과 함께 두 번째 코어에서 실행됩니다 (첫 번째 코어는 게임 플레이 및 파티클 전용, 세 번째는 오디오 렌더링에 사용됨).


1

"올바른"방법이 있는지는 모르겠지만, 거리에서 점으로 계산 된 폴 오프를 적용하면 미적으로 유쾌한 선형 변환 일 수 있습니다.

따라서 작업중 인 모든 요소에 대해 다음을 수행하십시오.

  • 날실 중심까지의 거리를 구합니다 (d)
  • 1-d / 원하는 효과의 최대 거리 계산 (강도의 경우 i)
  • [0-1]에 고정
  • lerp (identity, transform, i)로 요소를 변환

Iirc, Geometry wars는 일부 요소에 왜곡 왜곡을 적용하는 반면 입자와 같은 다른 요소는 왜곡되지 않고 "힘"의 영향을 받았습니다. 효과를 매끄럽게 샘플링하기에 충분한 정점이 있다고 가정하면 정점 셰이더에 왜곡을 적용 할 수 있습니다. 또는 오프 스크린 버퍼에 영향을 미치는 모든 것을 먼저 렌더링 한 다음 왜곡되지 않은 요소를 모두 추가하기 전에 왜곡을 적용한 잘게 조각난 쿼드로 결과를 렌더링 할 수 있습니다.

변형에 관해서는, 스케일링은 당신에게 빠진 모습을 줄 것입니다. 내가 정확하게 기억한다면 약간의 비틀림도 있었으며, 이것은 약간의 회전 일뿐입니다.

강도 계수를 계산하여 더 멋지고 멋진 효과를 얻을 수 있습니다. 예를 들어, 요소가 중심을 기준으로하는 각도 (a)를 계산하고이를 고려할 수 있습니다. cos (a)를 취하면 효과에 방 사파를 만들 수 있습니다. 당신이하고 싶은 것은 필요한 스캐 폴딩 코드로 스스로를 설정 한 다음 다양한 요소 조합으로 실험하는 마을로 이동하는 것입니다.


시도해 볼께 감사합니다. 기본적으로 설명하는 알고리즘이 스프링 효과입니까?
Joey Green

아니, 나는 그것이 시간이 지남에 따라 어떻게 변할 것인지 설명하지 않았으므로 봄이 아닙니다. 방금 뒤틀린 모양을 얻는 방법을 설명했습니다. GW 스타일로 애니메이션을 적용하려면 시간이 지남에 따라 i를 변조하여 다른 요소를 추가해야합니다. 모든 것을 구현해보십시오. 효과를 완화하거나 강화하기 위해 i를 확장 할 수 있다는 것이 분명해집니다. 이 변조 값을 통해 사인파를 통과 시키거나 1D 스프링처럼 튀기면 효과적으로 모든 것을 튀기 게됩니다. 다시 말하지만, 여러 변수가 떠있는 하네스가 있으면 실험이 친구가 될 것입니다.
Chris Subagio
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.