Commit Graph

141 Commits

Author SHA1 Message Date
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
Will
fe1e16a117
Image sizing fix for material fill operator docs 2022-05-05 11:45:51 -04:00
William Herald Snyder
4e2f6bf423 Docs update for msh material property fill operator and menu entry 2022-02-09 15:17:52 -05:00
William Herald Snyder
bdcd4c4aa9 Integrated Starlord's feedback (quick-n-dirty object context submenu + operator for copying diffuse texture names to SWBF material properties for all selected objects' materials) 2022-02-09 14:50:52 -05:00
William Herald Snyder
c3f5f0bed3 Integrated Teancum's feedback (Normal rendertype changed to Standard + armature root bone properly parented to skin if one is present + animation export options simplified with batch export capability and relevant docs changes + minor changes to import/export options and docs to make behavior obvious) 2022-01-28 17:28:12 -05:00
William Herald Snyder
091e295649 Triangle winding order for strips accounted for 2022-01-27 22:09:23 -05:00
William Herald Snyder
40343a2f69 The last index of the last triangle strip in a segment is properly included + cleaner reading of STRP 2022-01-27 18:34:53 -05:00
William Herald Snyder
a962b4475e Change Blender version to 2.80 to silence warning 2022-01-21 13:26:07 -05:00
William Herald Snyder
637c3c2afa Catch segments with no valid geometry, read NDXL in try-except block 2022-01-20 23:40:19 -05:00
SleepKiller
7fe5b48d0b
Merge pull request #2 from WHSnyder/fully_featured
Docs start, good enough for community testing
2022-01-20 15:08:46 +13:00
Will
24312cc3a0
Apply suggestions from code review
Co-authored-by: SleepKiller <SleepKiller@users.noreply.github.com>
2022-01-19 18:07:14 -08:00
William Herald Snyder
553438c4b4 Merge branch 'fully_featured' of github.com:WHSnyder/SWBF-msh-Blender-Export into fully_featured 2022-01-19 13:51:00 -05:00
William Herald Snyder
47bd3a3977 Import+Export docs start 2022-01-19 13:50:38 -05:00
SleepKiller
ae6493d7f2 update readme.md, __init__.py 2022-01-19 16:47:05 +13:00