Commit Graph

373 Commits

Author SHA1 Message Date
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
RodZill4
746fd1b2fe Fixed crash upon copy/paste of Material node 2018-09-01 13:55:48 +02:00
RodZill4
92b647f0c8 Removed useless debug message 2018-09-01 11:32:36 +02:00
RodZill4
f1eb5a97e1 Fixed tab labels not updating when a filename changes 2018-09-01 11:09:45 +02:00
RodZill4
64ebbe6434 Doc updates
Added doc for AdjustHSV node
Corrected typos in other docs
2018-09-01 11:06:58 +02:00
Rodolphe Suescun
b50c07543b Minor fixes
Added size parameter to normal map
Fixed color of outputs in perlin and voronoi
Fixed keyboard shortcuts in graph editor (did not check modifiers)
2018-08-28 08:33:41 +02:00
Rodolphe Suescun
effa29e158 Added size parameter to emboss node 2018-08-27 19:31:00 +02:00
Rodolphe Suescun
ec645a06f4 Replaced the TabContainer with a Tabs control
- Load material can now load several materials
- the current tab now has a close button
2018-08-27 17:22:57 +02:00
Rodolphe Suescun
467ba24a5f Disabled menu items when they cannot be used. 2018-08-27 12:16:37 +02:00
Rodolphe Suescun
5184f6375e Cut/Copy/Paste fix
Fixed cut, copy and paste behavior when Material is selected (that node should not be deleted or copied, but connections should be pasted).
2018-08-27 12:15:57 +02:00
Rodolphe Suescun
0d2225d997 Disabled useless tex2view texture update in mesh painter 2018-08-27 08:50:46 +02:00
Rodolphe Suescun
1bbbd43596 Added AdjustHSV node
Added a node that adjusts hue, saturation and value.
Added support for HSlider as control in nodes.
2018-08-26 16:31:29 +02:00
Rodolphe Suescun
5669117b44 Added export size selection in Material and Export nodes 2018-08-26 16:22:42 +02:00
Rodolphe Suescun
76f588a00e Drag problem workaround... 2018-08-25 19:18:40 +02:00
Rodolphe Suescun
ddc8ae665c Doc: removed empty stuff in index 2018-08-25 08:33:31 +02:00
Rodolphe Suescun
b626f455fe Moved examples and documentation into the addon directory 2018-08-25 08:21:44 +02:00
Rodolphe Suescun
26720e74e9 Updated Transform, added Decompose and minor changes
Updated Transform so it accepts a greyscale input per parameter. For each pixel, the parameter is multiplied by 2*v-1 (v being the value of the input's pixel) which makes it possible to affect the strength of each transform using an input image. New effects such as whirl and color guided offsets are now possible.

Added Decompose node (does the opposite of combine).

Used another color for inputs/outputs that expect/generate a greyscale image.
2018-08-25 08:07:22 +02:00
Rodolphe Suescun
7e92831226 Correctly pass size when exporting textures 2018-08-23 17:01:24 +02:00
Rodolphe Suescun
01c9f044d8 Improved precision in paint tool
Added a new tex2view texture to store least significant bits of the position in view to solve the precision problem.
2018-08-22 07:39:32 +02:00
Rodolphe Suescun
eecc199427 New shortcuts and node groups in library
Updated library code to be able to store a group of nodes.
Added keyboard shortcuts:
- Del to delete selected nodes
- C to center the view
Modified paste action to paste at the center of the view.
New example (biohazard from webbzeug)
2018-08-22 07:33:50 +02:00
Rodolphe Suescun
ba016797e3 Refactoring, new noise node and blur updates
Added a noise node (paints randomly pixels in black or white).
Modified blur so direction can be selected (horizontal, verticla, or both).
Updated code to use string formats instead of conversion + concatenation.
2018-08-20 15:43:03 +02:00
Rodolphe Suescun
1d27344de2 Refactoring in the mesh paint tool 2018-08-19 15:24:01 +02:00
Rodolphe Suescun
ddbd69ea25 Added new patterns for bricks
Added a Running Bond variant, HerringBone, Basket Weave and Spanish bond patterns to the bricks generator.
Shader was refactored to make it easy to add new patterns made of axis-aligned bricks.
2018-08-19 15:23:11 +02:00
Rodolphe Suescun
0d0f862a99 Added support for cut/copy/paste in Material Maker 2018-08-19 02:11:52 +02:00
Rodolphe Suescun
27f6de16e9 Fixes in Perlin and Voronoi
Perlin and Voronoi have better randomness, and Voronoi color output is now tileable
2018-08-18 01:53:07 +02:00
Rodolphe Suescun
0191876430 Integrated as a button in toolbar, and added a simple mesh painting tool 2018-08-16 15:08:09 +02:00
Rodolphe Suescun
071273ff9d Updated screenshots 2018-08-14 22:15:28 +02:00
Rodolphe Suescun
d1b8f12b5b more refactoring, added combine, emboss, export nodes
- Added a combine node that assembles channels into colors
- Added an emboss node
- Added an export node that generates additional file when exporting the material
- Refactored convolution related code
2018-08-14 15:09:46 +02:00
Rodolphe Suescun
18015aec93 Implemented multi-pass nodes and fixed blur. Various other fixes.
* Added a "constant wave" in the pattern node
* Updated graphEdit to detect and forbid loops
* Modified code that renders to texture to update a texture instead of returning one (so we avoid updating everything and rely on everything being updated automatically wrt textures)
* base library is loaded from filesystem (instead of package) if available
2018-08-12 19:25:18 +02:00
Rodolphe Suescun
2f8be1a142 Minor changes for 0.2 tag 2018-08-11 15:11:39 +02:00
Rodolphe Suescun
f997fcf06f Added an about box + minor changes 2018-08-11 11:33:24 +02:00
Rodolphe Suescun
193ff43f69 Added ambient occlusion and parameters for the material node 2018-08-10 12:31:15 +02:00
Rodolphe Suescun
7033bf4a6e Added blur, transform node update, more blend types, UI fixes
* updated transform node (scale split into scale_x and scale_y, and added a repeat parameter)
* added blend modes (burn, dodge, lighten and darken)
* added a (very bad) blur node, based on generic convolution code
* rewrote normal_map node using convolution code
2018-08-09 22:19:27 +02:00
Rodolphe Suescun
a9e7442acc Added uniform color node
... and minor fixes
2018-08-08 10:50:48 +02:00
Rodolphe Suescun
312b7f74d2
Merge pull request #1 from TeddyDD/fix-colorize
Fix removing gradient steps from colorize node
2018-08-08 09:03:49 +02:00
Rodolphe Suescun
37eb661496 Basic library editing + shortcuts
Added simple functions to add nodes to the user library and save it.
Added keyboard shortcuts for main menu.
2018-08-07 23:21:12 +02:00
Rodolphe Suescun
0e1f891910 More UI progress...
Refactored preview stuff and updated new UI
2018-08-07 09:31:41 +02:00
Rodolphe Suescun
30c711920f Fixed pattern node
Triangle was stupidly named saw, sawtooth was missing
2018-08-07 09:24:48 +02:00
Daniel Lewan
582ed03293 Fix removing gradient steps from colorize node
also makes node a little bit bigger to contain
whole gradient editor
2018-08-06 22:05:26 +02:00
Rodolphe Suescun
63685f8771 Updated new UI and more refactoring 2018-08-05 18:46:23 +02:00
RodZill4
6f0eb8e8e1 Shrinked panoramas 2018-08-04 08:56:07 +02:00
RodZill4
126ac1b8f8 Started a new main window layout + bug fixes 2018-08-04 08:05:34 +02:00
RodZill4
507586cbec Updated bricks and voronoi nodes to provide several outputs
Updated base node class to support several outputs.
Now bricks support 2 outputs : greyscale depth map, and (random) brick color.
Now Voronoi supports 3 outputs : center distance, edge distance and cell color.
Updated bricks example to use brick color output.
2018-08-03 22:38:48 +02:00
RodZill4
a946206a34 Material export and usability improvements
Refactored rendering of textures for save and exporting material now saves all textures.
Added an option to start a clear the project, and proper "save" and "save as..." options.
Added support for disconnects.
2018-08-03 08:16:38 +02:00
RodZill4
0fda03ca42 Reimplemented normal map generation as 3x3 sobel 2018-08-02 08:45:46 +02:00
RodZill4
0c062563c1 Project load fix and translate in transform
Added missing OptionButtons update when loading a project
Added translation to transforms
Added an example using transform
2018-08-02 06:32:08 +02:00
RodZill4
5b20a189f9 New pattern node
Replaced the sin node with a pattern node similar to NeoTextureEdit's FunctionPattern
2018-08-01 07:50:58 +02:00
RodZill4
6b9b954526 Fixed load/save dialogs and refactoring
now load/save dialog use the non-editor classes (thus usable when running the project).

Refactored graphedit and node code (mainly load/save and adding and removing nodes).
2018-07-30 08:45:19 +02:00
RodZill4
279b0e0103 Improved SpatialMaterial support
Now the material node is aimed at Godot's SpatialMaterial. Textures are generated and passed to the SpatialMaterial (and not generated as shaders anymore).
Rendering textures requires a Timer (to wait for the viewport to be rendered). There has to be a better solution...
Added a couple more examples.
2018-07-29 23:43:24 +02:00
RodZill4
58f30c4276 New cylindre model in the preview
Also modified the cube so all faces show the whole texture
2018-07-29 19:19:35 +02:00
RodZill4
7631f4489b Smart typo in perlin noise node 2018-07-29 14:21:49 +02:00
RodZill4
4c75ca8565 Added blend modes + minor fixed
Added blend modes (Dissolve, Multiply, Screen, Overlay, Hard Light, Soft Light).
Fixed color popup position in the GradientEditor.
Fixed initial panoram shown in preview.
2018-07-29 11:55:17 +02:00
RodZill4
dffc6fc790 Finished GradientEditor and improved preview
Now gradient editor can remove points.
Improved preview:
- added panorama to 3d preview (with panoramas from the godot material demo)
- texture preview can be maximized
2018-07-28 21:21:05 +02:00
RodZill4
10ea905090 Many changes & fixes...
- shader updates are delayed by .25 seconds to avouid UI freeze
- fixed GraphNode initialization upon loading
- started obsoleting get_source_rgb and get_source_f functions
- updated colorize node to use gradient
- image node can now be loaded/saved
- removed iqnoise node
- rewrote perlin shader to support a seed parameter (seed is calculated from the node's position, so just move it to reseed)
- Added voronoi noise node
- updated code to use % formats instead of concatenating strings (should solve type problems in shaders)
- reworked the context menu (now has submenus)
- fixes in the gradient editor
2018-07-28 09:37:51 +02:00
RodZill4
46adb434bf New gradient editor, more image node progress
Added a gradient editor (should be ready for integration in Colorize node)
The image in the Image node can be modified (but will not be saved yet)
2018-07-27 08:49:54 +02:00
RodZill4
d04a319944 Prepared all nodes for caching and added Image node
Added Image node that can be used to import textures
Renamed all get_shader_code methods to _get_shader code so a caching system can be integrated in node_base (and we can get rid of get_source_rgb and get_source_f functions)
2018-07-26 08:31:28 +02:00
RodZill4
4e0af78b31 Improved nodes and added texture export
Improved perlin noise and transform nodes.
Added an export texture menu entry that exports a texture for the selected node.
2018-07-26 00:08:34 +02:00
RodZill4
a3a8482d03 Added material preview (albedo and normal map only for now)
Also create a copy of materials and shaders when the addon is started so it does not change the addon's default materials.
2018-07-25 06:20:36 +02:00
RodZill4
26b317eec8 Refactoring + added preview for selected node
Also started replacing LineEdits with Spinboxes
2018-07-24 08:04:25 +02:00
RodZill4
3afa9e9715 Added basic normal map node 2018-07-23 23:13:14 +02:00
RodZill4
0cd0609541 Updated all nodes and added warp
- updated all nodes (load/save support and shader generation)
- added warp node
2018-07-23 22:18:43 +02:00
RodZill4
4c9e5762b1 Node position related fixes
Set correct position when creating a new node
Node position is now saved/loaded
Fixed row & column parameters in bricks generator
2018-07-23 06:19:45 +02:00
RodZill4
9443940d9a More nodes and load/save
Added basic colorize and blend nodes
Started implementing loading and saving texture graphs (most nodes need an update to support this)
2018-07-22 23:25:05 +02:00
RodZill4
6c615aeb02 First version
Created base framework and created simple operators
2018-07-22 17:20:27 +02:00