Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added new node groups #12

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Added new node groups #12

wants to merge 1 commit into from

Conversation

matejlou
Copy link

I'd like to contribute 4 new node groups, 2 new ones and 2 of which are somewhat updated/altered versions of existing ones. I have also provided example files for each effect as required.

Vertex Lighting (geometry nodes)
Calculates old school per-vertex lighting on an object in relation to another object that will act as the light source. Provides control over a number of parameters such as colour, intensity, falloff, specular, shadows, etc. The result is written to the target object's colour attribute. Instances of the geometry nodes modifier can be stacked to support multiple light sources. It is advised to subdivide your geometry for best effect, particularly if your model has a lot of planar elements.

PS1 Texture Warp (geometry and shader nodes)
This reproduces affine texture mapping as seen on the PS1 by effectively undoing Blender's built-in perspective correction. Requires adding a geometry node and a shader node. First you need to hook up the geometry node to the target object and input its UV map attribute. Then assign the object a material with a texture input as you normally would, but pass the UV map attribute through the texture warp node before passing it on to the texture node.

PS1 Vertex Snap V2 (geometry nodes)
Performs vertex snapping in a manner that is closer to actual PS1 hardware, snapping vertices to the screen-space pixel grid. You can configure the simulated resolution of the pixel grid to modify the effect, or you can add drivers to the node inputs for easy synchronisation with your camera and render settings.

Pattern Dither (compositor)
Applies ordered dithering to each RGB channel in the render with an option to reduce to the channel-wise colour depth, as well as an option to choose from different pattern sizes. This allows for dithering of arbitrary full-colour renders. You can also input your own dither pattern instead (be sure to set the Pattern input value to 0 to enable the use of custom dither patterns).

Please let me know of any bugs, comments, or issues :)

Brand new node groups:
Vertex Lighting (geometry nodes)
PS1 Texture Warp (geometry and shader nodes)

I have also added a couple of nodes which are similar to ones we already have but with some important differences:

PS1 Vertex Snap V2 (geometry nodes) - performs vertex snapping in a manner that is closer to actual PS1 hardware, i.e. vertices snap to the screen-space pixel grid (configurable in the node settings).

Pattern Dither (compositor) - applies dithering to each rgb channel in the render and reduces the channel-wise colour depth to a specified amount. This allows for dithering of arbitrary full-colour renders. Also gives you the option to provide your own dither pattern/threshold matrix for the dither effect.
@skeddles
Copy link
Collaborator

sounds great, cant wait to try it!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants