Code/C/C++
irrlicht 3D엔진 좌표+_+
알 수 없는 사용자
2007. 4. 4. 16:00
1. World 3D -> Screen 2D
irr::core::vector3df pos = marine->getPosition();
irr::core::position2di pos2D = 씬매니져->getSceneCollisionManager()->getScreenCoordinatesFrom3DPosition( pos, camera );
2. Screen 2D -> World 3D
2D스크린좌표를 기준으로 픽킹레이를 만들어서 넓이가 무한대인 지면과 교점의 위치를 추적해보는예입니다. 오브잭트와 충돌위치는 일리히트 예제에나와있습니다.
irr::core::position2di mouse_pos = CkogG6App::m_System.m_pDevice->getCursorControl()->getPosition();
irr::core::line3df Ray;
irr::core::plane3df plane;
irr::core::vector3df v3Intersec;
plane.setPlane(irr::core::vector3df(0,0,0),irr::core::vector3df(0,1,0)); //높이가 0인 지면설정
Ray = 씬매니져->getSceneCollisionManager()->getRayFromScreenCoordinates(mouse_pos);
plane.getIntersectionWithLine(Ray.start,Ray.getVector().normalize(),v3Intersec); //지면과 광선 충돌점구하기