Roguelike에서 FOV (Field of View) 대칭을 보장하려면 어떻게해야합니까?


10

나는 Roguelike에서 일하고 있으며,이를 위해 Bresenham 선을 단색 원의 모든 지점으로 플로팅하는 광선 추적 / 캐스팅 FOV 알고리즘을 만들었습니다. 그것은 유물이 없으며 (합리적으로 효율적이지만) 내 중요한 요구 사항이 없습니다 : 대칭 (괴물을 볼 수 있다면 당신도 볼 수 있어야합니다).

여기에 이미지 설명을 입력하십시오

다음은 내 코드의 비대칭 동작의 예입니다. 왼쪽 이미지에서 나는 모서리에 서 있습니다 (빨간색 'X'블록 = 벽). 오른쪽 상단 타일을 볼 수 있습니다. 그러나 해당 타일 중 하나 (오른쪽 이미지)로 이동하면 더 이상 내가 온 타일을 볼 수 없습니다.

나는 Permissive Field of View 의 형태를 띠고 있다고 생각 하지만 Roguebasin 기사가 대칭을 허용한다고 제안했기 때문입니다. 대칭을 얻는 대체 수단이 있습니까?


1
가시성을 테스트 할 때 시점이 광선을 투사하는 위치와 동일한 위치에 있는지 확인하십시오.
MichaelHouse

답변:


8

눈이 단일 고정 점에있는 동안 점을 볼 수있을 때 사각형을 포함하는 것 같습니다.

그러나 가운데를 볼 수있을 때 사각형 만 포함해야합니다 ( "눈"도 중간에 있다고 가정). 또는 시작 사각형의 각 모서리에서 테스트 사각형의 모서리까지 광선을 그릴 수 있습니다.

핵심은 사각형의 히트 박스가 눈이 있어야하는 모든 위치 여야한다는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.