22 #include <pxr/usd/usdGeom/camera.h>
23 #include <pxr/usd/usdGeom/tokens.h>
57 *r_sensor_y = camera->
sensor_x * sizey / sizex;
60 *r_sensor_x = camera->
sensor_y * sizex / sizey;
64 BLI_assert(!
"Camera fit should be either horizontal or vertical");
78 usd_camera.CreateProjectionAttr().Set(pxr::UsdGeomTokens->perspective);
84 usd_camera.CreateFocalLengthAttr().Set(camera->
lens, timecode);
86 float aperture_x, aperture_y;
89 float film_aspect = aperture_x / aperture_y;
90 usd_camera.CreateHorizontalApertureAttr().Set(aperture_x, timecode);
91 usd_camera.CreateVerticalApertureAttr().Set(aperture_y, timecode);
92 usd_camera.CreateHorizontalApertureOffsetAttr().Set(aperture_x * camera->
shiftx, timecode);
93 usd_camera.CreateVerticalApertureOffsetAttr().Set(aperture_y * camera->
shifty * film_aspect,
96 usd_camera.CreateClippingRangeAttr().Set(
105 usd_camera.CreateFocusDistanceAttr().Set(focus_distance, timecode);
Camera data-block and utility functions.
float BKE_camera_object_dof_distance(struct Object *ob)
int BKE_camera_sensor_fit(int sensor_fit, float sizex, float sizey)
struct Scene * DEG_get_evaluated_scene(const struct Depsgraph *graph)
pxr::UsdTimeCode get_export_time_code() const
const USDExporterContext usd_export_context_
USDCameraWriter(const USDExporterContext &ctx)
virtual bool is_supported(const HierarchyContext *context) const override
virtual void do_write(HierarchyContext &context) override
static void camera_sensor_size_for_render(const Camera *camera, const struct RenderData *rd, float *r_sensor_x, float *r_sensor_y)
struct SELECTID_Context context
struct CameraDOFSettings dof
const pxr::SdfPath usd_path
const pxr::UsdStageRefPtr stage