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);
57 camera.SetClippingRange(pxr::GfRange1f(
params.clip_start,
params.clip_end));
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);
66 pxr::GfVec2f aperture = pxr::GfVec2f((
params.is_ortho) ?
params.ortho_scale : sensor_size);
67 aperture = pxr::GfCompMult(aperture, sensor_scale);
68 aperture = pxr::GfCompMult(aperture, b_size);
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);
80 lens_shift += pxr::GfVec2f(
params.offsetx,
params.offsety);
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]);