표면 변형


10

평평한 표면에 대해 변형적인 물리적 행동을 시도하고 있지만 지금까지 구현을 시작하는 방법을 모릅니다.

표면의 모양 (평면, 큐브, 구면 등)에 관계없이 게임 엔터티 (플레이어, 적, 물체 등)의 위치에 작은 들여 쓰기가 필요합니다.

설명하기가 복잡하기 때문에 내가 말하는 것을 설명했습니다. 구체가있는 예는 다음과 같습니다.

변형 표면 게임 일러스트

따라서 표면이 약간 변형 될 수 있어야합니다 (실제로 부드러운 침대 또는 소파처럼 보입니다). 내 표면은 매끄러운 변형을 얻기 위해 높은 정점 수를 필요로하지만 내 큰 문제는이 변형을 계산하는 수학입니다.

OpenGL을 사용하여 C / C ++로 프로그래밍하고 있지만 올바른 방향의 조언은 괜찮습니다.

답변:


5

간단한 변형을 위해 표면 / 물체에서 조작 할 점을 선택한 다음 변형 (예 : 변환)을 적용 할 수 있습니다. 그런 다음 해당 지점에서 특정 거리 내의 모든 지점을 같은 방식으로 변환하되 선택한 지점에서 멀어 질수록 변형 강도가 약해집니다.

따라서 캐릭터 아래에 물건을 들여 쓰려면 서있는 지점을 선택하고 아래쪽으로 이동하십시오.

보관하려는 효과에 따라 전체, 로컬 또는 객체 센터에서 멀어 지거나 멀어 지도록 변환을 적용하거나 다른 기능을 사용하여 다른 재질을 시뮬레이션 할 수 있습니다.

sin / cos 폴 오프 기능을 사용하여 평면을 들여 쓰는 간단한 예는 www.lighthouse3d.com/opengl/terrain/에서 찾을 수 있습니다.


1
링크에서 403 금지 된 오류가 발생합니다.
George Duckett

1
음 ... '해킹 (직접 문제의 부분을,도) 다음 순서에 릴 : web.archive.org/web/20100927141645/http://lighthouse3d.com/...
Exilyth
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.