Age | Commit message (Collapse) | Author |
|
Contributed by luzpaz.
Differential Revision: https://developer.blender.org/D5801
|
|
These were moved to the object level in rBca64bd0aacda.
|
|
If the file contains a parent chain that interleaves nodes with
is_armature true and false, the parent armature may wrongly pick
up meshes owned by the child, causing an exception later. No idea
if such FBX files are valid or malformed, but this is a simple fix.
Differential Revision: https://developer.blender.org/D13224
|
|
Currently when exporting a subdivision surface (//Geometry / Export Subdivision Surface// enabled) the exporter uses a hard-coded BoundaryRule rule of 2 (CreaseAll, meaning hard corners). The subdivision surface modifier has an option for boundary smoothing mode so this patch propagates that information to the FBX exporter.
Example .fbx file with this feature exported from modified Blender 2.93: https://github.com/bqqbarbhg/ufbx/blob/overhaul/data/blender_293x_subsurf_boundary_7400_binary.fbx
Reviewed By: mont29
Differential Revision: https://developer.blender.org/D12204
|
|
This was (correctly) asserting before, now handle this more gracefully
and just skip (and warn about this) a custom property that has an
invalid value set.
Seems there are a couple of exporters out there that do this wrong, I
think this tradeoff can be made though.
Fixes T91062, T81657, T83501, T86595
Maniphest Tasks: T91062, T86595, T83501, T81657
Differential Revision: https://developer.blender.org/D12354
|
|
Blender has a limit for both vertex color layers and UV layers. The
functions `bpy.types.Mesh.vertex_colors.new()` and
`bpy.types.Mesh.uv_layers.new()` will return `None` once the limit
is reached. The FBX importer and glTF importer didn't handle this
case before and attempted to access the `data`, which failed. This
patch adds the missing checks. In case no vertex colors or uv map
can be created, the assignment of colors or uv coordinates is
skipped.
Reviewed By: mont29, julien
Differential Revision: https://developer.blender.org/D9613
|
|
|
|
gracefully
If the 'Include Custom Normals' import option is used, and the FBX looks
like it has LayerElementNormal (but lacks the actual data), dont throw
an error, just print a warning and continue.
(this has a downside, since such stuff can easily go unnoticed then, but
this seems to be done elsewhere as well...)
Maniphest Tasks: T78083
Differential Revision: https://developer.blender.org/D8122
|
|
Because, why would you stick to a single separator between name and
value, right? Where would be the fun in that?
|
|
Further optimizations on top of rBA8e70aeae091c5b357.
Note that these changes require latest master (2.90.3 at least).
|
|
Note that this patches changes how we insert keyframes, since we cannot
use the `'NEEDED'` option of the slower previous code, we may generate
more keys than needed.
This change gives about 60 times speedup when importing heavy animations
though, so think that trade-of is totally acceptable.
Patch by @Hotox, with some fixes and cleanup by @mont29.
Differential: https://developer.blender.org/D7762
|
|
|
|
not invert)."
While it's nice to see attempts to fix cameras (their orientations are know
broken in some case for ages), this commit has several issues:
- It did not get any review.
- It changes default behavior.
- It adds yet another parameter.
- It does not actually fixes anything, nor does it explain anything.
The first two points in particular are red lights.
But the last two are also more and more annoying, unless someone can provide
a good, valid understanding of how camera orientation is supposed to work
in FBX, am fairly not keen on accepting any more hack like that.
This is just adding more parameters that users just don’t understand,
and which generates by themselves even more bug reports.
This reverts commit 9eddf664d68a2ed6be1bf17b0b26d6d66d81c0eb.
|
|
invert).
|
|
While it's an error case, the ascii detection caused
the missing file case to raise a full exception before running
code which handles this case more gracefully.
|
|
that value was not exported, and imported with some weird conversion
without any proper explanation for it.
For now, just export and import the value as-is, we can always come back
and tweak it once we know what BumpFactor is supposed to be exactly in
FBX...
|
|
|
|
Blender maps crease sharpness from internal [0, 1] to OpenSubdiv's
[0, 10] by squaring the value (see `get_edge_sharpness()`).
Other software seems to treat FBX crease as linear times 10 using OpenSubdiv.
This commits attempts to make FBX exported by Blender consistent with the
results from FBX exported from Maya regarding crease intensity.
Differential Revision: https://developer.blender.org/D5930
|
|
Note that such complex rig features remains barely supported anyway,
such complex setup will require some manual editing after import...
|
|
There are still other add-ons to fix.
|
|
Based on investigation and patch by Yannick (@kschoice), many thanks!
|
|
Add option 'Export Subdivision Surface' to the FBX exporter (disabled by default).
When enabled the exporter will write the **last active Catmull-Clark subdivision surface modifier**
as FBX properties instead of applying it.
Edge crease data is also written to the FBX file if 'Use Creases' is enabled in the subsurf modifier.
Reviewers: mont29
Tags: #add-ons
Differential Revision: https://developer.blender.org/D4982
|
|
Relative filepath having a 'absolute look' (starting with a path
separator) can lead to recursively checking for the whole root!
This is nasty, so try to avoid it by making relative paths actually
relative.
Based on D5143 (report and patch) by andreas atteneder (@atti), thanks!
|
|
Classical stupid issues when trying to shorten an utf8 string to match a
given bytes length... ;)
|
|
3DSMax can produce pure white `TransparentColor` with (default, from
template) `TransparencyFactor` of 0.0... Looks like we are supposed to
use `Opacity` then... sigh...
|
|
Much better option than using Principled's Transmission setting.
Related to T64609.
|
|
|
|
This reverts commit 9524a08a60cf570e9b0540a6ae195a269b403817.
|
|
Sequell to rB55d0ff708c617f, grrrrr....
|
|
Although we had no way to reproduce the issue, that fix indeed seems
needed from code logic point of view.
Investigation and patch by Pete Chown (@PeteX), thanks!
|
|
more maps.
Do not do 'smart' init of our UV/VCol data layers, this is lost
computation and can generate issues when not all items are explicitely
defined in FBX file.
|
|
Blender only supports 8 UVMaps per mesh, avoid crashing addon when
trying to import more.
|
|
Usual crap with PoS of FBX... feeling bad though, that report skipped
out of my radar for too long. :|
|
|
Quiet hard to believe, but looks like that critical recursive call has
never been there... This basically broke any real-life case of 'objects
parented to bones' relationships.
Scaling issues remain though, this will be for some other time.
|
|
|
|
Identity checks should never be used with strings, it may fail based on
Python's interning logic.
|
|
|
|
|
|
Differential Revision: https://developer.blender.org/D3746
|
|
Getting textures to work was a bit tricky, since we basically have no
more texture IDs in modern shaders (they are mere nodes).
Modified specular conversion to be quadratic (between FBX Phong exponent
to Pricipled specular factor).
Also fixed several issues in both importers and exporters.
And cleaned up ugly usage of 'mat' short name for materials in exporter
(mat is reserved for matrix in Blneder code in general, 'ma' is short
for material).
|
|
Using new ShaderWrapper from nodes_shader_utils.
Note that porting is not exact same as in 2.7x (which was using
cycles_shader_compat wrapper). New one does not support as many
features, and not in the same exact way (since it's based on Principled
BSDF), but goal here is to have soon a matching nodal material support
in the exporter...
|
|
That's now useless in 2.8, we always 'use cycles' materials. :p
|
|
That kind of display helpers are now fully overlays settings, no way for
us to set that to meshes anymore.
|
|
|
|
Some typos, and missing named parameters...
|
|
Default cube scene exports and imports ok (besides missing features like
nodal material handling). Anything else is either known broken, or yet
to be tested. :P
Note that I raised main number of addon version, so that we can keep
track of smaller fixes that can be done in both 2.7x and 2.8 versions of
the addon.
|
|
Conflicts:
io_scene_fbx/export_fbx.py
io_scene_fbx/import_fbx.py
|
|
Those asserts were already commented out in quiet a few places, now it's
obvious that having that set of properties defined in actual data nodes
is totally optional, so remove them alltogether.
Also fixed a bug in property fetching, with newer (>= 7.4) FBX files we
would never get templates... Stupid mistake. :/
|
|
|
|
Code would break on empty shapekey names, and was actually broken in
all cases where Blender would have to alter the shapekey name when
creating it.
|