Skip to content
Development Notes
Blender Quirks & Annoyances
- It is not possible to change grid size during an operation
- Grid snapping does not work when zoomed out far in orthographic mode (my pull request to fix it: https://projects.blender.org/blender/blender/pulls/160552).
- The grid visual disappears when zoomed in close in orthographic mode (my pull request to fix it: https://projects.blender.org/blender/blender/pulls/160553).
- Blender does have in-built UV correct: correct face attributes. It defaults to off. It doesn’t work well when extruding faces orthoganally.
- Blender does have in-built UV correct: correct UV (vertex and edge slide). It defaults to on. It mostly works well but has a few incorrect edge cases.Importantly, it also causes crashes when Anvil UV is working. UV correct is not exposed via Python, so Anvil disables it by directly accessing blender memory.
- Modal internal keybindings ( e.g. exit walk) cannot be remapped via addon keymaps. For this reason Anvil manually adjusts user keymaps when required, which is not best practice! Anvil aims to do this in a way that does not destroy your existing keymaps.
- Blender’s spin operator triggers the undo/redo stack continually throughout operation (requiring work arounds inside Anvil).
- Spin leaves zero-area wall faces along its axis; Anvil checks for and deletes them.
- The Texture Browser and Prefab Browser are drawn inside and override Blender Preferences areas because addons cannot create fully custom views.
Anvil Design & Implementation
- Ideally Visible Select would be incorporated into existing Blender operators (select and vertex painting, for example) but it’s difficult to replace them.
- Anvil manages materials for you based on image file names. If you rename an image file or rename a material you may run into issues.
- Anvil mostly does texture application and propogation via the scale / offset / rotation abstraction. Affine based texture application is more general. Currently only alt-left click will use affine texture application, and only in some cases.
- Anvil uses mesh meta data to store lots of information, including items that don’t correspond to the place they are stored (like information about welds and ’transaction’ numbers to faciliate undo and redo).
GLTF / Godot Material Limitations
- Specular is not imported into Godot from
.gltf files: https://github.com/godotengine/godot/issues/83320. I believe this is an appropriate PR: https://github.com/godotengine/godot/pull/89344. It seems Blender, GLTF, and Godot all have different understandings precisely of how to define specular.
- If roughness in blender is changed to 1 (from another value), Godot will not reimport it. Changing it to 0.999 works fine
- Emission is scaled incorrectly (Godot emissions is signficantly multiplied)