unity3d shader
文章平均质量分 68
aa20274270
这个作者很懒,什么都没留下…
展开
-
shader中ddx/ddy偏導數的原理和簡單應用
https://www.itread01.com/content/1548025400.html转载 2019-05-31 09:38:38 · 965 阅读 · 0 评论 -
Unity Shader Example 21 (Highlighting 边缘光)
主要参考Highlighting System 插件。效果:被Plane挡住:没有被plane挡住:HighlightableObjectSimple 组件,挂上这个组件的物体更换所有的材质,更换物体的layer。using UnityEngine;using System.Collections;us原创 2016-10-22 11:40:48 · 2400 阅读 · 0 评论 -
Unity Shader Example 20 (Soft particle)
Shader "Particles/Additive (Soft)" {Properties { _MainTex ("Particle Texture", 2D) = "white" {} _InvFade ("Soft Particles Factor", Range(0.01,3.0)) = 1.0}Category { Tags { "Queue"="Transparent"原创 2016-09-21 21:23:05 · 1662 阅读 · 0 评论 -
Unity Shader Example 19 (fog)
参考:http://tgerm.org/Fog/游戏里对雾的模拟就是根据物体距离摄像机的远近来混合雾和物体本身的颜色。u3d中内置的雾效的渲染有三种模式:Linear,Exponential,Exp2 ,三种模式使用不同的公式计算雾的影响因子:Linear:f=dmax−|z|dmax−dmin f=dmax−|z|dmax−dmindmax受雾影响的转载 2016-09-21 20:41:14 · 552 阅读 · 0 评论 -
在 Shader 中使用四元数
Shader 代码:vec4 quaternionMul(vec4 q, vec4 r){ vec3 qv = q.xyz; vec3 rv = r.xyz; return vec4( cross(qv, rv) + qv * r.w + q.w * rv, q.w * r.w - dot(qv, rv));}vec4 rotate(vec4 q, vec4 p){原创 2016-09-08 22:27:06 · 1993 阅读 · 0 评论 -
Water+
#ifndef WATERPLUS_CG_INCLUDED#define WATERPLUS_CG_INCLUDED #if !defined(WATERMAPS_ON) #undef BAKED_ANISOTROPY_DIR #endif #ifdef FLOWMAP_ANIMATION_ON #define FLOWMAP_ALL_ON #endif #defi原创 2016-09-14 00:19:24 · 669 阅读 · 0 评论 -
Unity Shader Example 18 (Fresnel)
Shader "Fresnel/Test" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} _Fresnel0 ("fresnel0", Float) = 0.1 _Color ("Rim Color", Color) = (1.0, 1.0, 1.0, 1.0) } SubShader { Pass原创 2016-09-18 17:41:28 · 692 阅读 · 0 评论 -
Unity Shader Example 17 (Skybox)
cs脚本,挂到Camera上using UnityEngine;using System.Collections;public class Test : MonoBehaviour { public Material skybox; // Will be called after all regular rendering is done //public void O原创 2016-08-09 18:07:19 · 935 阅读 · 0 评论 -
在Shader修改Depth Value
In the coordinate systems tutorial we said that perspective division is performed after the vertex shader has run, dividing the gl_Position's xyz coordinates by its w component. We also know from原创 2016-08-08 16:15:08 · 1482 阅读 · 0 评论 -
Unity Shader Example 24 (人物遮挡透明效果)
Shader "Occlusion" {Properties { _MainTex ("Base (RGB)", 2D) = "white" {} _Alpha ("Alpha", Range(0.0, 1.0)) = 0.25}SubShader { Tags { "Queue"="Transparent" "RenderType"="Opaque" } Pass { Z原创 2016-11-28 20:27:35 · 2622 阅读 · 0 评论 -
Unity Shader Example 22 (Simulate Projector)
主要参考:http://tgerm.org/U3D-Cg-03/下面的主要就是模拟Unity3D 中的Projector的效果。CustomMainCamera 挂上 Main.cs,projCamera属性就直接选择CustomProjectCamera gameobjectusing UnityEngine;using System.C原创 2016-11-22 14:43:37 · 652 阅读 · 0 评论 -
Unity Shader Example 23 (透明物体描边)
Shader "Custom/OutLine" {Properties { _Color ("Main Color", Color) = (.5,.5,.5,1) _OutlineColor ("Outline Color", Color) = (0,0,0,1) //_Outline ("Outline width", Range (0.0, 0.03)) = .005 _Out原创 2016-11-22 20:31:56 · 3275 阅读 · 0 评论 -
Unity Shader Example 29 (平面阴影)
using System.Collections;using System.Collections.Generic;using UnityEngine;public class Player : MonoBehaviour{ public static Player Instance = null; public Camera mCamera; public...原创 2019-01-03 11:36:19 · 337 阅读 · 0 评论 -
Unity3D 正确地把RT渲染到UI上
假设在RT上去渲染一个Pixel,RT的背景颜色是B,按顺序去写颜色,先写A1, 再写A2,那么最终的到的颜色Art = (A1 Blend (A2 Blend B))展开 :A2 Blend B = A2 * f2 + B * f2'A1 Blend (A2 Blend B) = A1 * f1 + (A2 * f2 + B * f2') * f1'得到 :Art = A1 * f1 + (A2...原创 2018-05-02 18:17:19 · 2789 阅读 · 0 评论 -
Unity Shader Example 28 (Reuse Depth Buffer)
两个相机,同一个位置,渲染不同层次的物体,也可以有深度关系的一种做法。1. 层次结构SceneCamera 只渲染 除特效层以外的 物体,(特效层 cameraEffect)EffectCamera 只渲染 特效层 的物体,2. SceneCamera 的设置:Culling Mask : 去除 特效层次,cameraEffect原创 2017-10-13 19:25:54 · 611 阅读 · 0 评论 -
Unity Shader Example 27 (Noise)
Shader "TestNoise"{ Properties { _DissolveDirectTex ("Dissolve Direct Texture", 2D) = "white" {} _NoiseWidth("Noise Width", Range(0, 2)) = 1 _NoisePow("Noise Pow", Range(0, 2)) = 1 _Percen原创 2017-10-11 12:58:02 · 685 阅读 · 0 评论 -
Unity Shader Example 26 (Texture2DArray)
Shader "Unlit/Test"{ Properties { _texArr ("Tex", 2DArray) = "" {} } SubShader { Pass { CGPROGRAM #pragma vertex vert #pra原创 2017-03-22 19:27:00 · 4804 阅读 · 1 评论 -
Shader ColorMask
ColorMask RGBA Specify whether red, green, blue, and alpha can or cannot be written into the frame buffer 参考:https://www.khronos.org/opengles/sdk/docs/man/xhtml/glColorMask.xml原创 2017-01-21 16:59:33 · 1527 阅读 · 0 评论 -
Unity Shader Example 25 (在ShaderLab Surface 添加顶点颜色与透明效果)
Shader "Test" {Properties { _MainTex ("Base (RGB)", 2D) = "white" {}}SubShader { Tags { "RenderType"="Opaque" } LOD 150 ZWrite On Blend SrcAlpha OneMinusSrcAlphaCGPROGRAM//#pragma surface原创 2016-12-19 17:10:07 · 666 阅读 · 0 评论 -
Shader Queue 和 Material m_CustomRenderQueue
有时候想改Shader的Queue,但是没有任何效果,原来,在Material文件中,保存了一个字段,m_CustomRenderQueue,这个m_CustomRenderQueue就是记录了这个material的渲染顺序,那么,在改Shader的 Queue的时候,要注意,Material文件中的m_CustomRenderQueue是否已经改变了,m_CustomRenderQueue记原创 2016-12-15 18:12:24 · 1759 阅读 · 0 评论 -
Unity Shader Example 4 (扭曲)
// 简单的扭曲效果Shader "CGwell FX/Distortion Bump" { Properties { _BumpAmt ("Distortion", range (0,128)) = 10 _BumpMap ("Normalmap", 2D) = "bump" {} } Category { // We must be transparent, so o转载 2016-06-14 21:12:44 · 2402 阅读 · 3 评论 -
Unity Shader Example 15 (Gerstner Wave)
Shader "Unlit/GerstnerWave"{ Properties { _MainTex ("Texture", 2D) = "black" {} // example 1(1个波的高度y) /* _GAmplitude ("Wave Amplitude", float) = 0.3 _GFrequency ("Wave Frequency", float)原创 2016-08-04 19:51:08 · 2003 阅读 · 0 评论 -
Unity Shader Example 16 (水面反射)
主要参考Standard Asset 的水的镜面反射的思路private static bool s_InsideWater = false; private RenderTexture m_ReflectionTexture; private Dictionary m_ReflectionCameras = new Dictionary(); // Camera -> Cam原创 2016-08-04 20:16:58 · 3579 阅读 · 1 评论 -
Unity Shader Example 3 (GrabPass捕捉屏幕纹理 )
转自:http://blog.sina.com.cn/s/blog_89d90b7c0102va4m.htmlShader "Custom/GrabTest" {Properties { //_MainTex ("Base (RGB)", 2D) = "white" {}}SubShader { // 在所有不透明对象之后绘制自己,更加靠近屏幕 Tags{"Queue"="转载 2016-06-14 19:12:46 · 1508 阅读 · 0 评论 -
Unity Shader Example 14 (平面切割图片 )
Shader "Test"{ Properties { _MainTex ("Texture", 2D) = "white" {} _PureColor ("Pure Color", Color) = (1,1,1,1) _Plan("Plan", Vector) = (1, 1, 1, 0) _MaxDist("Alpha Dist", float) = 0 //_D原创 2016-07-22 17:31:02 · 1844 阅读 · 0 评论 -
Unity Shader Example 13 (边缘 Bloom )
Bloom.csusing UnityEngine;using System.Collections;public class CameraBloom : MonoBehaviour { public Material bloomMaterial; public int blurIterations = 4; public float blurSpread =原创 2016-07-22 17:27:03 · 868 阅读 · 0 评论 -
Unity Shader Example 1 : Texture
Shader "Custom/Charactor" { Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Albedo (RGB)", 2D) = "white" {} } SubShader { pass { CGPROGRAM #pragma vertex vert原创 2015-10-16 10:44:47 · 435 阅读 · 0 评论 -
Unity Shader Example 2 (流光与模拟光照)
Shader "Example2"{ Properties { _MainTex ("Base (RGB)", 2D) = "white" {} _Color ("Color", Color) = (1, 1, 1, 1) _MatCap ("Mat (RGB)", 2D) = "white" {} _Stron原创 2016-05-27 00:43:33 · 1962 阅读 · 0 评论 -
Unity图片变灰的方式
NGUI中的Button几乎是最常用到的控件之一,并且可以组合各种组件(比如UIButtonColor,UIButtonOffset,UITweenxx),方便设置Button的各种状态下的属性,几乎可以满足我们的所有需求。但是对于当Button的isEnabled属性设置为false时,根据设置的disableColor属性设置不可点击时的颜色时,虽然我们设置的灰色,但并不是我们想象转载 2015-09-22 12:15:34 · 2284 阅读 · 0 评论 -
ShaderLab: Stencil
Stencil { Ref [_Stencil] Comp [_StencilComp] Pass [_StencilOp] ReadMask [_StencilReadMask] WriteMask [_StencilWriteMask] }具体的公式:(referenceValue & readMask) compa原创 2015-09-28 16:39:12 · 1036 阅读 · 0 评论 -
Unity3D 渲染路径
1. 比较Shade中的 LIghtMode 的 Vertex, ForwardBase, Deferred结论:在Camera选择Deferred渲染路径下,则会寻找LightMode为Defferred下的Pass,但是如果找不到LightMode为Defferred下的Pass,则会寻找LightMode为ForwardBase下的Pass,如果找不到LightMode为Forwar原创 2015-08-27 23:03:31 · 1470 阅读 · 0 评论 -
法线贴图
1. 个人理解法线贴图 在做动画的时候,面会变形,顶点关系改变了,即面的形状,方向改变了,如果面上存在一个固定的坐标系,那当物体变形,移动,旋转时,这个坐标系必定跟着面一起运动,那么在这个坐标系里的某个点或向量(比如我们把高模法线转换到这个坐标系里),不需要变动,当整个面发生变化时,我们只需要计算面上的坐标系到世界坐标系的转换矩阵,那么定义在这个面上的点或坐标(固定的),乘以这个矩阵即可得到原创 2016-06-14 19:52:58 · 701 阅读 · 0 评论 -
Unity Shader Example 5 (地形混合)
Shader "T4M-4-Textures" {Properties { _Splat0 ("Layer 1", 2D) = "white" {} _Splat1 ("Layer 2", 2D) = "white" {} _Splat2 ("Layer 3", 2D) = "white" {} _Splat3 ("Layer 4", 2D) = "white" {} _Control原创 2016-06-14 21:22:45 · 2387 阅读 · 0 评论 -
Unity Shader Example 6 (区域变色)
Shader "Test"{ Properties { _MainTex ("Texture", 2D) = "white" {} _RegionTex ("Region Texture", 2D) = "white" {} _RedRegionCol ("Region Red Color", Color) = (1,1,1,1) _GreenRegionCol ("Regi原创 2016-06-14 21:26:45 · 1639 阅读 · 0 评论 -
Unity Shader Example 11 (模板测试)
Box:Shader "Custom/Box" { SubShader { //"Queue"="Geometry-1" ,先渲 Tags { "RenderType"="Opaque" "Queue"="Geometry-1"} CGINCLUDE struct appdata { float4转载 2016-07-08 14:14:26 · 1337 阅读 · 0 评论 -
Unity Shader Example 10 (高斯模糊)
Shader:Shader "ImageEffect/Unlit/GaussianBlue" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} } CGINCLUDE #include "UnityCG.cginc" #pragma target 3.0 static const half curve原创 2016-07-07 23:00:18 · 852 阅读 · 0 评论 -
Unity Shader Example 9 (均值模糊)
Shader:Shader "ImageEffect/Unlit/BlurBox" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {}}SubShader { Pass { ZTest Always ZWrite Off CGPROGRAM #pragma vertex vert #pragma原创 2016-07-07 21:53:06 · 524 阅读 · 0 评论 -
Unity Shader Example 12 (Bloom 高光)
1. 主要参考了Glow Effect Mobile Friendly 插件的做法。代码,挂在Camera上的Grow.cs主要的思想就是:1. 循环n次,分别把A模糊给B,清空A,再给B模糊给A,进行n次。2. shaderCamera 是有作用的,主要就是为了让bloom只针对发光的人物,如果没有shaderCamera的存在,整个背景都会bloom起来。原创 2016-07-14 15:18:25 · 1317 阅读 · 0 评论 -
Unity Shader Example 8 (光照贴图)
Shader "LightMap"{ Properties { _Color ("Main Color", Color) = (1, 1, 1, 1) _MainTex ("Base (RGB)", 2D) = "white" {} _LightMap ("Lightmap (RGB)", 2D) = "white" {} }原创 2016-07-05 19:20:14 · 2185 阅读 · 0 评论 -
使用multi_compile编译Shader的多个版本
主要参考:http://www.66acg.com/?post=81一、新建一个Shader和一个Material Shader "Custom/Multi_Compile" { SubShader { Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #pragma mu转载 2016-07-14 15:52:12 · 4741 阅读 · 0 评论