Commit Graph

154 Commits

Author SHA1 Message Date
PrismaticFlower
ceb8cd79c3 Skip adding color attributes when unneeded
This is a very small change to skip adding the vertex colours to the Blender mesh if no segment of the geometry being loaded has vertex colours.
2023-11-22 21:14:38 -06:00
LeovanGit
13a6511f23 Add vertex colors to blender + fix unpack_color() 2023-11-22 21:14:38 -06:00
a62f56d461 Partial Revert: Animation Track patch cleanup 2023-11-22 21:14:38 -06:00
8a7d9b0958 Animation Track patch cleanup 2023-11-22 21:14:38 -06:00
62206e8dbc Fixed import of animations to allow for bulk import 2023-11-22 21:14:38 -06:00
William Herald Snyder
cc4a1b0e04 Create sv faces from half-edge list. Current method doesn't check for duplicates, but Blender seems to filter them anyhow. 2023-01-08 22:15:19 -05:00
William Herald Snyder
ab253f0acc Ignore swap files 2023-01-08 20:52:23 -05:00
William Herald Snyder
582ed1ace5 Create mesh from shadow geometry with verts, edges, but no faces 2023-01-07 06:51:54 -05:00
William Herald Snyder
63f9e43e17 Read SHDW chunks 2023-01-06 21:30:45 -05:00
William Herald Snyder
f451be4d18 Check number of bytes remaining before reading texture strings 2022-10-29 12:59:11 -04:00
William Herald Snyder
613cb20678 Many msh files (e.g. those in BFX) have multiple models assigned to the same index (MNDX). Indices should be linked only to the first model that uses them to ensure proper skinning. 2022-10-09 13:55:24 -04:00
William Herald Snyder
432c9ff380 Hidden objects will be unhidden after calling evaluated_get, so they must be tracked beforehand when exporting. 2022-10-08 22:10:40 -04:00
William Herald Snyder
ba762d9548 Abort export if SELECTED or SELECTED_WITH_CHILDREN is chosen but nothing is selected and warn user that hidden objects can't be selected. 2022-10-08 22:07:44 -04:00
William Herald Snyder
b120b74cd4 Models shouldn't be hidden by default, as many models have objects that are obviously not hidden but do not have FLGS chunks + objects with children can be hidden, only older versions of Blender automatically hide children when parent is hidden 2022-10-08 21:31:08 -04:00
Will Snyder
7b9f5c9cfb Prune segments with empty triangle strips. ZE and most versions of ZETools require triangle strips. 2022-10-06 10:23:13 -07:00
William Herald Snyder
84a910f747 When exporting collision primitives, check the swbf_msh_coll_prim primitive property before the name to catch primitives which have incorrect names. Previously the property would only be checked if the primitive was missing a name indicator, but it should be checked first and always because some primitives from XSI have name-type mismatch (cis_hover_aat) 2022-10-05 09:28:27 -04:00
William Herald Snyder
0a1866295c Only include vertex groups used for skinning purposes. More robust requirements for object to be exported as a skin. Misc cleanup and minor refactoring in msh_model_gather. 2022-10-05 09:27:44 -04:00
William Herald Snyder
ec54df21d2 Blend + hardedged transparency emulated via settings + additive emulated by adding the output of the PBSDF and a default Transparent BSDF. Bugfix: animation data is cleared from nodetrees via a stable method. FCurves.clear() is too new... 2022-10-04 09:58:36 -04:00
William Herald Snyder
b2bd9c8316 Blender 2.80-2.83 supports additive blending, so FillMaterialProps will catch that if present 2022-10-04 07:54:25 -04:00
William Herald Snyder
56f6ce6940 Fill doublesidedness and transparency (TODO: figure out additive mapping/emulation) from material settings 2022-10-03 23:06:33 -04:00
William Herald Snyder
f44c7bfdf3 DFS property fill starts from BSDF Principled Base Color input and runs until a texture image is hit. The extension of the texture image's source path is always replaced with .tga. Operator skips previously handled materials. 2022-10-03 22:56:45 -04:00
William Herald Snyder
8bf2196991 Don't change rendertype on matfill and fill texture_0 as well as diffuse map 2022-10-03 21:16:59 -04:00
William Herald Snyder
1252a6d192 Grayscale bumpmaps support via option files 2022-10-03 14:12:21 -04:00
William Herald Snyder
9fcdb3dfb7 Quick and dirty option file parser 2022-10-03 14:11:44 -04:00
William Herald Snyder
dd17fe902e Normal mapping support, though bump mapping is not supported yet. To support it, .tga.option files will have to be read and the various bump mapping munge parameters will need proper interpretation. Emulating the bump effect via shader nodes is straightforward. 2022-10-03 12:30:34 -04:00
William Herald Snyder
226682de8b Data field 0 overrunning bounds of UI_MATERIAL_ANIMATION_LENGTHS bugfix 2022-10-03 10:28:53 -04:00
William Herald Snyder
69e959e7a3 Proper scroll speed units + scene fps accounted for 2022-10-03 08:38:13 -04:00
William Herald Snyder
188b270ad1 Linear interpolation for scrolling keyframes. Keyframe are created on the active action of the materials node tree. TODO: determine correct scroll speed speed units 2022-10-02 18:19:29 -04:00
William Herald Snyder
9a344d0652 Simple UV scrolling nodes in place. Simple approach will probably remain since the only interaction will be with image textures nodes 2022-10-02 16:30:11 -04:00
William Herald Snyder
ea82d24356 Glow flag supported via mixing emission and BSDF. TODO: poll GT on automatically setting renderer to Eevee, find out if both emission and BSDF are necessary or just the latter when glow is enabled, find out if rendertype 1 is relevant, outline general implementation of props to nodes mapping procedure 2022-10-02 15:55:47 -04:00
William Herald Snyder
6e05bba9e5 Fix import order bug in materials_to_blend that invalidated script reloading 2022-10-02 13:31:16 -04:00
William Herald Snyder
9981b64d60 Missing armature bug fix 2022-10-01 15:17:02 -04:00
William Herald Snyder
48aabaf8d4 Anim import code moved to new file 2022-10-01 15:10:00 -04:00
William Herald Snyder
329303e256 Silly _REVERSE_RENDERTYPES_MAPPING replaced with dict comprehension 2022-10-01 12:17:26 -04:00
William Herald Snyder
4970f974fd Generate Nodes operator docs subsection 2022-10-01 08:02:59 -04:00
William Herald Snyder
d359975bd6 Generation op will abort if diffuse texture isn't found + options for failing silently or with error message. TODO: found out how to create a pop-up panel with error message that fades away if not interacted with for a couple seconds... 2022-10-01 08:02:59 -04:00
William Herald Snyder
45782f9a2f Docs update for bones with geometry 2022-10-01 07:56:26 -04:00
William Herald Snyder
aa8a61175d Skeleton import code moved to separate file + other renaming 2022-10-01 07:56:19 -04:00
William Herald Snyder
5692a60907 When exporting, if an object has a parent bone with the same name, add its geometry to the parent bone's model and discard the object itself. 2022-10-01 07:53:28 -04:00
William Herald Snyder
7cfa101d42 Catch models that are marked as bones but still have geometry 2022-10-01 07:53:28 -04:00
William Herald Snyder
43b1f9650e When gathering bone transforms during armature expansion, don't assume armature's local transform is zeroed 2022-10-01 07:53:28 -04:00
William Herald Snyder
aa8f05dd42 Create mesh object for any model with geometry regardless of type + triangle strip winding order bugfix 2022-10-01 07:52:19 -04:00
William Herald Snyder
9bd8479e31 Reorg + use generation operator when initially creating Blender materials + make all texture fields in SWBF materials properties paths 2022-09-28 08:49:14 -04:00
William Herald Snyder
8974131550 Better description for material generation op 2022-09-28 08:49:14 -04:00
William Herald Snyder
abd727d39a Better material generation for basic rendertypes 2022-09-28 08:48:50 -04:00
William Herald Snyder
f69ed3f143 Armature offset bug fix 2022-09-27 08:23:49 -04:00
William Herald Snyder
f88b62c986 When exporting cylinder primitives, do not test for exact match in x,y dimensions since cylinders created in xsi often have so few polys that their widths and lengths don't match (e.g. p_collision of tat3_bldg_reservoir). Taking the larger dimension gives the correct result for cylinders that originated in both XSI and Blender. 2022-09-27 07:56:25 -04:00
William Herald Snyder
13a92e46c6 Always calculate and use split normals when exporting mesh in order to account for sharp edges 2022-09-23 13:11:00 -04:00
William Herald Snyder
d6973e9793 Catch absent geometry in objects not of type EMPTY 2022-09-22 19:31:30 -04:00
William Herald Snyder
5d86a88411 Normals importing as part of custom split set. Mesh import code moved to seperate file 2022-09-21 09:02:15 -04:00