46 pxr::UsdVolVolume::FieldMap fields = volume_.GetFieldPaths();
48 for (pxr::UsdVolVolume::FieldMap::const_iterator it = fields.begin(); it != fields.end(); ++it) {
50 pxr::UsdPrim fieldPrim =
prim_.GetStage()->GetPrimAtPath(it->second);
52 if (!fieldPrim.IsA<pxr::UsdVolOpenVDBAsset>()) {
56 pxr::UsdVolOpenVDBAsset fieldBase(fieldPrim);
58 pxr::UsdAttribute filepathAttr = fieldBase.GetFilePathAttr();
60 if (filepathAttr.IsAuthored()) {
62 filepathAttr.Get(&fp, motionSampleTime);
64 if (filepathAttr.ValueMightBeTimeVarying()) {
65 std::vector<double> filePathTimes;
66 filepathAttr.GetTimeSamples(&filePathTimes);
68 if (!filePathTimes.empty()) {
69 int start =
int(filePathTimes.front());
70 int end =
int(filePathTimes.back());
72 volume->is_sequence = char(
true);
73 volume->frame_start = start;
74 volume->frame_duration = (end - start) + 1;
78 std::string filepath = fp.GetResolvedPath();
80 STRNCPY(volume->filepath, filepath.c_str());
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int