
개요본 장에서는 이전에 포스팅한 SAT 이론 및 구현 스터디(1) 한 개념들을 SFML 환경의 코드로 구현한 내용들을 다룬다. 코드 구현전에 전반적인 흐름을 파악하기 위해서 플로우 차트를 작성해 보았다. 1. Convex Polygon의 Edge Vector 구하기먼저 Edge Vector를 구하기 위해서는 두 개의 정점의 x, y 성분을 알아야 한다. 두 정점은 좌표가 아닌 벡터 성분이고 벡터 뺄셈을 통해서 Edge Vector를 구하게 된다. 연산은 존재하는 Convex Polygon의 정점의 갯수만큼 반복된다. 해당 코드는 다음과 같다. sf::Vector2f Collision::DetermineEdgeVector(sf::Vector2f* vertices, uint32_t index, uin..

SAT 는 무엇인가?SAT(Separating Axis Theorem)는 두 개의 볼록 다각형 또는 볼록 다면체가 충돌하지 않는지를 확인하는 데 사용되는 알고리즘이다. SAT(Separating Axis Theorem)두 개의 볼록 다각형 또는 볼록 다면체가 충돌하지 않는지 확인하는 로직이다.SAT는 유명한 강체 충돌 탐색 알고리즘 중 하나이다.SAT는 오직 볼록 다면체(convex polygons)에서만 작용한다. SAT에서 "충돌했다" 의 정의 위 이미지의 내용을 풀이하자면, 두 개의 도형을 분리할 수 있는 적어도 하나의 축이 주어진다면 SAT 관점에서 두 도형은"충돌하지 않았다." 상태로 정의할 수 있다. 즉 두 도형을 분리할 수 있는 축이 하나도 존재하지 않을 때, 비로소 "충돌 했다"..

이 포스트에서 알 수 있는 것sf::Eventsf::Event::getIfsf::WindowBase::handleEventssf::Event::Closedsf::Event::Resizedsf::Event::FocusLostsf::Event::TextEnteredsf::Event::KeyPressedsf::Event::KeyReleasedsf::Event::MouseWheelScrolledsf::Event::MouseButtonPressedsf::Event::MouseButtonReleasedsf::Event::MouseMovedsf::Event::MouseMovedRawsf::Event::MouseEnteredsf::Event::MouseLeftsf::Event::JoystickMovedsf::Event..

이 포스트에서 알 수 있는 것 sf::Window sf::Stylesf:StateSFML 응용프로그램 수명주기 들어가기 전에...SFML 프로젝트 셋팅이 힘든이들에게 이전 포스트에 SFML 프로젝트 생성하는 방법을 포스팅 해두었다. https://kwonvector.tistory.com/54 [SFML] SFML 3.0 Visual Studio 개발 환경 구축하기개요SFML 환경 셋팅은 공식 사이트의 튜토리얼 페이지를 참고하면 누구나 쉽게 따라할 수 있다. 윈도우, 리눅스, mac 등의 플랫폼마다 설정하는 방법이 명시되어 있었다. 검색창에 "SFML Tutkwonvector.tistory.com 필자가 셋팅한 SFML 프로젝트는 다음과 같다. 아쉽게도 필자는 mac 도 없는 거지라(mac 써..

개요SFML 환경 셋팅은 공식 사이트의 튜토리얼 페이지를 참고하면 누구나 쉽게 따라할 수 있다. 윈도우, 리눅스, mac 등의 플랫폼마다 설정하는 방법이 명시되어 있었다. 검색창에 "SFML Tutorial" 이라고 검색하면 바로 찾을 수 있을 것이다. 튜토리얼 페이지에 바로 이동하고 싶다면 이 링크 를 클릭! SFML 개발 환경 구축하기(CMake 활용)해당 환경을 구축하기 전에 설치되어야 하는 것Visual Studio (C/C++ 개발 플랫폼)CMake 링크를 타고 이동하면 SFML 3.0의 튜토리얼 페이지로 이동되었을 것이다. 필자는 Visual Studio 환경을 구축할 것이다. 하지만 Visual Studio에서 SFML 환경을 셋팅하기에 준비해야 하는 과정이 너무 많다. (어..

SFML를 알게된 계기 유튜브 영상 보면서 시간 떼우다가 어떤 유저가 구현한 Entity 시뮬레이션이 너무 멋져보였다. 필자가 봤었던 영상이 궁금하다면 이 링크를 클릭! 유튜버 Pezzza's Work가 만든 영상인데 그가 만든 로직이 너무 신기했다. 구 모양의 객체가 중력과 충돌에 서로 영향을 주고 받는 로직이 생각보다 어려운데 어떻게 구현한거지? 유니티 나 언리얼 엔진을 사용했다면 위 영상처럼 저렇게 많은 객체를 렌더링하는데 연산 꽤나 먹었을 것이다. 어떤 엔진을 썼는지 궁금해서 알아보니 SFML 이라는 라이브러리를 사용하고 있었다. SFML에 대한 나무위키의 설명 개요SFML(Simple and Fast Multimedia Library)은 프랑스의 Laurent Gomila사가 만든 멀티미..