Commit Graph

309 Commits

Author SHA1 Message Date
RodZill4
f07e4475a2 JSON files are now pretty-printed 2019-10-27 14:36:16 +01:00
Rodz Labs
1a8cfca668
Merge pull request #49 from Calinou/add-svg-image-format
Add SVG as a loadable image format
2019-10-27 12:50:31 +01:00
Rodz Labs
675c0ac8ff
Merge pull request #48 from Calinou/environment-increase-radiance-size
Increase the environments' radiance size to 512×512
2019-10-27 12:49:43 +01:00
Hugo Locurcio
e7a46b73a9
Add SVG as a loadable image format
This makes use of Godot's SVG importer to load SVGs and rasterize them.
2019-10-27 11:33:32 +01:00
Hugo Locurcio
cf86111b81
Increase the environments' radiance size to 512×512
This makes reflections more detailed, which is especially noticeable
on smooth materials.
2019-10-27 11:26:13 +01:00
RodZill4
6013148778 Fixed parameter order in normal map to remain compatible with previous version 2019-10-27 10:25:49 +01:00
RodZill4
e41c509e9f Updated normal map generator and fixed bugs 2019-10-27 10:12:03 +01:00
RodZill4
b60085edd1 Updated shader editor so parameters, inputs and outputs can be reordered 2019-10-26 13:51:15 +02:00
RodZill4
f17cf65f29 Added scratches generator 2019-10-26 13:50:15 +02:00
RodZill4
4c9ada6249 Fixes in remote node 2019-10-26 13:49:35 +02:00
RodZill4
26f083cd3d Updated remote and group creation 2019-10-24 09:00:31 +02:00
RodZill4
4246673c85 Updated the gradient editor 2019-10-22 22:48:00 +02:00
RodZill4
aaa2adc046 Updated the graph tree to handle the editable attribute correctly 2019-10-22 08:28:24 +02:00
RodZill4
4fc7c11a29 Updated size parameter handling and resized all examples to 2048x2048
Also added a base class for all graph nodes, fixed issues with graph/remote interactions.
2019-10-21 23:58:14 +02:00
Rodz Labs
448287d2c9
Merge pull request #34 from Calinou/add-return-type-hints
Add return type hints to all scripts
2019-10-21 20:56:30 +02:00
Rodz Labs
6481d1b9b4
Merge pull request #43 from Calinou/optimize-images
Optimize images losslessly using `oxipng -o6 --strip --zopfli`
2019-10-21 20:56:04 +02:00
Hugo Locurcio
5c28b4f617
Display a disabled item if no recent materials were found in Open Recent 2019-10-21 15:54:15 +02:00
Hugo Locurcio
2e3a212bb8
Optimize images losslessly using oxipng -o6 --strip --zopfli 2019-10-21 15:43:16 +02:00
Hugo Locurcio
f225c57cdd
Use the Unicode multiplication symbol for size OptionButtons 2019-10-21 00:39:51 +02:00
Rodz Labs
27aa683786
Merge branch 'export_plugin' into add-return-type-hints 2019-10-20 23:05:26 +02:00
Rodz Labs
1eeb3113cc
Merge pull request #35 from Calinou/add-more-image-formats
Add support for loading additional image formats
2019-10-20 23:01:31 +02:00
Rodz Labs
0750994269
Merge pull request #36 from Calinou/tweak-gitignore
Tweak `.gitignore` and include `.import` files in version control
2019-10-20 23:01:17 +02:00
Rodz Labs
5e81f9d616
Merge pull request #37 from Calinou/preview-material-double-sided
Make the preview material double-sided for better visibility
2019-10-20 23:01:04 +02:00
Rodz Labs
ede29a90ca
Merge pull request #38 from Calinou/tweak-texture-size-limits
Tweak texture size limits for consistency, set default size to 1024x1024
2019-10-20 23:00:47 +02:00
Rodz Labs
93dd1ca1f0
Merge pull request #40 from Calinou/small-textures-disable-filtering
Disable filtering for small textures in the material preview
2019-10-20 23:00:24 +02:00
RodZill4
d376aa22f8 Updated convolution node and added gaussian blur 2019-10-20 22:37:42 +02:00
Hugo Locurcio
c00a77eaa4
Disable filtering for small textures in the material preview
This makes previewing materials with a pixel art style
closer to the intended result.
2019-10-20 21:16:20 +02:00
Hugo Locurcio
893e5446f8
Tweak texture size limits for consistency, set default size to 1024x1024
- The maximum allowed size is now 4096x4096 for all textures.
- The material texture size can now be set as low as 16x16.
- The default material texture size is now 1024x1024, which matches
  modern expectations better.

Note that this will change the output size of existing material files.
This can be solved by changing the output size and saving the material
again.
2019-10-20 20:20:28 +02:00
Hugo Locurcio
a249ebb5f4
Make the preview material double-sided for better visibility
This makes the material still render if the camera "enters"
the preview mesh. This can reduce disorientation when moving
the camera around.
2019-10-20 19:30:51 +02:00
Hugo Locurcio
f40248b5e6
Tweak .gitignore and include .import files in version control
`.import` files (not to be confused with the `.import/` directory)
should be included in version control as they contain important
metadata, such as whether a texture should be filtered or not.

A `.gdignore` file was added to the `doc/` folder of the add-on,
which prevents Godot from importing any files inside.
This also speeds up the initial editor import step.
2019-10-20 19:25:31 +02:00
Hugo Locurcio
a15ed1cf04
Add support for loading additional image formats
This also makes it possible to load JPEG images if they have a
`.jpeg` extension.
2019-10-20 19:07:45 +02:00
Rodolphe Suescun
80f8071d7b Started updating convolution for computed matrices 2019-10-20 17:28:06 +02:00
Hugo Locurcio
93c84650cd
Add return type hints to all scripts
This also simplifies some functions.

This partially addresses #30.
2019-10-20 16:35:45 +02:00
Rodolphe Suescun
159ee7678b Added subgraph navigation popup 2019-10-20 11:33:33 +02:00
Rodolphe Suescun
66790ed86d Moved the "About" box to a separate directory and added itch.io link 2019-10-20 11:21:02 +02:00
Rodolphe Suescun
b44160b582 Moved preview stuff to a new directory. Slightly updated environments as described in #29 2019-10-20 08:50:32 +02:00
Rodolphe Suescun
c8414f47df Updated switch node and refactored generator edit feature. 2019-10-20 00:59:51 +02:00
Hugo Locurcio
f91f85d005
Enable 16× anisotropic filtering in the 3D preview
This improves rendering quality, especially when viewing the texture
at an oblique angle.
2019-10-19 22:40:28 +02:00
Rodolphe Suescun
3076b279bd Updated HTML5 export options and added code to copy examples to a browsable location. 2019-10-19 14:20:18 +02:00
Rodolphe Suescun
85e20dcb1d Added icons for switch and buffer 2019-10-19 13:04:34 +02:00
Rodz Labs
49f5d54acf
Merge pull request #28 from Calinou/filter-shortcut-select-all
Select the text in the filter LineEdit when pressing the shortcut
2019-10-19 06:40:54 +02:00
Rodz Labs
4f03bf120e
Merge pull request #27 from Calinou/improve-user-manual-button
Improve the "User manual" button
2019-10-19 06:40:40 +02:00
Hugo Locurcio
dd8eeb2835
Select the text in the filter LineEdit when pressing the shortcut 2019-10-19 02:01:30 +02:00
Hugo Locurcio
40ff89846b
Improve the "User manual" button
The new behavior of `show_doc()` is as follows:

- Try to open packaged documentation first.
- If the above fails, try to open locally-built documentation
  (useful during development).
- If it still fails, try to open the online version.

This also improves path handling to be smarter.
2019-10-19 01:46:25 +02:00
Rodz Labs
94213e7a1d
Merge pull request #26 from Calinou/improve-library-filter
Improve filtering in the library
2019-10-19 01:34:45 +02:00
Rodolphe Suescun
885b74a845 Detect loops when connecting nodes and make sure Material cannot be deleted 2019-10-19 01:30:25 +02:00
Hugo Locurcio
d6bfbab92a
Improve filtering in the library
The filter box is now located at the top of the library tree,
as most search boxes are placed above the elements they search in.

Pressing Ctrl + F will now focus the filter box as well.
2019-10-19 00:38:02 +02:00
RodZill4
d3e34d42cb Updated examples and added new ones 2019-10-18 08:36:25 +02:00
RodZill4
53c5fd4f56 Fixed shader generation problems revealed by Godot 3.2 2019-10-18 08:35:54 +02:00
RodZill4
b7a54b3242 Updated the plugin with an option to register/unregister the importer, and added an option to skip .ptex imports. 2019-10-18 07:22:40 +02:00
RodZill4
1186cd44ca improved kaleidoscope so it copies the centered top part of its source 2019-10-18 07:20:38 +02:00
Rodz Labs
45670c4d7a
Merge pull request #23 from Calinou/fix-mixed-indent-2
Fix recently added mixed indent in `main_window.gd`
2019-10-18 06:49:31 +02:00
Hugo Locurcio
d7b16b8126
Improve the camera zoom behavior
- Invert the scroll wheel action to be more consistent with
  most 3D programs out there (Godot, Blender, …).
- Clamp the camera distance to reasonable values.
2019-10-18 00:43:30 +02:00
Hugo Locurcio
0bb1fb3537
Fix recently added mixed indent in main_window.gd 2019-10-18 00:27:54 +02:00
Rodz Labs
31a84fcc86
Merge branch 'export_plugin' into keys 2019-10-17 22:29:16 +02:00
Rodz Labs
02107023a4
Merge pull request #20 from Calinou/add-window-margins
Add margins to the window
2019-10-17 22:28:03 +02:00
Rodz Labs
90f57f7b4f
Merge pull request #19 from Calinou/enable-msaa
Use 4× MSAA for the 3D viewports
2019-10-17 22:27:31 +02:00
Rodz Labs
ab9c5ddac6
Merge branch 'export_plugin' into add-basic-hidpi-support 2019-10-17 22:23:45 +02:00
Rodz Labs
4212dee2a3
Merge pull request #17 from Calinou/set-minimum-window-size
Define a minimum window size when supported
2019-10-17 22:22:18 +02:00
jack perkins
5cdc5e5b55 Add view menu, move C to center command to view menu, add ctrl+0 to reset zoom to view menu 2019-10-17 19:03:18 +02:00
jack perkins
738ec515c9 Make menu code swap control for command on mac OSX 2019-10-17 17:29:17 +02:00
jack perkins
e23a1eb00d let KEY_BACKSPACE also delete selected nodes, for mac UX consistency 2019-10-17 16:36:43 +02:00
Hugo Locurcio
b0f47f9061
Add margins to the window
This prevents text from being next to the window borders,
which looks ugly and is difficult to read when in fullscreen mode.
2019-10-17 15:08:01 +02:00
Hugo Locurcio
880babaa03
Use 4× MSAA for the 3D viewports
This makes them look better thanks to reduced aliasing.
2019-10-17 14:55:42 +02:00
Hugo Locurcio
865c45b54c
Implement basic hiDPI support
This basic implementation simply upscales the viewport if needed.
This ensures crisp display regardless of the OS, and ensures
OS-specific fallbacks don't interfere with the program.

A proper hiDPI implementation will be needed to have better-looking
fonts and rendering.

This partially addresses #8.
2019-10-17 14:47:38 +02:00
Hugo Locurcio
7d2ee73a1a
Define a minimum window size when supported
This prevents UI elements from collapsing when resizing the window.
2019-10-17 14:28:46 +02:00
Hugo Locurcio
7f9808a415
Fix mixed indentation in gen_switch.gd
Mixed indentation is no longer allowed in Godot's `master` branch.
This change allows Material Maker to run without script errors
when using the `master` branch.
2019-10-17 14:16:59 +02:00
RodZill4
854b0c8b98 Fixed size of gradient popup (which could change when resizing the main window) 2019-10-17 07:39:36 +02:00
RodZill4
e573a78fd6 Updated Godot integration 2019-10-16 23:15:11 +02:00
jack
44ee81e351 Add button to turn on rotation animation in preview window 2019-10-16 15:08:21 +02:00
RodZill4
74959637bd Size parameter fix and better preview UI 2019-10-14 20:42:11 +02:00
RodZill4
477eec692b Fixed normal map and updated 3d preview 2019-10-13 22:06:13 +02:00
RodZill4
28654f3eba Updated base library and added truchet generator 2019-10-13 10:14:43 +02:00
RodZill4
4dbfd6be75 Added comment nodes 2019-10-12 08:30:46 +02:00
RodZill4
8006f07e04 Updates in transform and voronoi, and compatibility fix
- Fixed compatibility with v0.5 files
- Added a randomness parameter to voronoi
- Changed tranform order (translate applies first so rotate and scale are relative to the center of the source)
2019-10-12 07:10:25 +02:00
RodZill4
19b9d804b9 Fixed control label edition in remote 2019-10-10 22:43:34 +02:00
RodZill4
825d98e0fe Added main code section to shader generators 2019-10-10 07:42:38 +02:00
RodZill4
3adeffe23c Fixed preview update problem 2019-10-09 20:39:08 +02:00
RodZill4
f66cd9a71b Added preview icons and filter to library pane 2019-10-08 22:17:33 +02:00
RodZill4
ad2de4a52e Updated code editors and added a menu to create all elementary generators 2019-10-07 20:41:57 +02:00
RodZill4
a7f371e142 icons cleanup 2019-10-06 14:07:49 +02:00
RodZill4
d024688511 Added a runes generator and a detailed edit for gradients 2019-10-06 10:02:09 +02:00
RodZill4
4cfd8fbc1e Fixed generic node update and added weave generator 2019-10-05 22:24:00 +02:00
RodZill4
8651569f2b Fixed problem with preview and generic node update 2019-10-05 19:50:44 +02:00
RodZill4
b58770c2a0 Added preview, rendering fixes, better grouping 2019-10-05 11:04:50 +02:00
RodZill4
57cb3b4a14 Fixed preview problem, and seeds now depend on node position 2019-10-02 23:06:20 +02:00
RodZill4
8ed10ccd02 Display value on slider and import improvements (support for ORM textures) 2019-10-01 23:15:36 +02:00
RodZill4
8c06cd3aa8 Updated import, preview and slider widgets 2019-10-01 08:34:08 +02:00
RodZill4
b861cf446d 3d preview can now be rotated manually 2019-09-29 21:53:32 +02:00
RodZill4
ff191538f6 Added group creation and refactoring.
Moved handling of the "global" definitions of shaders into main shader generation code.
Added group creation (does not create inputs yet, and remotes should be cleaned).
updated all preview meshes (to fix problems with depth).
2019-09-29 10:07:32 +02:00
RodZill4
101de7f32b Removed useless print calls and started adding the "create subgraph" command 2019-09-27 08:28:33 +02:00
RodZill4
f512b977c6 Remote related fixes 2019-09-26 22:32:49 +02:00
RodZill4
027a311554 More remote node updates (only serialize is missing I guess...) 2019-09-25 23:29:06 +02:00
RodZill4
bd24b3e87e More progress on remote, bug fixes, cleanup and changes for standalone release 2019-09-25 08:04:36 +02:00
RodZill4
201f911f75 More progress on remote and various fixes 2019-09-24 22:25:46 +02:00
RodZill4
8af2c04f91 Mmore progree on remotes and hierarchy 2019-09-22 22:17:26 +02:00
Rodolphe Suescun
afb84a85cf Started implementing remote node 2019-09-20 20:43:57 +02:00
RodZill4
ac4a5c39b6 Added support for hierrachical navigation 2019-09-19 07:56:32 +02:00
RodZill4
07273fdd04 fixed rotation in transform, started implementing hierrachy 2019-09-17 08:12:53 +02:00
RodZill4
caf682de88 updated generator naming in shaders and added basic convolutions 2019-09-16 20:45:47 +02:00
RodZill4
f2807f4eff Implemented lazy buffers update and started refactoring material node. 2019-09-14 09:14:27 +02:00
RodZill4
d643cecebb Fixed 3d preview and added warp generator 2019-09-13 08:07:46 +02:00
RodZill4
9834571c4a Fixed shader generation and added transform, mirror and skew
Fixed shader generation with nested usage of inputs (process code until no further input substitution is possible)
2019-09-12 21:16:07 +02:00
RodZill4
59dced1c09 Updated generic layout and implemented blend generator
Preview is now resized with a single click.
2019-09-11 23:13:10 +02:00
RodZill4
82f83ca482 More fixes and cleanup 2019-09-11 07:53:06 +02:00
RodZill4
be2e7f6e59 Updated generic node layout (added input names) and all .mmg files 2019-09-10 22:51:49 +02:00
RodZill4
bd8becaf75 Removed old generator model file format 2019-09-10 21:25:08 +02:00
RodZill4
34349c98ca Minor fixes and cleanup 2019-09-10 21:01:08 +02:00
RodZill4
27d5ddbe97 Implemented save and shader generator editing... 2019-09-09 22:00:18 +02:00
Rodolphe Suescun
0bcdbb2204 More refactoring and added image "generator" 2019-08-25 23:27:07 +02:00
Rodolphe Suescun
9d650c98a1 Reimplemented node deletion 2019-08-19 16:37:17 +02:00
Rodolphe Suescun
d8d9aaa9b4 More refactoring and added buffer generator 2019-08-18 16:28:50 +02:00
Rodolphe Suescun
e9a21454c1 More refactoring on rtexture generation 2019-08-17 17:35:48 +02:00
Rodolphe Suescun
b614ab50ed Reimplemented generator instanciation 2019-08-15 11:53:21 +02:00
Rodolphe Suescun
470e55b212 Added nodes removal & new node creation 2019-08-14 15:55:39 +02:00
Rodolphe Suescun
a8dffae7cf Fixed connecting/disconnecting generators 2019-08-14 09:02:38 +02:00
Rodolphe Suescun
049250e073 Added graph node initialization 2019-08-13 13:38:11 +02:00
Rodolphe Suescun
57c28993db Refactored basic load and preview functions in graph editor 2019-08-12 15:58:42 +02:00
Rodolphe Suescun
bcdac09cd7 More progress on refactoring and more
Basic import plugin works.
Added gradient parameter to custom node.
hsv_adjust now supports alpha channel.
Remove deprecated scenes.
2019-08-09 08:16:24 +02:00
RodZill4
66f88f3f46 More shader generation refactoring 2019-08-02 08:17:32 +02:00
RodZill4
cfae489ad0 Started refactoring to build an export_plugin and separate UI from texture generation 2019-07-31 20:53:00 +02:00
RodZill4
6984088b78 Fixed generation of transparent images. Now in tools menu instead of a button in the toolbar. 2019-04-13 19:44:37 +02:00
RodZill4
0b7a36282e Fixed issues #5 and #7 2019-01-27 09:00:30 +01:00
RodZill4
4baba77243 New recent projects menu entry and paper sample texture. 2019-01-24 22:27:41 +01:00
RodZill4
b36d44eb06 Fixed problem in export node (failure when exporting) 2019-01-09 07:36:30 +01:00
RodZill4
65a08b4650 Added an Apply button to the node editor window 2018-11-20 07:46:51 +01:00
RodZill4
3bb9dd50db Generic node updates
- Added support for inputs and alternate syntax for parameters ($foo instead of $(foo))
- Added support for default input values ($uv can be used for non uniform defaults)
2018-11-19 23:09:22 +01:00
RodZill4
f06ffaf9f7 Added support for inputs in generic node and rewrote AdjustHSV as generic. 2018-11-11 19:18:26 +01:00
Rodolphe Suescun
7f4cc79a47 Fixed a few problems reported by Godot 3.1a2 2018-11-04 15:43:02 +01:00
Rodolphe Suescun
59add0d468 Updated transform and blend nodes to support alpha. Removed obsolete scenes. 2018-11-03 19:35:18 +01:00
Rodolphe Suescun
6ca982b692 Slightly modified the ptex file format
Parameters are now saved separately from other node attributes (type, name...). Old files can still be loaded.
2018-11-03 18:56:58 +01:00
Rodolphe Suescun
c624e0f6ee Added support for alpha channel in colorize node 2018-11-03 17:43:32 +01:00
RodZill4
ade213921c Rewrote pattern, uniform and voronoi nodes using generic node. 2018-10-31 22:22:41 +01:00
RodZill4
0a4e84ec06 Implemented color, perlin and shape as generic nodes. 2018-10-29 22:22:35 +01:00
Rodolphe Suescun
78bb4551a8 Color parameters and RGBA generic outputs
Also added default value to float, boolean and enum parameters
2018-10-28 17:06:42 +01:00
Rodolphe Suescun
5d80d9db63 Refactored custom node parameters editor 2018-10-28 16:26:37 +01:00
RodZill4
41fdc5783e Added custom node example (mandelbrot) 2018-10-26 22:47:27 +02:00
RodZill4
bf4a125386 Node editor updates and support for alpha channel
Added initial support for alpha channel (in combine, decompose and blend nodes). Textures with alpha channels can be exported using the material node albedo input.
Updated node editor with a simple editor for enumerated parameters.
2018-10-26 22:44:47 +02:00
RodZill4
938397f3f6 More node editor progress, support for globals in generic nodes 2018-10-13 17:31:37 +02:00
RodZill4
0d85cd5aef Updated custom node and associated editor
Custom nodes now support outputs and basic (float) parameters, and are serialized/deserialized correctly.
2018-10-09 07:24:44 +02:00
RodZill4
ee0bc96f30 Added a generic node type
Updated all nodes so parameters are located in a "parameters" variable.
Started writing a generic node model whose behavior is defined in a json file. Should be able to replace all generators so far.
Wrote json files for bricks and noise nodes.
Started preparing a custom node.
2018-10-02 07:46:20 +02:00
RodZill4
ab9ae4ce5d Reorganized nodes (1 directory per node) 2018-09-22 08:12:33 +02:00
RodZill4
fafa5fbb1b Added a "Rays" shape and a radiations logo example 2018-09-21 08:14:20 +02:00
RodZill4
e2e1a67b7e Added star shape in Shape generator 2018-09-20 08:32:30 +02:00
RodZill4
d9b98693da Added a simple shape generator
Can be used to create a circle, a polygon or a curved star
2018-09-19 08:21:48 +02:00
RodZill4
9bdcb73411 Fixed problems in Material Maker addon for Godot
Icon and settings taken from the project
2018-09-12 19:21:42 +02:00
RodZill4
e4aebb9b1f Updated link to make it child of graph_edit control
Should fix problems under Linux
2018-09-11 21:43:40 +02:00
RodZill4
4a504b0bb5 Updated export presets 2018-09-11 20:13:07 +02:00
RodZill4
73ccaf32eb Updated screenshot 2018-09-11 19:47:04 +02:00
RodZill4
4ca96b5d8e Updated examples 2018-09-11 19:40:34 +02:00
RodZill4
d05631122c Added documentation for new nodes
Added documentation for Material, Export, Comment, Switch and Remote nodes.
Fixed missing "tool" attribute in editable_label script.
Reordered misc. nodes in base library.
2018-09-11 19:38:59 +02:00
RodZill4
d6527848d3 Added clipping when drawing links 2018-09-10 22:43:17 +02:00
RodZill4
1a5ddae226 Added comment node 2018-09-10 21:59:52 +02:00
RodZill4
cb03131b85 Added control link check and editable labels
Now linking new controls to a linked_control will check compatibility (same control type and parameters).
Linked control labels are now editable.
Modified the Switch node layout so it is easier to understand.
Updated the bricks example to use the switch and remote nodes.
2018-09-10 08:00:03 +02:00
RodZill4
f116aa0e22 Added switch node
Added node that can select between 2x2 inputs to generate 2 outputs
2018-09-09 15:20:01 +02:00
RodZill4
9dc6d4b18a Gradient and serialization related updates
Added a class for gradient (that handles serialization and shader generation), and updated the GradientEditor.
Added a "Types" class that handles values serialization.
Updated linked_control and config_control to link to GradientEditors.
2018-09-09 12:09:05 +02:00
RodZill4
95a737029a Started adding the "remote node"
Started adding the "remote" node, that can control important parameters of the graph and save/restore configurations of groups of parameters. This should help creating easily configurable materials.

Added new "mosaic" example
2018-09-08 12:25:28 +02:00
RodZill4
2621ff4b46 Improved integration in Godot
Exporting a material will now create a SpatialMaterial. The Material graph node
now generates different textures when used as a Godot addon (metallic, roughness
and ambient occlusion are merged into a single texture).

Rendering code (that was in graph_edit and node_base scenes) is now in a single "renderer scene" attached to the main window.
2018-09-04 21:45:14 +02:00
RodZill4
1c56fc60d8 Cleanup and renaming
Moved Material Spray to another repository.
Renamed the addon directory to material_maker
2018-09-03 21:35:44 +02:00