helloworld808 / StandardGeometryShader

An example of a geometry shader with Unity's standard lighting model support.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Standard Geometry Shader Example

gif

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.

Limitations

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.

License

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.

About

An example of a geometry shader with Unity's standard lighting model support.


Languages

Language:HLSL 79.6%Language:ShaderLab 20.4%