반응형
c의 레이트레이스에서의 카메라 셋업
레이트레이싱으로 카메라를 세팅했는데 구면을 그리려고 하면 카메라를 0.0.0 원점으로 놓아도 물체가 원점에서 멀어집니다.
그게 내 코드야
t_camera camera(t_canvas *canvas, t_scene *sc)
{
t_camera cam;
double focal_len;
double viewport_height;
viewport_height = tan(sc->cam.fov * 13.14 / 180);
focal_len = 1.0;
cam.orig = sc->cam.cen;
cam.viewport_h = viewport_height;
cam.viewport_w = viewport_height * canvas->aspect_ratio;
cam.focal_len = focal_len;
cam.horizontal = make_vec(cam.viewport_w, 0, 0);
cam.vertical = make_vec(0, cam.viewport_h, 0);
// left corner, origin - horizontal / 2 - vertical / 2 - vec3(0,0,focal_length)
cam.left_bottom = sub_vec(sub_vec(sub_vec(cam.orig, div_vect(cam.horizontal, 2)),
div_vect(cam.vertical, 2)), make_vec(0, 0, focal_len));
return (cam);
}
sub_vec은 벡터의 빼기이고 div_vect는 벡터를 나누는 것입니다.누구라도 도와주세요.
언급URL : https://stackoverflow.com/questions/73598616/camera-setup-in-ray-tracing-in-c
반응형
'programing' 카테고리의 다른 글
Powershell을 사용하여 CSV 데이터를 원격 MariaDB 서버에 삽입 (0) | 2022.11.02 |
---|---|
JavaScript - URL 경로의 일부를 가져옵니다. (0) | 2022.11.02 |
Java에서 기본 액세스 지정자는 무엇입니까? (0) | 2022.11.02 |
MySQL에서 MariaDB로 이동 - 외부 키 제약 조건이 잘못 형성되었습니다. (0) | 2022.11.02 |
문자열을 소문자로 변환하는 MySQL 명령어가 있습니까? (0) | 2022.11.01 |