Commit Graph

357 Commits

Author SHA1 Message Date
RodZill4
75be7358af Merge branch 'master' of https://github.com/RodZill4/godot-procedural-textures 2019-11-10 17:42:23 +01:00
RodZill4
5b457eb41a Started updating the documentation 2019-11-10 17:41:02 +01:00
Rodz Labs
587f5d85a3
Merge branch 'master' into remove-trailing-whitespace 2019-11-10 17:19:53 +01:00
RodZill4
40fa352dc6 Fixed icon name in saved library 2019-11-10 15:38:54 +01:00
RodZill4
85599c2fea Added menu to show nodes documentation and updated import plugin 2019-11-10 15:02:00 +01:00
Hugo Locurcio
fc3173b9b4
Remove trailing whitespace, add newlines at end of files
This results in less merge conflicts when using the
Text Editor > Files > Trim Trailing Whitespace editor setting.

.ptex, .mmg and .json files generated weren't modified
as these are saved by Material Maker. These files could be made
to end with a newline automatically on save in a future commit.
2019-11-10 01:21:11 +01:00
RodZill4
d37fc835f9 Updated library export to generate unique icon names 2019-11-07 08:25:57 +01:00
RodZill4
46c2c1b684 Fixed randomness condition on groups 2019-11-06 23:55:09 +01:00
RodZill4
8f4a525107 Added missing return types (#30) 2019-11-06 23:49:26 +01:00
RodZill4
f4a1681fc8 Added new samples 2019-11-06 22:34:23 +01:00
RodZill4
bbfe288b15 Preloaded renderer, support for subsurface scattering, minor fixes 2019-11-06 22:33:01 +01:00
RodZill4
e7a70af690 Filtered unwanted mouse events in float editor and updated shader parameter editor 2019-11-06 08:31:38 +01:00
RodZill4
1c4e904a22 Added singed distance function nodes 2019-11-06 08:30:36 +01:00
RodZill4
5141b3e297 Added new float_edit widget to replace the spinbox and the hslider 2019-11-05 22:28:55 +01:00
RodZill4
e341e25e7f updtaed preview refresh code to avoir queueing many refreshes when tweaking parameters 2019-11-05 22:28:01 +01:00
RodZill4
df07cfab06 Added an option to save the library and updated the library 2019-11-05 20:00:28 +01:00
RodZill4
c121f7c00a Updated loader and random seed handling (#15)
Loader is not a lot more generic and deserialization code moved to generators.

There is now a small dice button on nodes that create random patterns that can be used to freeze the seed. Frozen nodes can thus be moved without affecting the seed.
Graph nodes can also transmit their seed to their children (this behavior can be enabled/disabled using the dice button at the top right of the graph pane).
2019-11-04 07:58:17 +01:00
Rodolphe Suescun
c466d20229 Preoared random seed lock button 2019-11-03 10:04:23 +01:00
Rodolphe Suescun
f136046082 Added support for shader materials and added a tesselated sphere in preview shapes 2019-11-02 22:58:29 +01:00
Rodolphe Suescun
3bd0cf228a Updated noise node and added color_noise 2019-11-02 22:56:14 +01:00
Rodolphe Suescun
2c606a2b1e Disabled import in the library directory 2019-11-02 22:51:17 +01:00
Rodolphe Suescun
bfa1306b0e Added export and debug nodes 2019-11-02 08:43:54 +01:00
Rodolphe Suescun
9e0d384730 Fixed grid in graph editor 2019-11-01 13:04:38 +01:00
RodZill4
5430f96f29 Removed useless debug output in convolution 2019-11-01 06:21:28 +01:00
RodZill4
e598f0867d Updated convolution (support for sparse matrix content to override matrix function) and added emboss node 2019-10-31 22:14:18 +01:00
RodZill4
5a7e093eef Added Studio environment provided by @tinmanjuggernaut (issue #29) 2019-10-31 20:58:46 +01:00
RodZill4
972da9407b Added support for drag and drop between gradient editors 2019-10-30 23:20:18 +01:00
RodZill4
f664a54e4b Updated gradient with a choice of 4 interpolation options 2019-10-30 22:57:51 +01:00
RodZill4
47fa19c65f fix in convolution node (incorrect behavior near edges) 2019-10-29 22:12:53 +01:00
RodZill4
c375c7e23e Added an output and a parameter to support LOD in buffer 2019-10-29 22:12:14 +01:00
RodZill4
c7c1e61597 Removed old blur node 2019-10-29 22:11:29 +01:00
RodZill4
8b9084f72b Fixed gradient editor (Cursors not updtaed when color was modified) 2019-10-29 22:10:54 +01:00
RodZill4
4c2274104b Made IOs node editable (can add/remove ports) 2019-10-29 22:10:08 +01:00
RodZill4
cd08666123 Fixed image node so the image is displayed the node is duplicated 2019-10-27 15:22:14 +01:00
RodZill4
46d0e0f5cd Updated switch to update connections when changing the number of choices/outputs and added tooltips 2019-10-27 14:48:35 +01:00
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