Gouraud/Vertex N64/PS1 Style Shading via Geometry Nodes - Am I doing this the hard way?

My goal is to have per-vertex shading (rather than the now standard per-pixel shading) in Cycles or EEVEE, and I’ve gotten that by calculating the diffuse and specular lighting in Geometry Nodes and passing those values to shader nodes to combine with the surface albedo and specular tint for the final (purely emissive as far as the shader nodes are concerned) texture.

It’s turning out great, I just want to check if anyone knows a more built-in style way of achieving this.

I used the ideas here to create the geometry nodes to calculate the lighting: https://developer.download.nvidia.com/CgTutorial/cg_tutorial_chapter05.html


I’ve gotten some messages asking for my node groups, here they are! This is version 0.1, consider it in early alpha.

NettlesVertexLighting0_1.blend (2.3 MB)

Model is copyright, the node groups and materials are CC0.