Cleanup: spelling in comments
This commit is contained in:
parent
268f93d763
commit
0ba83fde1f
@ -257,7 +257,7 @@ class BlenderVolumeLoader : public VDBImageLoader {
|
||||
|
||||
BL::Volume b_volume;
|
||||
#ifdef WITH_OPENVDB
|
||||
/* Store tree user so that the openvdb grid that is shared with Blender is not unloaded. */
|
||||
/* Store tree user so that the OPENVDB grid that is shared with Blender is not unloaded. */
|
||||
blender::bke::VolumeTreeAccessToken tree_access_token;
|
||||
#endif
|
||||
};
|
||||
|
@ -516,7 +516,7 @@ class AddPresetTrackingSettings(AddPresetBase, Operator):
|
||||
|
||||
|
||||
class AddPresetEEVEERaytracing(AddPresetBase, Operator):
|
||||
"""Add or remove an EEVEE raytracing preset"""
|
||||
"""Add or remove an EEVEE ray-tracing preset"""
|
||||
bl_idname = "render.eevee_raytracing_preset_add"
|
||||
bl_label = "Add Raytracing Preset"
|
||||
preset_menu = "RENDER_PT_eevee_next_raytracing_presets"
|
||||
|
@ -681,7 +681,7 @@ void ANIM_armature_bonecoll_remove_from_index(bArmature *armature, int index)
|
||||
armature_bonecoll_is_child_of(
|
||||
armature, parent_bcoll_index, active_collection_index - 1))
|
||||
{
|
||||
/* The child preceeding active_collection_index is a sibling of the removed collection. */
|
||||
/* The child preceding active_collection_index is a sibling of the removed collection. */
|
||||
ANIM_armature_bonecoll_active_index_set(armature, active_collection_index - 1);
|
||||
}
|
||||
else {
|
||||
@ -721,7 +721,7 @@ int ANIM_armature_bonecoll_get_index_by_name(bArmature *armature, const char *na
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Clear BONE_COLLECTION_ANCESTORS_VISIBLE on all decendents of this bone collection. */
|
||||
/** Clear #BONE_COLLECTION_ANCESTORS_VISIBLE on all decedents of this bone collection. */
|
||||
static void ancestors_visible_descendants_clear(bArmature *armature, BoneCollection *parent_bcoll)
|
||||
{
|
||||
for (BoneCollection *bcoll : armature->collection_children(parent_bcoll)) {
|
||||
@ -730,7 +730,7 @@ static void ancestors_visible_descendants_clear(bArmature *armature, BoneCollect
|
||||
}
|
||||
}
|
||||
|
||||
/* Set or clear BONE_COLLECTION_ANCESTORS_VISIBLE on all decendents of this bone collection. */
|
||||
/** Set or clear #BONE_COLLECTION_ANCESTORS_VISIBLE on all decedents of this bone collection. */
|
||||
static void ancestors_visible_descendants_update(bArmature *armature, BoneCollection *parent_bcoll)
|
||||
{
|
||||
if (!parent_bcoll->is_visible_effectively()) {
|
||||
@ -749,7 +749,7 @@ static void ancestors_visible_descendants_update(bArmature *armature, BoneCollec
|
||||
}
|
||||
}
|
||||
|
||||
/* Set/clear BONE_COLLECTION_ANCESTORS_VISIBLE on this bone collection and all its decendents. */
|
||||
/** Set/clear BONE_COLLECTION_ANCESTORS_VISIBLE on this bone collection and all its decedents. */
|
||||
static void ancestors_visible_update(bArmature *armature,
|
||||
const BoneCollection *parent_bcoll,
|
||||
BoneCollection *bcoll)
|
||||
|
@ -1495,7 +1495,7 @@ class ANIM_armature_bone_collections_liboverrides
|
||||
ANIM_armature_bone_collections_testlist::SetUp();
|
||||
|
||||
/* TODO: make this clone `arm` into `dst_arm`, instead of assuming the below
|
||||
* code is still in sync with the superclass. */
|
||||
* code is still in sync with the super-class. */
|
||||
memset(&dst_arm, 0, sizeof(dst_arm));
|
||||
STRNCPY(dst_arm.id.name, "ARArmatureDST");
|
||||
|
||||
@ -1524,7 +1524,7 @@ class ANIM_armature_bone_collections_liboverrides
|
||||
|
||||
TEST_F(ANIM_armature_bone_collections_liboverrides, bcoll_insert_copy_after)
|
||||
{
|
||||
/* Mimick that a new root, two children, and two grandchildren were added via library overrides.
|
||||
/* Mimic that a new root, two children, and two grandchildren were added via library overrides.
|
||||
* These were saved in `arm`, and now need to be copied into `dst_arm`. */
|
||||
BoneCollection *src_root = ANIM_armature_bonecoll_new(&arm, "new_root");
|
||||
const int root_index = armature_bonecoll_find_index(&arm, src_root);
|
||||
|
@ -124,7 +124,7 @@ class SocketValueVariant {
|
||||
/**
|
||||
* Convert the stored value into a single value. For simple value access, this is not necessary,
|
||||
* because #get` does the conversion implicitly. However, it is necessary if one wants to use
|
||||
* #get_single_ptr. Context-dependend fields or grids will just result in a fallback value.
|
||||
* #get_single_ptr. Context-depended fields or grids will just result in a fallback value.
|
||||
*
|
||||
* The caller has to make sure that the stored value is a single value, field or grid.
|
||||
*/
|
||||
|
@ -31,7 +31,7 @@ namespace blender::bke::volume_grid {
|
||||
*
|
||||
* A grid contains the following:
|
||||
* - Transform: The mapping between index and object space. It also determines e.g. the voxel size.
|
||||
* - Meta-data: Contains e.g. the name and grid class (fog volume or sdf) and potentially other
|
||||
* - Meta-data: Contains e.g. the name and grid class (fog volume or SDF) and potentially other
|
||||
* data.
|
||||
* - Tree: This is the heavy data that contains all the voxel values.
|
||||
*
|
||||
@ -44,12 +44,12 @@ namespace blender::bke::volume_grid {
|
||||
* with independent meta-data and transforms. The tree is only actually copied when necessary.
|
||||
* - Lazy loading of the entire grid or just the tree: When constructing the #VolumeGridData it is
|
||||
* possible to provide a callback that lazy-loads the grid when it is first accessed. This is
|
||||
* especially benefitial when loading grids from a file and it's not clear in the beginning if
|
||||
* especially beneficial when loading grids from a file and it's not clear in the beginning if
|
||||
* the tree is actually needed. It's also supported to just load the meta-data and transform
|
||||
* first and to load the tree only when it's used. This allows e.g. transforming or renaming the
|
||||
* grid without loading the tree.
|
||||
* - Unloading of the tree: It's possible to unload the tree data when it is not in use. This is
|
||||
* only supported on a shared grid if the tree could be reloaded (e.g. by reading it from a vdb
|
||||
* only supported on a shared grid if the tree could be reloaded (e.g. by reading it from a VDB
|
||||
* file) and if no one is currently accessing the grid data.
|
||||
*/
|
||||
class VolumeGridData : public ImplicitSharingMixin {
|
||||
|
@ -44,8 +44,8 @@ struct GridsFromFile {
|
||||
};
|
||||
|
||||
/**
|
||||
* Get all the data stored in a .vdb file. This does not actually load the tree data, which is done
|
||||
* on demand.
|
||||
* Get all the data stored in a `.vdb` file.
|
||||
* This does not actually load the tree data, which is done on demand.
|
||||
*/
|
||||
GridsFromFile get_all_grids_from_file(StringRef file_path, int simplify_level = 0);
|
||||
|
||||
|
@ -89,7 +89,7 @@ void clear_tree(VolumeGridData &grid);
|
||||
|
||||
/**
|
||||
* Makes sure that the volume grid is loaded afterwards. This is necessary to call this for
|
||||
* correctness, because the grid will be loaded on demand anyway. Sometimes it may be benefitial
|
||||
* correctness, because the grid will be loaded on demand anyway. Sometimes it may be beneficial
|
||||
* for performance to load the grid eagerly though.
|
||||
*/
|
||||
void load(const VolumeGridData &grid);
|
||||
|
@ -16,7 +16,7 @@ namespace blender::bke::volume_grid {
|
||||
#ifdef WITH_OPENVDB
|
||||
|
||||
/**
|
||||
* Multiple #VolumeDataGrid can implictly share the same underlying tree with different
|
||||
* Multiple #VolumeDataGrid can implicitly share the same underlying tree with different
|
||||
* meta-data/transforms.
|
||||
*/
|
||||
class OpenvdbTreeSharingInfo : public ImplicitSharingInfo {
|
||||
@ -247,7 +247,7 @@ GVolumeGrid VolumeGridData::copy() const
|
||||
{
|
||||
std::lock_guard lock{mutex_};
|
||||
this->ensure_grid_loaded();
|
||||
/* Can't use #MEM_new because the default construtor is private. */
|
||||
/* Can't use #MEM_new because the default constructor is private. */
|
||||
VolumeGridData *new_copy = new (MEM_mallocN(sizeof(VolumeGridData), __func__)) VolumeGridData();
|
||||
/* Makes a deep copy of the meta-data but shares the tree. */
|
||||
new_copy->grid_ = grid_->copyGrid();
|
||||
|
@ -15,7 +15,7 @@ void main()
|
||||
ivec2 texel = ivec2(gl_GlobalInvocationID.xy);
|
||||
float depth = texture_load(depth_tx, texel).x;
|
||||
|
||||
/* Compute Vu in equation (7). */
|
||||
/* Compute `Vu` in equation (7). */
|
||||
const float distance_to_image_of_object = (focal_length * depth) / (depth - focal_length);
|
||||
|
||||
/* Compute C in equation (8). Notice that the last multiplier was included in the absolute since
|
||||
|
@ -510,7 +510,7 @@ void DeferredLayer::end_sync()
|
||||
RenderBuffersInfoData &rbuf_data = inst_.render_buffers.data;
|
||||
|
||||
/* NOTE: For tile-based GPU architectures, barriers are not always needed if implicit local
|
||||
* ordering is guarnteed via either blending order or explicit raster_order_groups. */
|
||||
* ordering is guaranteed via either blending order or explicit raster_order_groups. */
|
||||
bool is_tbdr_arch_metal = (GPU_platform_architecture() == GPU_ARCHITECTURE_TBDR) &&
|
||||
(GPU_backend_get_type() == GPU_BACKEND_METAL);
|
||||
|
||||
|
@ -1206,7 +1206,7 @@ enum GBufferMode : uint32_t {
|
||||
GBUF_REFRACTION_COLORLESS = 13u,
|
||||
|
||||
/** Special configurations. Packs multiple closures into less layer. */
|
||||
/* TODO(fclem): This is isn't currently working due to monolitic nature of the evaluation. */
|
||||
/* TODO(@fclem): This is isn't currently working due to monolithic nature of the evaluation. */
|
||||
GBUF_METAL_CLEARCOAT = 15u,
|
||||
|
||||
/** IMPORTANT: Needs to be less than 16 for correct packing in g-buffer header. */
|
||||
|
@ -59,7 +59,7 @@ void main()
|
||||
for (int i = 0; i < GBUFFER_LAYER_MAX && i < gbuf.closure_count; i++) {
|
||||
vec3 closure_light = load_radiance_direct(texel, i);
|
||||
|
||||
/* TODO(fclem): Enable for OpenGL and Vulkan once they fully support specialization constants.
|
||||
/* TODO(fclem): Enable for OpenGL and VULKAN once they fully support specialization constants.
|
||||
*/
|
||||
#ifndef GPU_METAL
|
||||
bool use_combined_lightprobe_eval = uniform_buf.pipeline.use_combined_lightprobe_eval;
|
||||
|
@ -87,7 +87,7 @@ void main()
|
||||
#ifdef MAT_SUBSURFACE
|
||||
if (has_sss) {
|
||||
/* Add to diffuse light for processing inside the Screen Space SSS pass.
|
||||
* The tranlucent light is not outputed as a separate quantity because
|
||||
* The translucent light is not outputted as a separate quantity because
|
||||
* it is over the closure_count. */
|
||||
vec3 sss_profile = subsurface_transmission(gbuffer_closure_get(gbuf, 0).data.rgb, thickness);
|
||||
stack.cl[0].light_shadowed += stack.cl[gbuf.closure_count].light_shadowed * sss_profile;
|
||||
|
@ -85,7 +85,7 @@ struct GBufferReader {
|
||||
/* -------------------------------------------------------------------- */
|
||||
/** \name Load / Store macros
|
||||
*
|
||||
* This allows for writting unit tests that read and write during the same shader invocation.
|
||||
* This allows for writing unit tests that read and write during the same shader invocation.
|
||||
* \{ */
|
||||
|
||||
#ifdef GBUFFER_LOAD
|
||||
@ -666,7 +666,7 @@ GBufferWriter gbuffer_pack(GBufferDataUndetermined data_in)
|
||||
|
||||
if (has_diffuse) {
|
||||
if (has_sss) {
|
||||
/* Subsurface need to be first to be outputed in first lighting texture. */
|
||||
/* Subsurface need to be first to be outputted in first lighting texture. */
|
||||
gbuffer_closure_subsurface_pack(gbuf, data_in.diffuse);
|
||||
}
|
||||
else {
|
||||
@ -692,7 +692,7 @@ GBufferWriter gbuffer_pack(GBufferDataUndetermined data_in)
|
||||
}
|
||||
}
|
||||
|
||||
/* TODO(fclem): Allow misxing of translucent and refraction. */
|
||||
/* TODO(@fclem): Allow mixing of translucent and refraction. */
|
||||
if (has_translucent && !has_refraction) {
|
||||
gbuffer_closure_translucent_pack(gbuf, data_in.translucent);
|
||||
}
|
||||
@ -833,4 +833,4 @@ GBufferReader gbuffer_read(samplerGBufferHeader header_tx,
|
||||
return gbuf;
|
||||
}
|
||||
|
||||
/** \} */
|
||||
/** \} */
|
||||
|
@ -36,7 +36,7 @@ void main()
|
||||
gbuf_header_tx, gbuf_closure_tx, gbuf_normal_tx, texel_fullres);
|
||||
|
||||
#ifndef GPU_METAL
|
||||
/* TODO(fclem): Support specialization on OpenGL and Vulkan. */
|
||||
/* TODO(fclem): Support specialization on OpenGL and VULKAN. */
|
||||
int closure_index = uniform_buf.raytrace.closure_index;
|
||||
#endif
|
||||
|
||||
|
@ -75,7 +75,7 @@ void main()
|
||||
gbuf_header_tx, gbuf_closure_tx, gbuf_normal_tx, texel_fullres);
|
||||
|
||||
#ifndef GPU_METAL
|
||||
/* TODO(fclem): Support specialization on OpenGL and Vulkan. */
|
||||
/* TODO(fclem): Support specialization on OpenGL and VULKAN. */
|
||||
int closure_index = uniform_buf.raytrace.closure_index;
|
||||
#endif
|
||||
|
||||
|
@ -36,7 +36,7 @@ void main()
|
||||
uniform_buf.raytrace.resolution_bias;
|
||||
|
||||
#ifndef GPU_METAL
|
||||
/* TODO(fclem): Support specialization on OpenGL and Vulkan. */
|
||||
/* TODO(fclem): Support specialization on OpenGL and VULKAN. */
|
||||
int closure_index = uniform_buf.raytrace.closure_index;
|
||||
#endif
|
||||
|
||||
|
@ -38,7 +38,7 @@ void main()
|
||||
uniform_buf.raytrace.resolution_bias;
|
||||
|
||||
#ifndef GPU_METAL
|
||||
/* TODO(fclem): Support specialization on OpenGL and Vulkan. */
|
||||
/* TODO(fclem): Support specialization on OpenGL and VULKAN. */
|
||||
int closure_index = uniform_buf.raytrace.closure_index;
|
||||
#endif
|
||||
|
||||
@ -78,7 +78,7 @@ void main()
|
||||
ray_view.max_time = 1000.0;
|
||||
|
||||
#ifndef GPU_METAL
|
||||
/* TODO(fclem): Support specialization on OpenGL and Vulkan. */
|
||||
/* TODO(fclem): Support specialization on OpenGL and VULKAN. */
|
||||
bool trace_refraction = uniform_buf.raytrace.trace_refraction;
|
||||
#endif
|
||||
|
||||
|
@ -1023,11 +1023,12 @@ static bool move_to_collection_poll(bContext *C)
|
||||
/**
|
||||
* Encode the parameters into an integer, and return as void*.
|
||||
*
|
||||
* This makes it possible to use these values and pass them directly as 'custom data' pointer to
|
||||
* `uiItemMenuF()`. This makes it possible to give every menu a unique bone collection index for
|
||||
* which it should show the child collections, without having to allocate memory or use static
|
||||
* variables. See `move_to_collection_invoke()` in `object_edit.cc` for the alternative that I
|
||||
* (Sybren) wanted to avoid. */
|
||||
* NOTE(@sybren): This makes it possible to use these values and pass them directly as
|
||||
* 'custom data' pointer to `uiItemMenuF()`. This makes it possible to give every menu a unique
|
||||
* bone collection index for which it should show the child collections, without having to allocate
|
||||
* memory or use static variables. See `move_to_collection_invoke()` in `object_edit.cc`
|
||||
* for the alternative that I wanted to avoid.
|
||||
*/
|
||||
static void *menu_custom_data_encode(const int bcoll_index, const bool is_move_operation)
|
||||
{
|
||||
/* Add 1 to the index, so that it's never negative (it can be -1 to indicate 'all roots'). */
|
||||
|
@ -2293,9 +2293,9 @@ uiLayout *uiLayoutRow(uiLayout *layout, bool align);
|
||||
* property name pair. This gives the caller flexibility to decide who should own the open-state.
|
||||
*
|
||||
* \param C: The context is necessary because sometimes the panel may be forced to be open by the
|
||||
* context even of the open-property is `false`. This can happen with e.g. property search.
|
||||
* \param layout: The `uiLayout` that should contain the subpanel. Only layouts that span the full
|
||||
* width of the region are supported for now.
|
||||
* context even of the open-property is `false`. This can happen with e.g. property search.
|
||||
* \param layout: The `uiLayout` that should contain the sub-panel.
|
||||
* Only layouts that span the full width of the region are supported for now.
|
||||
* \param name: Text that's shown in the panel header. It should already be translated.
|
||||
* \param open_prop_owner: Data that contains the open-property.
|
||||
* \param open_prop_name: Name of the open-property in `open_prop_owner`.
|
||||
|
@ -219,7 +219,7 @@ class BoneCollectionItem : public AbstractTreeViewItem {
|
||||
uiItemL(sub, "", icon);
|
||||
}
|
||||
|
||||
/* Visibility eyecon. */
|
||||
/* Visibility eye icon. */
|
||||
{
|
||||
uiLayout *visibility_sub = uiLayoutRow(sub, true);
|
||||
uiLayoutSetActive(visibility_sub, bone_collection_.is_visible_ancestors());
|
||||
|
@ -26,7 +26,7 @@
|
||||
|
||||
static CLG_LogRef LOG = {"io.drop_import_file"};
|
||||
|
||||
/* Retuns the list of file paths stored in #WM_OT_drop_import_file operator properties. */
|
||||
/** Returns the list of file paths stored in #WM_OT_drop_import_file operator properties. */
|
||||
static blender::Vector<std::string> drop_import_file_paths(const wmOperator *op)
|
||||
{
|
||||
blender::Vector<std::string> result;
|
||||
|
@ -207,7 +207,7 @@ struct Node {
|
||||
bool applied;
|
||||
|
||||
/* shape keys */
|
||||
char shapeName[MAX_NAME]; /* sizeof(KeyBlock::name). */
|
||||
char shapeName[MAX_NAME]; /* `sizeof(KeyBlock::name)`. */
|
||||
|
||||
/* Geometry modification operations.
|
||||
*
|
||||
|
@ -58,7 +58,7 @@ static blender::float2 rgb_to_uv_normalized(const float rgb[3])
|
||||
{
|
||||
/* Exact same math as rgb_to_yuv BT709 case. Duplicated here
|
||||
* since this function is called a lot, and non-inline function
|
||||
* call plus colorspace switch in there overhead does add up. */
|
||||
* call plus color-space switch in there overhead does add up. */
|
||||
float r = rgb[0], g = rgb[1], b = rgb[2];
|
||||
/* We don't need y. */
|
||||
float u = -0.09991f * r - 0.33609f * g + 0.436f * b;
|
||||
|
@ -19,7 +19,7 @@ namespace blender::ed::seq {
|
||||
struct ScopeHistogram {
|
||||
/* Byte images just have bins for the 0..255 range. */
|
||||
static constexpr int BINS_BYTE = 256;
|
||||
/* Float images spead -0.25..+1.25 range over 512 bins. */
|
||||
/* Float images spread -0.25..+1.25 range over 512 bins. */
|
||||
static constexpr int BINS_FLOAT = 512;
|
||||
static constexpr float FLOAT_VAL_MIN = -0.25f;
|
||||
static constexpr float FLOAT_VAL_MAX = 1.25f;
|
||||
|
@ -517,7 +517,7 @@ static void draw_seq_waveform_overlay(TimelineDrawContext *timeline_ctx,
|
||||
CLAMP_MIN(value_min, -1.0f);
|
||||
}
|
||||
|
||||
/* We are drawing only half ot the waveform, mirroring the lower part upwards.
|
||||
/* We are drawing only half to the waveform, mirroring the lower part upwards.
|
||||
* If both min and max are on the same side of zero line, we want to draw a bar
|
||||
* between them. If min and max cross zero, we want to fill bar from zero to max
|
||||
* of those. */
|
||||
|
@ -102,7 +102,7 @@ struct MTLRenderPipelineStateInstance {
|
||||
/* Common compute pipeline state. */
|
||||
struct MTLComputePipelineStateCommon {
|
||||
|
||||
/* Threadgroup information is common for all PSO variants.*/
|
||||
/* Thread-group information is common for all PSO variants. */
|
||||
int threadgroup_x_len = 1;
|
||||
int threadgroup_y_len = 1;
|
||||
int threadgroup_z_len = 1;
|
||||
|
@ -56,7 +56,7 @@ const char *MTLLogParser::parse_line(const char *source_combined,
|
||||
int64_t file_start = src.find(needle);
|
||||
if (file_start == -1) {
|
||||
/* Can be generated code or wrapper code outside of the main sources.
|
||||
* But should be already catched by the above case. */
|
||||
* But should be already caught by the above case. */
|
||||
log_item.cursor.row = -1;
|
||||
wrapper_error_ = true;
|
||||
}
|
||||
@ -74,7 +74,7 @@ const char *MTLLogParser::parse_line(const char *source_combined,
|
||||
}
|
||||
}
|
||||
else if (parsed_error_) {
|
||||
/* Skip the redundant lines that we be outputed above the error. */
|
||||
/* Skip the redundant lines that we be outputted above the error. */
|
||||
return skip_line(log_line);
|
||||
}
|
||||
else if (wrapper_error_) {
|
||||
|
@ -208,8 +208,8 @@ void curves_vector(vec3 vector,
|
||||
vec3 end_slopes,
|
||||
out vec3 result)
|
||||
{
|
||||
/* Evaluate each component on its curve map. The componenets are first normalized into the [0, 1]
|
||||
* range. */
|
||||
/* Evaluate each component on its curve map.
|
||||
* The components are first normalized into the [0, 1] range. */
|
||||
vec3 parameters = (vector - range_minimums) * range_dividers;
|
||||
vec3 coordinates = compute_curve_map_coordinates(parameters);
|
||||
result.x = texture(curve_map, vec2(coordinates.x, layer)).x;
|
||||
|
@ -45,7 +45,7 @@ void get_armature_bone_names(const Object *ob_arm, bool use_deform, Vector<std::
|
||||
/**
|
||||
* Return the USD joint path corresponding to the given bone. For example, for the bone
|
||||
* "Hand", this function might return the full path "Shoulder/Elbow/Hand" of the joint
|
||||
* in the hierachy.
|
||||
* in the hierarchy.
|
||||
*
|
||||
* \param bone: The bone whose path will be queried.
|
||||
* \return: The path to the joint
|
||||
|
@ -135,7 +135,7 @@ void ensure_blend_shape_skeleton(pxr::UsdStageRefPtr stage, pxr::UsdPrim &mesh_p
|
||||
skel.GetRestTransformsAttr().Set(rest_transforms);
|
||||
|
||||
/* Some DCCs seem to require joint names to bind the
|
||||
* skeleton to blendshapes. */
|
||||
* skeleton to blend-shapes. */
|
||||
pxr::VtTokenArray joints({usdtokens::joint1});
|
||||
skel.CreateJointsAttr().Set(joints);
|
||||
}
|
||||
@ -284,13 +284,13 @@ void create_blend_shapes(pxr::UsdStageRefPtr stage,
|
||||
point_indices_attr.Set(indices);
|
||||
}
|
||||
|
||||
/* Set the blendshape names and targets on the shape. */
|
||||
/* Set the blend-shape names and targets on the shape. */
|
||||
pxr::UsdAttribute blendshape_attr = skel_api.CreateBlendShapesAttr();
|
||||
blendshape_attr.Set(blendshape_names);
|
||||
skel_api.CreateBlendShapeTargetsRel().SetTargets(blendshape_paths);
|
||||
|
||||
/* Some DCCs seem to require joint indices and weights to
|
||||
* bind the skeleton for blendshapes, so we we create these
|
||||
* bind the skeleton for blend-shapes, so we we create these
|
||||
* primvars, if needed. */
|
||||
|
||||
if (!skel_api.GetJointIndicesAttr().HasAuthoredValue()) {
|
||||
|
@ -44,9 +44,9 @@ const Key *get_mesh_shape_key(const Object *obj);
|
||||
bool is_mesh_with_shape_keys(const Object *obj);
|
||||
|
||||
/**
|
||||
* Convert shape keys on the given object to USD blend shapes. The blend shapes
|
||||
* will be added to the stage as children of the given USD mesh prim. The blendshape
|
||||
* names and targets will also be set as properites on the prim.
|
||||
* Convert shape keys on the given object to USD blend shapes. The blend-shapes
|
||||
* will be added to the stage as children of the given USD mesh prim. The blend-shape
|
||||
* names and targets will also be set as properties on the primitive.
|
||||
*
|
||||
* \param stage: The stage
|
||||
* \param obj: The mesh object whose shape keys will be converted to blend shapes
|
||||
|
@ -396,7 +396,7 @@ void USDStageReader::collect_readers(Main *bmain)
|
||||
collect_readers(bmain, root, readers_);
|
||||
|
||||
if (params_.support_scene_instancing) {
|
||||
/* Collect the scenegraph instance prototypes. */
|
||||
/* Collect the scene-graph instance prototypes. */
|
||||
std::vector<pxr::UsdPrim> protos = stage_->GetPrototypes();
|
||||
|
||||
for (const pxr::UsdPrim &proto_prim : protos) {
|
||||
|
@ -39,7 +39,7 @@ class USDStageReader {
|
||||
* traversal, for importing unused materials. */
|
||||
blender::Vector<std::string> material_paths_;
|
||||
|
||||
/* Readers for scenegraph instance prototypes. */
|
||||
/* Readers for scene-graph instance prototypes. */
|
||||
ProtoReaderMap proto_readers_;
|
||||
|
||||
public:
|
||||
|
@ -1116,7 +1116,7 @@ void skel_export_chaser(pxr::UsdStageRefPtr stage,
|
||||
const ObjExportMap &shape_key_mesh_export_map,
|
||||
const Depsgraph *depsgraph)
|
||||
{
|
||||
/* We may need to compute the world transforms of certain prims when
|
||||
/* We may need to compute the world transforms of certain primitives when
|
||||
* setting skinning data. Using a shared transform cache can make computing
|
||||
* the transforms more efficient. */
|
||||
pxr::UsdGeomXformCache xf_cache(1.0);
|
||||
@ -1152,7 +1152,7 @@ void skinned_mesh_export_chaser(pxr::UsdStageRefPtr stage,
|
||||
CLOG_WARN(&LOG, "Invalid armature modifier for skinned mesh %s", mesh_obj->id.name + 2);
|
||||
continue;
|
||||
}
|
||||
/* Look up the USD skeleton correpsoning to the armature object. */
|
||||
/* Look up the USD skeleton corresponding to the armature object. */
|
||||
const pxr::SdfPath *path = armature_export_map.lookup_ptr(arm_obj);
|
||||
if (!path) {
|
||||
CLOG_WARN(&LOG, "No export map entry for armature object %s", mesh_obj->id.name + 2);
|
||||
@ -1175,7 +1175,7 @@ void shape_key_export_chaser(pxr::UsdStageRefPtr stage,
|
||||
{
|
||||
Map<pxr::SdfPath, pxr::SdfPathSet> skel_to_mesh;
|
||||
|
||||
/* We will keep track of the mesh prims to clean up the temporary
|
||||
/* We will keep track of the mesh primitives to clean up the temporary
|
||||
* weights attribute at the end. */
|
||||
Vector<pxr::UsdPrim> mesh_prims;
|
||||
|
||||
@ -1194,7 +1194,7 @@ void shape_key_export_chaser(pxr::UsdStageRefPtr stage,
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Keep track of all the mesh prims with blend shapes, for cleanup below. */
|
||||
/* Keep track of all the mesh primitives with blend shapes, for cleanup below. */
|
||||
mesh_prims.append(mesh_prim);
|
||||
|
||||
pxr::UsdSkelBindingAPI skel_api = pxr::UsdSkelBindingAPI::Apply(mesh_prim);
|
||||
|
@ -99,7 +99,7 @@ using ObjExportMap = Map<const Object *, pxr::SdfPath>;
|
||||
* \param stage: The stage
|
||||
* \param armature_export_map: Map armature objects to USD skeletons
|
||||
* \param skinned_mesh_export_map: Map mesh objects to USD skinned meshes
|
||||
* \param shape_key_export_map: Map mesh objects with shape keye to USD meshes
|
||||
* \param shape_key_export_map: Map mesh objects with shape-key to USD meshes
|
||||
* with blend shape targets
|
||||
* \param depsgraph: The dependency graph in which objects were evaluated
|
||||
*/
|
||||
@ -128,7 +128,7 @@ void skinned_mesh_export_chaser(pxr::UsdStageRefPtr stage,
|
||||
* Complete the export process for shape keys.
|
||||
*
|
||||
* \param stage: The stage
|
||||
* \param shape_key_export_map: Map mesh objects with shape keye to USD meshes
|
||||
* \param shape_key_export_map: Map mesh objects with shape-key to USD meshes
|
||||
* with blend shape targets
|
||||
*/
|
||||
void shape_key_export_chaser(pxr::UsdStageRefPtr stage,
|
||||
|
@ -95,7 +95,7 @@ void create_skel_roots(pxr::UsdStageRefPtr stage, const USDExportParams ¶ms)
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Try to find a commmon ancestor of the skinned prim and its bound skeleton. */
|
||||
/* Try to find a common ancestor of the skinned prim and its bound skeleton. */
|
||||
pxr::UsdSkelRoot prim_skel_root = pxr::UsdSkelRoot::Find(prim);
|
||||
pxr::UsdSkelRoot skel_skel_root = pxr::UsdSkelRoot::Find(skel.GetPrim());
|
||||
|
||||
|
@ -11,7 +11,7 @@ namespace blender::io::usd {
|
||||
|
||||
/**
|
||||
* We must structure the scene graph to encapsulate skinned prim under a UsdSkelRoot
|
||||
* prim. Per the USD documentation, a SkelRoot is a
|
||||
* prim. Per the USD documentation, a SkelRoot is a:
|
||||
*
|
||||
* "Boundable prim type used to identify a scope beneath which skeletally-posed primitives are
|
||||
* defined. A SkelRoot must be defined at or above a skinned primitive for any skinning behaviors
|
||||
|
@ -31,9 +31,11 @@ namespace usdtokens {
|
||||
static const pxr::TfToken Anim("Anim", pxr::TfToken::Immortal);
|
||||
} // namespace usdtokens
|
||||
|
||||
/* Get the pose matrix for the given channe. The matrix is computed
|
||||
* relative to its parent, if a parent exists. The returned matrix
|
||||
* corresponds to the USD joint-local transform. */
|
||||
/**
|
||||
* Get the pose matrix for the given channel.
|
||||
* The matrix is computed relative to its parent, if a parent exists.
|
||||
* The returned matrix corresponds to the USD joint-local transform.
|
||||
*/
|
||||
static pxr::GfMatrix4d parent_relative_pose_mat(const bPoseChannel *pchan)
|
||||
{
|
||||
/* Note that the float matrix will be returned as GfMatrix4d, because
|
||||
|
@ -256,7 +256,7 @@ class DefocusOperation : public NodeOperation {
|
||||
}
|
||||
|
||||
/* Computes the distance in meters to the image of the focus point across a lens of the specified
|
||||
* focal length. This computes Vp in equation (7) of the paper:
|
||||
* focal length. This computes `Vp` in equation (7) of the paper:
|
||||
*
|
||||
* Potmesil, Michael, and Indranil Chakravarty. "A lens and aperture camera model for synthetic
|
||||
* image generation." ACM SIGGRAPH Computer Graphics 15.3 (1981): 297-305. */
|
||||
|
@ -99,6 +99,7 @@ dict_custom = {
|
||||
"deduplicating",
|
||||
"deduplication",
|
||||
"defocus",
|
||||
"defocusing",
|
||||
"defragment",
|
||||
"defragmented",
|
||||
"defragmenting",
|
||||
@ -349,6 +350,7 @@ dict_custom = {
|
||||
"sidedness",
|
||||
"simplices",
|
||||
"situationally",
|
||||
"skeletally",
|
||||
"skinnable",
|
||||
"skippable",
|
||||
"sortable",
|
||||
@ -486,6 +488,7 @@ dict_custom = {
|
||||
"unshadowed",
|
||||
"unshared",
|
||||
"unsharp",
|
||||
"unspecialized",
|
||||
"unsqueezed",
|
||||
"unstretch",
|
||||
"unsubdivided",
|
||||
|
Loading…
Reference in New Issue
Block a user