치춘짱베리굿나이스
[Rank 4] Cub3D - Raycasting 구현 ④ 화면에 벽 그리기 본문
화면에 벽 그리기
이번 예제에서는 텍스쳐 대신 색상을 사용하여 벽을 그린다
벽의 높이 계산하기
- 카메라 평면부터 벽까지의 거리를 구했으니 이제 벽의 높이를 계산하고, 실제로 화면에 벽을 그릴 단계에 왔다
- 가중치 없는 기본값으론, 카메라 평면과 벽 사이 거리가 정확히 1일 때 벽의 높이가
height
와 일치한다고 가정한다 - 화면상 표시되는 벽의 높이는 카메라 평면과 벽 사이의 거리 (
perpWallDist
) 에 비례한다
- 이때 취향에 따라
height
를 보정하여 사용하여도 상관 없다
height
의 가중치가 클 수록 벽의 높이가 높아진다
벽을 그리기 위한 벽의 시작점, 끝점 계산
startPoint = (height / 2) - (lineHeight / 2);
if (startPoint < 0)
startPoint = 0;
endPoint = (height / 2) + (lineHeight / 2);
벽 한 줄 그리기
1. 바닥색과 천장색을 채운다 (ceil, floor)
2. while (x < width
) 조건문을 통해 한 줄씩 계산하여 그리기
3. 벽 하나 완성
y면에 해당하는 벽에 다른 텍스쳐나 진한 색 벽을 적용하면 조금 더 그럴듯하게 보인다
'42 > 42s Cursus' 카테고리의 다른 글
[Rank 4] Cub3D - Raycasting 심화 - 텍스쳐 입히기 (2) | 2022.04.01 |
---|---|
[Rank 4] Cub3D - Raycasting 구현 ⑤ 키 이벤트 (0) | 2022.04.01 |
[Rank 4] Cub3D - Raycasting 구현 ③ 광선 이동거리 계산 및 보정 (0) | 2022.04.01 |
[Rank 4] Cub3D - Raycasting 구현 ② 반복문의 동작 (0) | 2022.04.01 |
[Rank 4] Cub3D - Raycasting 구현 ① 변수 설명 (0) | 2022.03.31 |
Comments