Hello all you wonderful people!
Got a chance to spend some time with the Prototype and wanted to share some thoughts, node groups and requests.
I used the Surface Curvature and Co-Planar Edge Detection groups, in combination with a GeoNodes Attribute for edge marking, to make a Linework group:
Below is only the edge mark data:
If possible, it would be nice to be able to access edge mark data from within NPR nodes - I’m using the ‘Is Edge Smooth?’ node to detect edges marked sharp, then applying those marks to the shader.
The downside is that it marks your edges sharp - and checking if an edge is marked as a seam could cause similar issues, so ideally it would be Freestyle mark data that would be accessible.
There are a couple of other GeoNode features that I think could work as NPR nodes:
- Screen Space Compensation - a lot of the nodes that are used in the solution posted above are not available in Shader nodes, I hacked together my own, but it’s not perfect
- Scene Time - I think it was mentioned above that NPR nodes are not yet linked to the Timeline, but it would be nice to have quick access to Seconds, Frames and Stepped Frames to drive NPR values
UI questions:
NPR Trees have Inputs and Outputs, are they intended to have IO like a node group, or is that something that would be hidden in the final release? I can access the NPR Tree as a node group in the Shader Editor, and any IO will be exposed on the node, but I couldn’t find a way to access it inside of the NPR tree - they are not added to the NPR Input or Output nodes (I’m guessing this is by design)
It would be nice to be able to quickly feed data from the Shader tree to the NPR tree (e.g. an animated texture, or linked value) - but I can appreciate that there is some design difficulty there.
That also brought up the question of how to access NPR settings outside of the Node Editor - node groups are great because they will populate the Properties area with all the settings you want to have exposed.
Node Search autocomplete gave inconsistent results between the Shader and NPR editors - Mapping and Color Ramp nodes were available in NPR, but I could not access them through search.
There was also no indication that NPR shaders would not compile - the first time I tried to feed Color data to an Image input I thought that the shader was calculating, only to eventually realize that nothing was happening and I just couldn’t connect those nodes that way. More bright red link highlights for unsupported operations would help with this.
Is there a possibility that NPR nodes might make it into the 4.5 LTS?
Thanks again to everyone contributing to this project, including everyone posting their results in this thread, I would have been a little lost without some of these examples.
I’ll post some of my experiments below, mostly basic stuff, node groups are in the .blend:
- Linework (shown above)
- Simple Screen Space Compensation
- Stepped Time
- Colored Light Painted Toon Shader:
- Simple Dissolve Effect:
- Halftone:
- Hatch:
- Stipple:
- Stipple and Linework:
- Shader, Hatch and Linework:
- Shader, Halftone and Linework with RGB Scene lights:
- Halftone and Linework with NPR Inputs - Position for Shadow, Diffuse Direct for Highlight, Normal for Linework over a solid color