Maverick – Clover.moe https://clover.moe Sat, 05 Oct 2024 01:30:12 +0000 en-US hourly 1 https://wordpress.org/?v=6.6.2 https://clover.moe/wp-content/uploads/2016/04/20151213_Clover_favicon-150x150.png Maverick – Clover.moe https://clover.moe 32 32 Open Source Status https://clover.moe/2024/10/01/open-source-status/ Tue, 01 Oct 2024 07:26:41 +0000 https://clover.moe/?p=1855 I’m going to do my own things in my own time rather than acting as an open source software maintainer.

I’ve completed most of the things I want to do in my open source projects (Spearmint, Maverick, etc). There was of course a lot of other ideas and many are now redirected at Clover’s Toy Box. At this point I mainly work on Maverick and Quake 3 related open source projects for the sake of other people. While I like assisting, it’s not satisfying and can be stressful.

I’m withdrawing from providing user support and fulfilling requests for open source projects. I’m not interested in continuing to discuss these projects. I’ve made the Clover.moe Community Discord server be read-only after giving a month notice. I’ve thought about this for some time; I decided to do this in March.

I will continue to contribute to Quake 3 open source projects if it’s something I personally want. There is still a few loose ends I want to deal with and I may find other things in the future. So it’s not entirely the end of me working on these projects.

]]>
Maverick Model 3D 1.3.15 https://clover.moe/2024/08/18/maverick-model-3d-1-3-15/ Sun, 18 Aug 2024 23:46:57 +0000 https://clover.moe/?p=1819 Maverick Model 3D 1.3.15 adds Quake 3 player export to IQE format, fixes Linux Dark Mode and issues on 2023 Flatpak runtime, and fixes not updating frame count in animation mode until focus changes.

General

  • Add dark mode color scheme for model background
  • Add frames, FPS, and loop to New Animation window
  • Add Edit to animation mode for changing the same fields as New Animation window
  • Make Animation Sets window use New Animation dialog
  • Replace Rename in Animation Sets window with Edit for name, frames, FPS, and loop
  • Rename texture to material in Edit Groups window
  • Change max frames for an animation to 9999 (previously 999 but convert to frame animation was limited to 99)
  • Fix not updating frame count in animation mode until focus changes, text editing is disabled now
  • Fix ‘paste animation frame’ without selecting an animation
  • Fix misplaced “fi”s for configure
  • Fix ignoring user CXXFLAGS in configure
  • Fix compiling on GNU Hurd

Documentation

  • Add dark mode support for web browsers
  • Fix viewing in-app help in dark mode

Model Formats

  • Add Quake 3 player export for IQE

GNU/Linux

  • Add changelog to Linux appstream metadata
  • Update Flatpak runtime to org.kde.Platform 5.15-23.08
  • Don’t use Wayland unless requested (environment variable QT_QPA_PLATFORM=wayland)
  • Fix finding Qt translations in Flatpak

macOS

  • Fix configure failure on newer macOS
  • Fix installing Qt translation in the appbundle
]]>
Maverick on macOS https://clover.moe/2024/08/06/maverick-on-macos/ Tue, 06 Aug 2024 19:01:50 +0000 https://clover.moe/?p=1724 There is now macOS builds for Maverick Model 3D 1.3.13 and 1.3.14. Downloads are available on at the Maverick Model 3D web page.

How not to update Qt

The most recent build of Maverick for macOS had been 1.3.12 released in 2019. Maverick uses the Qt GUI framework. The Maverick 1.3.12 release uses Qt 5.11. I wanted to update it to Qt 5.15 but Qt 5.11 was the last version to support macOS 10.11 which my MacBook Pro is limited to.

I forked the several repositories required for building Qt and patched it to cross-compile from Linux for macOS (as it must be built using a newer macOS SDK) and readd support for macOS 10.11. Building had some hard coded paths specific to my machine and it didn’t handle new Qt rendering classes correctly for macOS 10.11.

I thought I would also use this customized Qt for other applications I develop (in Toy Box). Ultimately I dropped interest in using Qt aside from maintaining Maverick. I don’t want to maintain Qt or feel like I need to ensure the customized source code (1 GB zip) remains available long term.

Continuing to use the existing version of Qt was a problem due to sort of breaking the install. I had updated Qt to a non-working version and Homebrew package manager was in a broken state. I did get Homebrew and Qt 5.11 working again at some point.

Conclusion

There is now Maverick 1.3.13 and 1.3.14 macOS builds using Qt 5.11. I don’t think they should be any worse than using Maverick 1.3.12.

These new builds are still made on a 2008 Intel MacBook Pro. Thank you to the people who donated toward new Mac hardware for being able to update Maverick. The money is still set aside for Mac hardware whenever I have enough.

]]>
Open Source in 2023 https://clover.moe/2024/01/02/open-source-in-2023/ Wed, 03 Jan 2024 02:59:06 +0000 https://clover.moe/?p=1582 My open source software contributions in 2023 to SDL, Quake 3 based games, and Maverick Model 3D.

SDL

Simple DirectMedia Layer is a cross-platform abstraction layer for window creation, graphics initialize, audio, input, etc that is used by most games on Linux. (SDL source code)

I mentioned custom window decoration “hit testing” resizing issues at the end of my Toy Box on Wayland post. Someone fixed Linux (X11 and Wayland) to display cursors when hovering over resizable areas. It assumed the cursors were double arrows like on Windows and KDE. Resize left and right both had a single arrow pointing right on GNOME. I fixed it to have the correct cursors on GNOME using 8 cursors with each resize direction.

I helped explain an issue with Nintendo GameCube Adapter controller mapping so it could be fixed on Windows and Android.

I try to read most of the SDL 3 commits by following an RSS feed. I pointed out a few minor issues as commit comments.

ioquake3

ioquake3 is a project to maintain and extend the source code for the 1999 first-person shooter Quake III Arena. (ioq3 source code)

I made 25 posts to help solve issues on the ioquake3 forum.

Platform

I updated SDL libraries for Windows and macOS from SDL 2.0.14 to SDL 2.24.0. I cross-compiled mingw-w64 and macOS libraries on Linux. I did have to use Windows to build the MSVC libraries.

I made it so macOS can be built separate for “legacy” Universal Bundle (x86/x86_64/powerpc) and “modern” Universal Bundle 2 (x86_64/Apple Sillicon). Legacy macOS App Bundle was updated to SDL 2.0.22 as newer versions (jumping to SDL 2.24.0) dropped support for macOS 10.6. (Building for Apple Sillicon was added by Tom Kidd in 2022.)

I fixed ioquake3 failing to start from macOS terminal due to how the URI scheme handler support was added.

I updated the Windows “NSIS installer” script. ioquake3 and games based on it tend to just use a .zip file instead of an installer. It would be useful to use the installer as it adds integration for the “quake3://connect/127.0.0.1” URI scheme handler to Windows.

QVM

QVM (Quake Virtual Machine) is a cross-platform bytecode format used by Quake 3 that allows game modifications to be compiled on one platform and run on all platforms. (A similar recent technology being WebAssembly.)

I fixed compiling QVMs on Linux if the source code has Windows line endings. MS-DOS used CR+LF to end lines in text files (Carriage return, line feed; commands for a text printer). However Unix-like platforms used only LF. The Windows file API in text mode automatically reads CR+LF as LF but other platforms did not and caused the QVM tools to fail with strange syntax errors.

I made it so QVMs are compiled on all platforms by default even if they do not have a run-time QVM just-in-time compiler. The QVM interpreter works on all platforms. This made QVMs be built on Linux/macOS ARM64 by default.

OpenGL2 renderer

Compared to the opengl1 renderer—which closely resembles the original Quake 3 renderer—the ioquake3 OpenGL2 render has a lot of issues and (in my opinion) poor design decisions. I think it’s too much work to fix it. However when prompted about issues, it’s not that I can’t fix them…

I fixed the edge border for smaller view size (cg_viewsize) being drawn to an framebuffer object and not blit to the screen when using HDR or framebuffer multisample anti-alias with post-process. This was fixed to draw to the screen directly like other 2D drawing.

I fixed updating the loading screen with r_cubeMapping 1. The changes for the previous issue caused Quake 3’s drawing all images to the screen—to ensure the driver loads them—to be visible. However it shouldn’t be visible because the loading screen draws over it. It turns out generating cube maps for the level left the culling state set to hiding the front of polygons and the loading screen was culled until the level is loaded to reset the culling state. This was broken for years but it seemed like it was just really fast after loading the level.

I fixed the developer option to clear the screen to magenta (r_clear 1) before rendering when using HDR or framebuffer multisample anti-alias. This makes it obvious when some part of the screen isn’t drawn or is transparent and the previous frame is visible (hall of mirrors effect or random flashing between two different frames; it’s just bad).

I fixed framebuffer multisample anti-alias on AMD Windows driver. The driver incorrectly requires GL_EXT_direct_state_access extension to bind a renderbuffer for it to be valid. This should only be required for OpenGL Core context direct state access or GL_ARB_direct_state_access extension. Though yes, ioquake3 should probably stop using the EXT extension in an OpenGL Core context.

I fixed q3map2 lightstyles effects for dynamic pulsing lightmaps with r_mergeLightmaps 1 and r_sunlightMode 1.

r_mergeLightmaps 1 combines internal 128×128 pixel lightmaps into a larger atlas and modifies the geometry texture concordances. This broke materials using both internal and external lightmap and materials using texture concordance offset with internal lightmaps (two obscure things I didn’t know q3map2 did). I corrected external lightmap to apply a transform to convert the texture concordances back to the original and made offset for internal lightmaps use the scale of the texture atlas.

r_sunlightMode 1 changed lightmap stages in materials to support cascading sun shadows by using white image modulated by the lightmap texture. However it didn’t work with some blend mode that use the alpha of the lightmap texture. I fixed it to only apply to normal lightmap stage blend modes.

I fixed parsing q3gl2_sun without two additional “optional” tokens. Quake 3’s text parser has an option to not allow line breaks but it still sets the text pointer to after the line break. So effectively it can only check for an optional token once. And then must not check for any more because it will be on the next line. I fixed parsing q3gl_sun to only check for additional optional tokens if the previous optional tokens existed. (I previously fixed the parser in Spearmint to stop at end of line so it doesn’t have this problem but I’m more concerned about compatibility with weird content in ioquake3.)

World of Padman

World of Padman is a freeware first-person shooter based on the ioquake3 engine. (WoP source code)

My widescreen HUD support from “ZTM’s Flexible HUD for ioq3” was merged into World of Padman for version 1.7. I helped fix two widescreen issues with health station icons (distance independent 2D sprites on the HUD) and lens flares.

Some of the OpenGL2 renderer changes in ioquake3 were for World of Padman or at request of one of the World of Padman developers. q3map2 lightstyles effects are used by the wop_trashmap level.

Q3Rally

Q3Rally is a freeware racing and third-person car shooter based on the ioquake3 engine. (Q3Rally source code)

Some changes I made include:

  • Bots can drive around more race maps now (“Fix bots going in reverse for no reason in races”)
  • Fixed spectator observer camera to rotate smoothly
  • Fixed intermission view angles
  • Fixed players in race have an invisible chainsaw
  • Fixed client error dropping to menu when player dies if sv_maxclients is too high (“Fix out of range death events”)
  • Updated to latest ioquake3
  • Various other bug fixes

I fixed game network compatibility and enabled ARM64 support for the new Q3Rally Flatpak package for Linux.

Spearmint

Spearmint is my enhanced engine and game-logic based on ioquake3. (engine source code, game-logic source code)

opengl1 renderer

I fixed two issues in the opengl1 renderer due to adding changes from Wolfenstein: Enemy Territory.

Wolfenstein: Enemy Territory added far plane culling. The level BSP node bounds doesn’t include surfaces for q3map2 skybox portal hack (_skybox entity) so the far plane wasn’t set far enough and the skybox scene was cut off. Instead the bounds of surfaces in the BSP node should be used, which Wolfenstein: Enemy Territory also added.

Wolfenstein: Enemy Territory fixed surface culling for two sided level surfaces but this broke snow flakes in rgoer_seasons user created level for Quake 3 using “deformVertexes move” material feature to change the surface position. I changed back to Quake 3 behavior of not using exact view culling for two sided surfaces.

OpenGL2 renderer

I fixed bullet/explosion marks on doors and moving platforms in splitscreen player views. (It was pointed out to me that I fixed this in opengl1 years ago but I forgot to apply it to the OpenGL2 renderer.)

Game-Logic

I added an option to disable view kick when receiving damage.

I added setting the frame rate in the graphics options menu.

Maverick Model 3D

Maverick Model 3D is a 3D model editor and animator that I maintain that supports some game specific formats. It’s based on Misfit Model 3D that ceased development. (Maverick source code)

I developed/released Maverick Model 3D 1.3.14 in April.

In addition to that:

I fixed a couple issues for macOS and made GitHub Actions build and upload macOS build. If you’re logged into to GitHub, the macOS build can be downloaded from the bottom of the “Actions summary” page for each commit. I haven’t tested it as it requires newer macOS than I have access to.

I fixed a couple issues that I found through the Debian package tracker several years ago. CXXFLAGS are now respected by configure and it compiles for GNU Hurd. Though OpenGL—required for displaying the model—didn’t work in the Debian 2023 GNU Hurd virtual machine image.

I added support for exporting a Quake 3 player model with three separate models (head, upper, lower) to IQE format which can be converted to IQM for use with ioquake3 and derivative projects.

IQM uses skeletal animation which allows for less memory usage and better animation quality compared to Quake 3’s MD3 format that stores lower precision vertex positions for each frame and interpolates vertexes in a straight line between frames which may cause meshes to deform. Though IQM may be slower to draw.

I got IQE Quake 3 player model export working in 2018 (as reference in this ioquake3 forum thread where I was working on improving performance and fixing issues with ioquake3’s IQM support). I wanted to move Quake 3 player model export out on the individual format exporters but that never happened. So now it’s in IQE exporter.

P.S.

Most of these changes are a result of interacting with people rather than my own ideas or done for the sake of hypothetical other people.

If you found this useful, consider donating on Ko-fi (no account required).

]]>
Maverick Model 3D 1.3.14 https://clover.moe/2023/04/23/maverick-model-3d-1-3-14/ https://clover.moe/2023/04/23/maverick-model-3d-1-3-14/#comments Sun, 23 Apr 2023 09:50:14 +0000 https://clover.moe/?p=1529 Maverick Model 3D 1.3.14 enables HiDPI support by default and adds support for creating toon cel outlines and importing frame animations.

Toon Cel Outline

Screenshot of my remake of the Misfit Model 3D logo with toon outline on a HiDPI display.

It’s now possible to create a toon cel outline effect (expanded mesh, drawing triangle backside). It works with skeletal animated models but it’s not supported with frame animations. Skeletal animations can be converted to frame animations afterward though.

  1. Disable drawing back-facing triangles using Render -> Render Options -> Hide back-facing triangles
  2. Select all meshes to have toon cel outline and then use the Geometry -> Duplicate command (copy and paste doesn’t keep the joint influences)
  3. Add a material for the outline color in Materials -> Edit Materials
  4. Create a new group in Materials – > Edit Groups and add the selected duplicate meshes (Assign As Group) and set materials to your outline color material
  5. Use Geometry -> Vertices -> Weld Vertices so that vertices in the same place don’t move apart
  6. Use Geometry -> Normals -> Invert Normals so that triangle faces inward
  7. Use Geometry -> Vertices -> Offset by Normal to give the cel outline the desired size

Changes

General

  • Enable Qt HiDPI support by default and fix a few layout issues
  • Add Offset by Normal command to move vertex along average normal
  • Make Duplicate command keep all joint influences
  • Make Edge Divide command set group and texture coords
  • Make Select Vertex tool automatically select and unselect triangles
  • Automatically select new face made by Make Face From Vertices
  • Make texture coord window reset map scheme on selection change
  • Fix texture coord window displaying last texture if no triangle has a texture

Merge Model / Import Animations

  • Add support for frame animations to Import Animations (must have the same number of vertexes and order)
  • Make Merge Model copy frame animation frames-per second (FPS) setting
  • Make Merge Model and Import Animations copy looping setting
  • Fix Merge Model and Import Animations to set skeletal animation FPS on the correct animation

Background Image

  • Fix model using background image with Canvas mode Flat
  • Fix model viewports not updating immediately after setting background image
  • Fix drawing left/right brackground image in some cases
  • Fix background image not blending in some cases

Model Formats

cal3d

  • Add support for exporting cal3d .cfg files

mm3d

  • Fix writing background image filename

GNU/Linux

  • Update Flatpak runtime to org.kde.Platform 5.15-22.08 from 5.15 (20.08)

Download

Download the Windows x86 installer and GNU/Linux x86_64 Flatpak Bundle at the Maverick Model 3D webpage.

This release was created with a week of development. If you find it useful, consider donating at Ko-fi.

It should build and run on macOS. However like Maverick 1.3.13 there is no macOS build as I haven’t sorted it out / purchased a new mac that Qt 5.15 still supports.

]]>
https://clover.moe/2023/04/23/maverick-model-3d-1-3-14/feed/ 3
Maverick Model 3D 1.3.13 https://clover.moe/2021/12/21/maverick-model-3d-1-3-13/ https://clover.moe/2021/12/21/maverick-model-3d-1-3-13/#comments Wed, 22 Dec 2021 00:35:25 +0000 https://clover.moe/?p=1336 After a little over 2 years, Maverick Model 3D 1.3.13 has been released with a slew of bug fixes and some long desired features.

It’s now possible to remove geometry/groups/points from models with vertex frame animations and models can be merged relative to a point, which will be positioned correctly in existing vertex frame animations.

MD2 vertex normals have been fixed. Y and Z were incorrectly swapped since in MM3D 1.3.4.

Maverick is now available as a Flatpak Bundle for GNU/Linux to allow installing it without compiling it yourself or using GNU/Linux distro packages which may not be the latest version. Maverick also now works correctly using Wayland.

There was reports of the previous version’s Windows build would sometimes crash after saving a model. This is now fixed though the exact cause is not known. The Windows build was updated from Qt 5.11 to 5.15.2 and now uses the same compiler run-time for Qt and Maverick.

The macOS build is delayed until 2022. It will also update from Qt 5.11 to Qt 5.15.2. It should build and run fine today with Qt 5 from Homebrew provided you have macOS 10.13 or later.

Windows x86 installer and GNU/Linux x86_64 Flatpak Bundle are available for download.

General

  • Add Clear Rotation/Translation Keyframes to Animation menu
  • Add Base Point to Model Merge
  • Add filename to Plugins window
  • Allow removing vertexes from models with frame animations
  • Allow adding/removing groups and points from models with frame animations
  • Make splitting skeleton animation keep overall pose
  • Make copy/paste skeleton animation frame copy interpolated keyframes
  • Make paste animation frame select what was paste
  • Make new animations default to non-looping
  • Switch from QGLWidget to QOpenGLWidget (needed for Wayland on GNU/Linux, breaks Windows with OpenGL 1.1)
  • Generate HTML manual using C instead of Perl with HTML::Template module
  • Fix merged points in frame animations
  • Fix crash if merging model when existing has a 0-frame animation
  • Fix undo event for Merge Animations
  • Fix model filter read/write to always use decimal point regardless of system locale
  • Fix truncating frames when changing frame count in animation mode
  • Fix Animation Sets -> Split to be start frame num
  • Fix horizontal scroll events being treated as scroll down
  • Fix texture coord window to check all selected triangles for a texture
  • Fix select joint influenced points
  • Fix Qt translations (qt_xx.qm) not being used
  • Fix hundreds of compiler warnings

Model Formats

d3d (new)

  • Add GameMaker Studio .d3d model import/export

iqe

  • Remove option to disable saving points in animations (IQM SDK would use identity, not bind pose)

md2

  • Fix vertex normals orientation

md3

  • Add export dialog with option to write animation.cfg for non-player models
  • Don’t allow saving as a player if there are groups that would not be saved in any player segment

mm3d

  • Deduplicate written external textures list
  • Fix writing external texture count (it use to be material count which may be too high)
  • Fix saving with long background filename causing out-of-bounds write

ms3d

  • Fix loading model with all zero vertex bone weights

obj

  • Fix crash if some MTL keywords are before newmtl
  • Fix crash for out of bounds texcoord index

GNU/Linux

  • Add AppStream metadata and install icons into modern file path
  • Add ability to build as a Flatpak
  • Don’t create ‘shared’ plugins symlink anymore (to allow multiple install paths)
  • Rename mimetype from application/x-mm3d to model/x-mm3d
  • Fix locating Qt translations on GNU/Linux

Windows

  • Support UTF-16 paths for install path and appdata on Windows
  • Make building using MinGW on Debian use POSIX thread model so it uses the same GCC run-time as Qt
  • Fix writing image filenames in models on a separate Windows drive than the images
  • Fix listing files on Windows with “..” directory in path

macOS

  • Add system and Qt translations to macOS AppBundle
  • Add make appbundle to Makefile.generic
  • Add support for cross-compiling from GNU/Linux using osxcross
  • Renamed macOS configure make mm3d.app target to make appbundle

Build Note

  • Moved autosetup.sh to autogen.sh to match defacto naming convention

]]>
https://clover.moe/2021/12/21/maverick-model-3d-1-3-13/feed/ 5
Maverick Model 3D 1.3.12 released https://clover.moe/2019/10/08/maverick-model-3d-1-3-12-released/ https://clover.moe/2019/10/08/maverick-model-3d-1-3-12-released/#comments Tue, 08 Oct 2019 05:34:44 +0000 https://clover.moe/?p=1218 Maverick Model 3D 1.3.12 adds shift key behavior for tools in texture coordinate editor, allows easier conversion of skeletal animations to frame animations, and fixes several issues.

Download it at the Maverick Model 3D webpage.

Select changes are listed below. For more details see the 37 source code commits.

Editor

  • Add shift key behavior to texture coordinate editor for move/rotate/scale like main window (requested by Enjay001).
  • Make Convert To Frame window convert multiple animations at once.
  • Fix animation frame slider not responding to arrow keys (reported by 77ZaRR77).
  • Fix delete button in Edit Joints window (reported by Mick Pearson (mickp-1982)).
  • Fix mouse interaction and wireframe line size on HiDPI displays (reported by Andrew Hamilton (orange451)).
  • Fix OpenGL possibly not working on Windows with Qt5 (black viewports) (reported by 77ZaRR77).
  • Fix some memory leak and std::list usage (reported by Mick Pearson (mickp-1982)).
  • Fix configure when compiling on Fedora (reported by Jacob Gustafson (poikilos)).

Model Formats

  • Remove artificial MD3 export limits (requested by Peach1).
]]>
https://clover.moe/2019/10/08/maverick-model-3d-1-3-12-released/feed/ 2
Maverick Model 3D 1.3.11 released https://clover.moe/2019/01/02/maverick-model-3d-1-3-11-released/ Thu, 03 Jan 2019 04:09:02 +0000 https://clover.moe/?p=1148 Maverick Model 3D 1.3.11 adds support for exporting Studiomdl Data (SMD) models, improves Milkshape 3D (MS3D) model support, and fixes many issues.

Download it at the Maverick Model 3D webpage.

Select changes are listed below. For more details see the 37 source code commits.

Editor

  • Add support for texture alpha blending in animation mode (reported by ZaRR).
  • Add workaround to force toolbar to be visible even if it’s hidden in dock.dat (reported by Enjay001).
  • Improve decimal accuracy for rotation on properties panel (e.g., display 90 instead of 89.999999).
  • Use backslash path separators in recent models list on Windows.
  • Fix Paint Texture window writing a blank black image (regression, reported by Enjay001 and mecwerks).
  • Fix not loading texture the first time Texture Coordinates window is shown (regression, reported by Enjay001).
  • Fix some vertex bone joint weights being rounded down on properties panel and calculated auto weight.
  • Fix wireframe Z-fighting with model meshes.
  • Fix new transparent texture set for material not being drawn (reported by philosophofee).
  • Fix frame animated models default to blank animation type in Animation Sets window.
  • Fix gimbal lock detection when converting matrix to Euler angles (affected writing SMD models).
  • Fix keyboard shortcuts in German and French translations (reported by Nessie).

Model Formats

  • Add support for exporting Studiomdl Data (SMD) models (requested by philosophofee).
  • Improve decimal accuracy in exported IQE models.
  • Improve MS3D model support (some issues reported by philosophofee).
    • Add support for loading/saving Milkshape 3D 1.8.5 BETA 1 MS3D models (vertex subversion 3).
    • Add descriptions for vertex subversions to MS3D export prompt.
    • Only allow typing hexdecimal in MS3D Vertex Extra export prompt.
    • Don’t allow exporting invalid MS3D models when there are too many vertexes, triangles, bone joints, groups, or materials.
    • Don’t convert vertex bone weights of 0 to average for MS3D export.
    • Fix reading/writing MS3D animation bone joint keyframes.
    • Fix written MS3D vertex bone joint weights not adding up to 100.
    • Fix loading MS3D bone influences for more than 128 bones.
    • Fix loading MS3D when a group has no material.
  • Fix missing meta data undo event after Cal3D/MD3/MS3D export.
  • Fix writing line endings as Unix style in OBJ/DXF/IQE on Windows (regression).
  • Fix loading OBJ textures on Windows (regression, reported by Nessie).
]]>
Maverick Model 3D 1.3.10 released https://clover.moe/2018/09/05/maverick-model-3d-1-3-10-released/ Wed, 05 Sep 2018 13:33:06 +0000 https://clover.moe/?p=1073 Maverick Model 3D 1.3.10, my fork of Misfit Model 3D 1.3.8, is now formally released after 9 years of on and off development (mostly off). Windows and macOS builds are available for download. A GNU/Linux build is probably coming next year but in the meantime it’s possible to manually compile the source code.

Maverick Model 3D fixes various issues, improves MD3 model support (including fixing normals in exported player upper.md3 and head.md3), adds support for saving Inter-Quake Export (IQE) models, improves Windows and macOS support, and uses Qt 5.x. Tutorials for Misfit Model 3D should be usable with Maverick Model 3D.

The .mm3d file format was extended to save Loop flag for skeletal and vertex frame animations and changed version to 1.7.

Select changes are listed below. For more details see the 173 source code commits.

Changes for 1.3.10 (2018-09-05)

  • Rename application to Maverick Model 3D
  • Add bone joint rotation to properties panel in non-animation mode
  • Add press F1 for help to OBJ export options window
  • Add support for autotools out-of-tree build
  • Add support for exporting Inter-Quake Export (IQE) models
  • Allow saving MD3 animations with 1 frame as looping
  • Create window as maximized if it fills the available screen space
  • Display result of Clean Up Groups in status bar
  • Don’t sort opaque RGBA textures in 3D Alpha Blend view mode
  • Fix building for Windows
  • Fix crash when opening Paint Texture
  • Fix new/rename material window titles
  • Fix rotating bone joint using properties panel in animation mode
  • Fix saving MD3 with 1 animation and 1 frame writing unanimated vertexes
  • Fix saving normals in MD3 player upper and head models
  • Fix Texture Coordinates window being empty after closing it using title bar close button (Windows/macOS)
  • Fix warning about unknown signal QTabWidget::selected when opening “Model|Background Image…”
  • Fix zoom icons when compiled with newer Qt (worked on Qt 5.3 but not 5.10+)
    (use Qt 4+ resource system instead of embedding image in .ui files)
  • Improve code integration of animation loop setting
  • Load MD3 player skins with upper case extension (.SKIN)
  • Make saving MD3 player head to use unanimated points and bounds
  • Make subdivide command fail if no faces are selected
  • Move animation Loop setting between FPS and Start/Stop buttons
  • Only create vertex in Edge Divide if selected vertexes share a common face edge
  • Print stdout/stderr to Windows command prompt
  • RAW images are now loaded as little endian regardless of OS endianness
  • Rename Materials|Clean Up Groups to Materials|Clean up
  • Update plugin API usage for builtin features
  • Use Win32 API to support non-ASCII filenames

Changes for 1.3.9 (2018-02-11)

  • Switch from Qt4 to Qt5
  • Make animation loop a per-animation setting that is saved in .mm3d files (mm3d format is now 1.7)
  • Allow user to set fixed grid
  • Fix incorrect texture rending for materials that share GL textures
  • Fix insertFrameAnimFrame when frame is not at end
  • Fix saving MD3 models with no frame animations
  • Add a dialog to confirm saving a 3 part MD3 player model (before it always assumed yes)
  • Made MD3 player support more general
  • Read animation names / looping from animation.cfg (names fallback to
    Quake 3 ones if missing)
  • Write animation names / looping from model animations instead of using
    a hard coded list
  • Save all unknown points (e.g., not tag_torso, tag_head, or tag_weapon)
    as tags in all model parts
  • Added support for “ALL_” (legs, torso, head) and “HEAD_” animation prefixes
  • Don’t require tag_weapon to export a MD3 player model
  • Store options from animation.cfg in meta data “MD3_CFG_(keyword)” “(value)”
    instead of special handling for ‘sex’,’footsteps’,’headoffset’,
    ‘fixedtorso’,’fixedlegs’ which were stored as MD3_(keyword).
    MD3_sex, MD3_footsteps, etc are still supported for saving
  • Add support for animation names to be at the beginning of each animation
    line in animation.cfg. Meta data “MD3_AnimKeyword” “1”. Automatically
    detected when loading animation.cfg
  • Allow disabling writing sync warnings in MD3 player animation.cfg using
    meta data “MD3_NoSyncWarning” “1”. This is not automatically detected
    when loading animation.cfg
  • Add support for Elite Force (Single Player) animation.cfg loop numbering style
    0=loop all frames, -1=don’t loop. Meta data “MD3_EliteLoop” “1”. Automatically detected when loading animation.cfg
  • Add support for loading / saving Quake III: Team Arena players
  • Save point “tag_flag” in (only) the torso model
  • Handle new Q3TA torso animations after legs in animation.cfg
  • Add support for loading / saving Turtle Arena players

Note: Exporting existing mm3d models to Quake 3 MD3 players requires setting
the correct names and loop on animations.

Download it at the Maverick Model 3D webpage.

]]>