A downloadable Retro Surface Shader

Download NowName your own price

Symmasolan's Super Retro Shader

A highly modular, 3D retro-focused surface shader for Unity's Built-in Render Pipeline (BiRP)

Features:

  • Built-In Render Pipeline support (Unity 2019.4+).
    • All features tested with both Forward and Deferred rendering paths!
  • Extremely modular selectable base shading options (some with options of their own to modify further!):
    • Lambert
    • Half-Lambert
    • Gouraud (Per-Vertex Shading)
    • Per-Texel
    • Flat Lambert
    • Flat Half-Lambert
    • Dithered Lambert (4x4, 8x8)
    • Dithered Half-Lambert (4x4, 8x8)
    • Unlit (with shadows!)
  • A user-selectable choice of Specular:
    • Phong
    • Blinn-Phong
    • Or no Specular at all!
  • Option for per-vertex Specular shading.
  • Indirect/Baked and Ambient SH lighting support, both on a toggle.
  • N64 Bilinear Texture Filtering for Main and Emissive textures.
  • Affine UVs with:
    • Adjustable perspective shift strength.
    • Adjustable camera bias to prevent visual issues up close (which can also be disabled!)
  • Vertex Position Rounding/ Vertex Snapping with customizable accuracy.
  • Custom user-defined Shadow color per-material.
  • Basic Specular workflow texture options:
    • Normal Map
    • Specular Map
    • Occlusion Map
    • Emissive Map
  • Vertex Directional/Point Light (unimportant) support.
  • Advanced Rendering and Stencil options.
  • All options are properly named to gracefully use the Fallback "Standard (Specular)" shader.
    • Note: The Standard shader uses Oren-Nayer diffuse and Cook-Torrence specular.
  • Select from a simple drop-down what type of Rendering Preset to use! (Also supports full shader fallback)
    • Opaque
    • Transparent (& Cutout, & Clipping)
    • Fade
    • Additive (& Soft)
    • Multiplicative (& 2x)
  • Integrated with a robust editor interface (ThryEditor).
  • Support for selecting a VRChat-specific fallback shader (via ThryEditor!)
    • Fully supports graceful fallback to chosen VRChat fallback shader.

---------------------------------------------------------------------------------------------------

Limitations:

  • Due to issues with Light/Shadow Attenuation in Unity's BiRP, Half-Lambert shading styles may possibly show jagged artifacts around the edge of surface shadows.
    • This is not an issue with the shader itself, and there is no way to fix this in the BiRP without custom GI/Shadow Attenuation as far as I know.
  • Per-Texel shading has a hard requirement to use a Main Texture of some sort in order to function as intended, whether it's an actual texture or a 32x32 blank white square.
  • Because of how Dithering works as an effect, it can be difficult to record. This is not the fault of the shader itself, but instead because Dithering is a visual illusion. This is even visible on some screens when viewing the above screenshots.
  • Only supports up to 4 Vertex/Unimportant lights per surface maximum for Forward rendering due to base Unity shader functionality/limitations.
  • Spot Light Vertex/Unimportant lights are currently unsupported.
    • They may be supported in the future if any interest is shown in this, but would cost more to render per material when using Vertex/Unimportant lighting in a scene.
  • Pixel and Vertex lights do not visibly mix well when overlapping, generally producing a visible artifact.
  • Use of a different ShaderGUI/CustomEditor that is not ThryEditor (the project's implemented CustomEditor) would require significant extra footwork.
  • A couple other limitations are specifically mentioned within the shader editor itself while modifying values, which will display as helpboxes to assist with avoiding them as needed.

---------------------------------------------------------------------------------------------------

Installation:

  • First, if there are any other shaders with ThryEditor included (ex. Poiyomi Toon), delete any existing versions of ThryEditor if it is not under the `Assets/ThryEditor/*` folder. This prevents issues and errors down the line.
    • This will not break existing shaders as long as you re-import ThryEditor, which is included with this package.
    • You can also leave existing versions of ThryEditor installed and instead choose to not import the `ThryEditor` folder with the next step.
  • Double-click the downloaded `.unitypackage`.
    • This will unpack the package into your last opened or currently opened project.
    • If that does not work, you can instead drag and drop it into an already open project.
  • In your project explorer, right-click -> Create -> Material.
  • Selecting the newly made Material, there is a drop-down at the top of the Inspector that currently says "Standard". Select the dropdown, and find the included "Symm/Super Retro Shader/Super Retro Surface" shader.

---------------------------------------------------------------------------------------------------

Licensing and Terms of Service:

  • I do not take any responsibility for any possible damage that this shader can cause/causes.
  • All sales (free, with donation, or otherwise) are final, and cannot be refunded as this is a digital product.
  • Do not claim this shader as your own work. It'd be cool if you credited me where possible (I've put a lot of time and love into this!), but is not required.
    • Additional information sources are available within the shader's source code and/or from the ASE graph.
  • DO NOT remove source comments from the shader, whether it be from the ASE graph itself, ASE metadata, or in the final shader's text file.
  • You are allowed to edit and customize the shader for your own personal use. (Effectively requires Amplify Shader Editor [v1.9.1.5+] to make significant changes easily)
  • For projects that use this shader that are redistributable (ex. VRChat/ChilloutVR avatars or worlds), please point the end user back to this page to download the shader so they're always getting the latest version! (I'd really appreciate it, it makes user support easier)

All this said, the included code is MIT licensed and the package is free. Tag me on twitter (@Symmasolan) or find me on Discord (Symm#8218) to show me your awesome creations using it!

---------------------------------------------------------------------------------------------------

Not distributed with the project are the textures shown in the screenshots above. Here's a short list of what they are and where to get them!

And included with the Simple Demo Scenes are the following:

Other attributions that helped make this shader possible are included as source comments in the shader's code! I'd like to take one of those comments and make it a shout-out here, as Per-Texel shading would not have been possible without the work of GreatestBear and their willingness to share the results of their hard work.

---------------------------------------------------------------------------------------------------

Footnote:

Hi there! Thank you for showing an interest in my work and reading this far down into the page! If you decide to use this package, whether it be for a Game Jam, your own next personal project, a client's project, your team's project, or otherwise, please come back and leave a comment sharing your project, or donate to show your appreciation for my work!

I love seeing what people use my shaders to create, and donations help fund future development and support!

I'm also looking for a job right now! *wink wink*

The easiest way to directly contact me is via Discord (Symm#8218). Please don't ask to ask though, and send me your question, concern, report, interview request, whatever you want to ask/tell me about, with the first message(s)!

---------------------------------------------------------------------------------------------------

Known Issues:

  • None currently!

---------------------------------------------------------------------------------------------------

Recent Changelog:

  • v1.00.00
    • Initial release

Download

Download NowName your own price

Click download now to get access to the following files:

SymmSuperRetroShader_v1-00-00.unitypackage 745 kB
SRS_SimpleDemoScenes.unitypackage 1 MB

Comments

Log in with itch.io to leave a comment.

Hi there! I have a quick question – is there a way to generate texel shadows using your shader? I'm facing difficulties getting it to work in the demo scene. Looking forward to hearing from you soon. Thank you!