
UnityShader
ALey_Z
lalala
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
UnityShader应用——卡通渲染
1.描边外描边之前记过。内描边的实现:ILM的a通道控制内描边的范围。也就是黑色区域对应uv上的地方进行需要内描边。在最后与光照模型算出的颜色相乘就行。2.光照模型diffuse部分:ILM的g通道控制漫反射阴影的阈值。shadowRange = g值 * 顶点颜色(平时没有的数据) 共同决定受光范围。也就是说黑色的区域,是不想受到阴影的。diffuse = max( 0 ...原创 2020-03-12 14:47:00 · 974 阅读 · 0 评论 -
UnityShader应用——双摄像机分别渲染彩色主角和黑白环境
实现黑白画面中只有主角是彩色的画面。1.创建两个Camera分别渲染环境和角色增加一个LayerMask,命名为Color层。然后设置两个Camera的属性。EnvCam的渲染层取消勾选Color层和UI层。RoleCam的ClearFlags设置成只清理深度缓存, 渲染层只选UI和Color层。2.EnvCam添加黑白灰度后处理先写一个Shader: (获得摄像机画面C...原创 2019-03-23 14:22:20 · 2473 阅读 · 1 评论 -
UnityShader应用——使用深度值实现Fog雾效
1.开启深度GetComponent<Camera>().depthTextureMode = DepthTextureMode.Depth; //开启摄像机深度mode2._CameraDepthTexture存储深度信息的Tex,需要在Shader中声明;sampler2D _CameraDepthTexture;3.ZBuffer (只有ShaderTag是...原创 2019-01-21 19:45:56 · 3887 阅读 · 0 评论 -
UnityShader应用——外发光实现
学习了一下实现物体外发光的Shader。实现外发光的Pass //pass2 生成模型外部的光晕 Pass { Name "OutLight" Tags {"LightMode" = "Always"} Cull Front //不正面剔除会出错 Blend SrcAlpha One CGPROGRAM #pragma vertex ve..原创 2018-12-25 17:15:45 · 11214 阅读 · 9 评论 -
UnityShader——渲染队列,ZTest,ZWrite,Early-Z
转载: https://blog.youkuaiyun.com/puppet_master/article/details/53900568简介在渲染阶段,引擎所做的工作是把所有场景中的对象按照一定的策略(顺序)进行渲染。最早的是画家算法,顾名思义,就是像画家画画一样,先画后面的物体,如果前面还有物体,那么就用前面的物体把物体覆盖掉,不过这种方式由于排序是针对物体来排序的,而物体之间也可能有重叠,所以效...转载 2018-12-28 17:43:55 · 474 阅读 · 0 评论 -
UnityShader应用——边缘内发光
在学完了Phong光照模型之后,边缘光就可以在它基础上添加几行代码完成;Shader:Shader "Unlit/RimLight"{ Properties{ _SpecularGlass("SpecularGlassStrength", Range(0,64)) = 32 _ObjColor("ObjColor", color) = (1,1,1,1) _RimColor(..原创 2018-11-16 16:24:37 · 1963 阅读 · 0 评论 -
UnityShader——Phong光照模型 = Diffuse + Specular + Ambient
一.图形学颜色叠加乘法(各分量相乘) light(1, 1, 1) * stuff(0.2f, 0.3f, 0.5f) = (0.2f, 0.3f, 0.5f)二.经验模型PhongPhong = Ambient + Diffuse +Specular1.Diffuse漫反射Diffuse = dot ( -lightDir , N) * lightColor这里点乘: d...原创 2018-11-15 17:58:29 · 1418 阅读 · 0 评论 -
UnityShader应用——水波效果
最近学了顶点片元Shader基本语法之后,决定拿一个Shader来分析一下,初学Shader,在此记录一下!这个Shader效果都是在frag里进行;(不是说好了frag里计算量大要避免吗!!) sampler2D _MainTex; float _WaveStrength; float _WaveFactor; float _TimeScale; fix...原创 2018-09-04 17:22:24 · 4288 阅读 · 0 评论 -
UnityShader应用——序列图动画
1.序列图动画ShaderShader "Study/UVAnim"{Properties{ _MainTex ("Texture", 2D) = "white" {}原创 2018-08-28 15:15:20 · 1022 阅读 · 0 评论 -
UnityShader——使用ReplacementShader
1.摄像机脚本 用摄像机的SetReplacementShader(Shader,Tag)进行shader替换; 当摄像机看到的Shader的Tags和当前要替换的ReplaceShader的指定Tags一致,就会进行替换;2.使用深度的Shader代码Shader "Study/DepthColorShader"{SubShader{ Tags{"...原创 2018-08-28 14:49:43 · 994 阅读 · 0 评论 -
Unity中更换游戏对象Shader以及Shader属性
using UnityEngine;public class changeColor : MonoBehaviour {public GameObject obj;private Renderer renderer;void Start () {renderer = obj.GetComponent<Renderer>();}public void onClick()...原创 2018-06-07 18:35:50 · 4185 阅读 · 0 评论