- 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": "", |