- name
- intent
- problem/motivation
- solution
- structure
- code
- consequences & trade-offs
| // When creating shaders for Lightweight Pipeline you can you the ShaderGraph which is super AWESOME! | |
| // However, if you want to author shaders in shading language you can use this simplified version as a base. | |
| // Please not this should be only use for reference only. | |
| // It doesn't match neither performance not feature completeness of Lightweight Pipeline Standard shader. | |
| Shader "LightweightPipeline/Physically Based Example" | |
| { | |
| Properties | |
| { | |
| // Specular vs Metallic workflow | |
| [HideInInspector] _WorkflowMode("WorkflowMode", Float) = 1.0 |
| //https://docs.unity3d.com/Manual/SL-UnityShaderVariables.html | |
| //https://github.com/TwoTailsGames/Unity-Built-in-Shaders/blob/master/CGIncludes/UnityCG.cginc - Most interesting stuff ;) | |
| //https://github.com/TwoTailsGames/Unity-Built-in-Shaders/tree/master/CGIncludes | |
| //https://docs.unity3d.com/Manual/SL-Shader.html | |
| //http://developer.download.nvidia.com/CgTutorial/cg_tutorial_appendix_e.html | |
| //https://unity3d.com/how-to/shader-profiling-and-optimization-tips | |
| //https://docs.unity3d.com/Manual/SL-UnityShaderVariables.html | |
| //http://www.deepskycolors.com/archive/2010/04/21/formulas-for-Photoshop-blending-modes.html | |
| //http://www.iquilezles.org/blog/ | |
| //Properties |
| Shader "Name" { | |
| Properties { | |
| _Name ("display name", Range (min, max)) = number | |
| _Name ("display name", Float) = number | |
| _Name ("display name", Int) = number | |
| _Name ("display name", Color) = (number,number,number,number) | |
| _Name ("display name", Vector) = (number,number,number,number) |
| // Used to generate Texture Array asset | |
| // Menu button is available in GameObject > Create Texture Array | |
| // See CHANGEME in the file | |
| using UnityEngine; | |
| using UnityEditor; | |
| public class TextureArray : MonoBehaviour { | |
| [MenuItem("GameObject/Create Texture Array")] | |
| static void Create() |
UNITY_DECLARE_TEX2DARRAY(name)
UNITY_SAMPLE_TEX2DARRAY(name,coord) // coord is float3
On DX11-like systems (DX11, and I'd assume XB1/PS4) the macros expand to:
#define UNITY_DECLARE_TEX2DARRAY(name) Texture2DArray(name); SamplerState sampler##name
#define UNITY_SAMPLE_TEX2DARRAY(name,coord) name.Sample(coord)
| Shader "Custom/Texture2DArraySurfaceShader" | |
| { | |
| Properties | |
| { | |
| _Textures("Textures", 2DArray) = "" {} | |
| } | |
| SubShader | |
| { | |
| Tags { "RenderType"="Opaque" } |
| /// Texture exporter for Unity | |
| /// | |
| /// IMPORTANT: Must be put into Editor folder to work | |
| /// | |
| /// Right click on a texture in assets window and select one of 'Export/' options | |
| /// - Use "RG Normal Map" to export normal maps as it will swap AG channels used by Unity shaders into typically used RG channels | |
| /// | |
| /// Original script by Eric5h5 | |
| /// Rewritten to C# and updated by Nothke | |
| /// |
| bl_info = { | |
| "name": "Run Script in PyConsole", | |
| "author": "CoDEmanX", | |
| "version": (1, 0), | |
| "blender": (2, 80, 0), | |
| "location": "Python Console > Console > Run Script", | |
| "description": "Execute the code of a textblock within the python console.", | |
| "warning": "", | |
| "wiki_url": "", | |
| "tracker_url": "", |
| bl_info = { | |
| "name": "Run Script in PyConsole", | |
| "author": "CoDEmanX", | |
| "version": (1, 0), | |
| "blender": (2, 80, 0), | |
| "location": "Python Console > Console > Run Script", | |
| "description": "Execute the code of a textblock within the python console.", | |
| "warning": "", | |
| "wiki_url": "", | |
| "tracker_url": "", |