6 #include <pxr/usd/usdLux/diskLight.h>
7 #include <pxr/usd/usdLux/distantLight.h>
8 #include <pxr/usd/usdLux/rectLight.h>
9 #include <pxr/usd/usdLux/sphereLight.h>
36 #if PXR_VERSION >= 2111
37 pxr::UsdLuxLightAPI usd_light_api;
39 pxr::UsdLuxLight usd_light_api;
43 switch (light->
type) {
48 pxr::UsdLuxDiskLight disk_light = pxr::UsdLuxDiskLight::Define(
stage,
usd_path);
49 disk_light.CreateRadiusAttr().Set(light->
area_size, timecode);
50 #if PXR_VERSION >= 2111
51 usd_light_api = disk_light.LightAPI();
53 usd_light_api = disk_light;
58 pxr::UsdLuxRectLight rect_light = pxr::UsdLuxRectLight::Define(
stage,
usd_path);
59 rect_light.CreateWidthAttr().Set(light->
area_size, timecode);
60 rect_light.CreateHeightAttr().Set(light->
area_sizey, timecode);
61 #if PXR_VERSION >= 2111
62 usd_light_api = rect_light.LightAPI();
64 usd_light_api = rect_light;
69 pxr::UsdLuxRectLight rect_light = pxr::UsdLuxRectLight::Define(
stage,
usd_path);
70 rect_light.CreateWidthAttr().Set(light->
area_size, timecode);
71 rect_light.CreateHeightAttr().Set(light->
area_size, timecode);
72 #if PXR_VERSION >= 2111
73 usd_light_api = rect_light.LightAPI();
75 usd_light_api = rect_light;
82 pxr::UsdLuxSphereLight sphere_light = pxr::UsdLuxSphereLight::Define(
stage,
usd_path);
83 sphere_light.CreateRadiusAttr().Set(light->
area_size, timecode);
84 #if PXR_VERSION >= 2111
85 usd_light_api = sphere_light.LightAPI();
87 usd_light_api = sphere_light;
92 pxr::UsdLuxDistantLight distant_light = pxr::UsdLuxDistantLight::Define(
stage,
usd_path);
94 #if PXR_VERSION >= 2111
95 usd_light_api = distant_light.LightAPI();
97 usd_light_api = distant_light;
102 BLI_assert_msg(0,
"is_supported() returned true for unsupported light type");
111 usd_intensity = light->
energy;
114 usd_intensity = light->
energy / 100.0f;
116 usd_light_api.CreateIntensityAttr().Set(usd_intensity, timecode);
118 usd_light_api.CreateColorAttr().Set(pxr::GfVec3f(light->
r, light->
g, light->
b), timecode);
119 usd_light_api.CreateSpecularAttr().Set(light->
spec_fac, timecode);
#define BLI_assert_msg(a, msg)
Object is a sort of wrapper for general info.
const pxr::SdfPath & usd_path() const
pxr::UsdTimeCode get_export_time_code() const
const USDExporterContext usd_export_context_
virtual bool is_supported(const HierarchyContext *context) const override
USDLightWriter(const USDExporterContext &ctx)
virtual void do_write(HierarchyContext &context) override
const pxr::SdfPath usd_path
const pxr::UsdStageRefPtr stage