Awesome Open Source
Awesome Open Source

Standard Geometry Shader Example


This is an example that shows how to implement a geometry shader that is compatible with the standard lighting model in Unity.

Writing geometry shaders is hard

Implementing a geometry shader in Unity is not easy as it seems because surface shaders don't allow geometry stage customization -- This means that you have to implement the whole lighting passes by yourself without the help of surface shaders.

This example shows the minimum implementation of vertex/geometry/fragment shader set that provides a custom geometry modification along with the standard lighting features.


To make the example as simple as possible, some features are intensionally omitted from the shader.

  • No forward rendering support (!)
  • No lightmap support
  • No shadowmask support
  • No motion vectors support
  • No GPU instancing support
  • It hasn't been tested with XR.

It's not impossible to add these features to the shader, that might be pretty troublesome though.


Copyright (c) 2017 Unity Technologies

This repository is to be treated as an example content of Unity; you can use the code freely in your projects. Also see the FAQ about example contents.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
unity (931
unity3d (601
shader (169
geometry (114
hlsl (101
effects (89