나는 물리학이 필요한 XNA의 2D 게임을 연구 중이다. 나는 Farseer와 같은 물리 엔진이 그들이 작동하는 몇 가지 방법으로 인해 그것을 자르지 않을 것임을 알았다. (필자가 물리학을 직접 작성해야한다는 것을 알기 위해 코드를 3 번 다시 작성하는 긴 이야기가 있습니다.) 그래서 제가 사용하고있는 참고 자료에 따르면, 지금 필요한 유일한 데이터는 표면의 법선입니다 충돌의.픽셀 위치를 평균하여 표면 법선을 찾습니다. (2D)
이것은 스프라이트를 사용한 픽셀 단위 충돌 감지를 사용합니다. 현재 모든 겹치는 픽셀과 그 위치의 배열이 있습니다. 이 데이터를 사용하여 겹치는 픽셀의 위치를 평균하여 그 표면의 법선을 계산하는 방법에 대해 설명하겠습니다. 그러면 내가 불규칙한 모양의 물체와 충돌을 일으키지 만 여전히 현실적인 물리학 적 상호 작용을 유지할 수 있습니다.
누군가이 표면 정보를 알아 내기 위해이 픽셀 정보를 사용할 수있는 방법에 대한 제안 사항이 있거나 충분히 가까이있는 것이 좋습니다.
감사합니다.
귀하의 제안은 흥미 롭습니다. 그러나 법선을 텍스처에 저장하고 텍스처에 액세스하는 방법을 설명해 주시겠습니까? 나는이 세부 사항에 명확하지 않다. – APalmer
보통은 jsut 1 또는 2 (2D 공간에서) 또는 2/3 플로트 숫자입니다. 따라서 텍스처에 쉽게 저장 될 수 있습니다 (가능한 텍스처 형식은 http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.graphics.surfaceformat(v=XNAGameStudio.31).aspx 참조) . '일반적인 매핑'샘플을 검색하여 일반적인 사용 방법을 확인합니다 (예 : http://create.msdn.com/en-US/education/catalog/sample/normal_mapping). 픽셀 쉐이더는 여러 텍스처를 동시에 액세스 할 수 있으므로 여러 텍스처의 데이터를 병합하는 것은 비교적 쉽습니다. –