50 const pxr::GfVec2i &res,
51 const pxr::GfVec4f &border)
55 camera.SetProjection(params.
is_ortho ? pxr::GfCamera::Projection::Orthographic :
56 pxr::GfCamera::Projection::Perspective);
58 camera.SetFocalLength(params.
lens);
60 pxr::GfVec2f b_pos(border[0], border[1]), b_size(border[2], border[3]);
64 pxr::GfVec2f(1.0f,
float(res[1]) / res[0]) :
65 pxr::GfVec2f(
float(res[0]) / res[1], 1.0f);
67 aperture = pxr::GfCompMult(aperture, sensor_scale);
68 aperture = pxr::GfCompMult(aperture, b_size);
69 aperture *= params.
zoom;
75 camera.SetHorizontalAperture(aperture[0]);
76 camera.SetVerticalAperture(aperture[1]);
78 pxr::GfVec2f lens_shift = pxr::GfVec2f(params.
shiftx, params.
shifty);
79 lens_shift = pxr::GfCompDiv(lens_shift, sensor_scale);
81 lens_shift += b_pos + b_size * 0.5f - pxr::GfVec2f(0.5f);
82 lens_shift = pxr::GfCompDiv(lens_shift, b_size);
83 camera.SetHorizontalApertureOffset(lens_shift[0] * aperture[0]);
84 camera.SetVerticalApertureOffset(lens_shift[1] * aperture[1]);