레퍼런스 perspective()

perspective()

3D 스케치에서 현재 카메라의 원근 투영을 설정합니다.

원근 투영에서, 카메라로부터 멀리 떨어진 도형은 카메라 근처에 있는 도형보다 더 작게 나타납니다. 단축법(foreshortening)이라고 불리는 이 기술은 사실적인 3D 장면을 만들며, WebGL 모드에서 기본적으로 사용됩니다.

perspective()는 뷰 절두체(viewing frustum)를 변경함으로써 카메라의 원근법을 변경합니다. 절두체는 카메라가 볼 수 있는 공간의 크기입니다. 이것의 모양은 꼭대기가 잘린 피라미드입니다. 카메라는 피라미드의 꼭대기가 있어야 하는 곳에 위치하고, 절두체의 꼭대기 (근처) 평면과 바닥 (멀리 떨어진) 평면 사이의 모든 것을 담습니다.

첫번째 매개 변수인 fovy는 카메라의 수직 시야입니다. 카메라의 시야가 얼마나 높거나 좁은지를 설명하는 각도입니다. 예를 들어, perspective(0.5)를 호출하면 카메라의 수직 시야가 0.5 라디안으로 설정됩니다. 기본적으로 fovy는 스케치의 높이와 카메라의 기본 z 좌표값인 800을 기반으로 계산됩니다. fovy의 기본값을 계산하는 공식은 2 * atan(height / 2 / 800)입니다.

두번째 매개 변수인 aspect는 카메라의 종횡비입니다. 이것은 맨 위 평면의 가로와 세로의 비율을 설명하는 숫자입니다. 예를 들어, perspective(0.5, 1.5)를 호출하면 카메라의 시야를 0.5 라디안으로 설정하고 종횡비를 1.5로 설정하여 정사각형 캔버스에서 도형을 더 얇아 보이게 합니다. 기본적으로, aspect는 width / height로 설정됩니다.

세번째 매개 변수인 near는 카메라에서 가까운 평면까지의 거리입니다. 예를 들어, perspective(0.5, 1.5, 100)를 호출하면 카메라의 시야를 0.5 라디안으로 설정하고, 종횡비를 1.5로 설정하고, 카메라에서 가까운 평면을 100 픽셀로 배치합니다. 카메라에서 100 픽셀 미만으로 그려진 어떤 모양도 볼 수 없습니다. 기본적으로 near는 카메라와 원점 사이의 기본 거리의 1/10인 0.1 * 800로 설정됩니다.

네번째 매개 변수인 far는 카메라에서 먼 평면까지의 거리입니다. 예를 들어, perspective(0.5, 1.5, 100, 10000)를 호출하면 카메라의 시야를 0.5 라디안으로 설정하고 , 종횡비를 1.5로 설정하고, 카메라에서 가까운 평면을 100 픽셀로 배치하고, 카메라에서 먼 평면을 10,000 픽셀로 배치합니다. 카메라에서 10,000 픽셀 이상 그려진 어떤 모양도 볼 수 없습니다. 기본적으로 far는 카메라와 원점 사이의 기본 거리의 10배인 10 * 800로 설정됩니다.

참고: perspective()는 WebGL 모드에서만 사용할 수 있습니다.

예제

구문

perspective([fovy], [aspect], [near], [far])

매개변수

fovy

카메라 절두체 수직 시야. 기본값 2 * atan(height / 2 / 800)

aspect

카메라 절두체 종횡비. 기본값 width / height

near

카메라에서 가까운, 잘린(clipping) 평면까지의 거리. 기본값 0.1 * 800

far

카메라에서 먼, 잘린 평면까지의 거리. 기본값 10 * 800

Notice any errors or typos? Please let us know. Please feel free to edit src/webgl/p5.Camera.js and open a pull request!

관련 레퍼런스