18 const pxr::GfVec2i &res,
19 const pxr::GfVec4f &border)
23 camera.SetProjection(
params.is_ortho ? pxr::GfCamera::Projection::Orthographic :
24 pxr::GfCamera::Projection::Perspective);
25 camera.SetClippingRange(pxr::GfRange1f(
params.clip_start,
params.clip_end));
26 camera.SetFocalLength(
params.lens);
28 pxr::GfVec2f b_pos(border[0], border[1]), b_size(border[2], border[3]);
32 pxr::GfVec2f(1.0f,
float(res[1]) / res[0]) :
33 pxr::GfVec2f(
float(res[0]) / res[1], 1.0f);
34 pxr::GfVec2f aperture = pxr::GfVec2f((
params.is_ortho) ?
params.ortho_scale : sensor_size);
35 aperture = pxr::GfCompMult(aperture, sensor_scale);
36 aperture = pxr::GfCompMult(aperture, b_size);
43 camera.SetHorizontalAperture(aperture[0]);
44 camera.SetVerticalAperture(aperture[1]);
46 pxr::GfVec2f lens_shift = pxr::GfVec2f(
params.shiftx,
params.shifty);
47 lens_shift = pxr::GfCompDiv(lens_shift, sensor_scale);
48 lens_shift += pxr::GfVec2f(
params.offsetx,
params.offsety);
49 lens_shift += b_pos + b_size * 0.5f - pxr::GfVec2f(0.5f);
50 lens_shift = pxr::GfCompDiv(lens_shift, b_size);
51 camera.SetHorizontalApertureOffset(lens_shift[0] * aperture[0]);
52 camera.SetVerticalApertureOffset(lens_shift[1] * aperture[1]);