01 2023 档案
摘要:效果 要点 1) 我们看到的物体颜色是没被物体吸收,反射出来的颜色。这个就是漫反射。 2) 漫反射相关定理和公式: a) 兰伯特定律:漫反射反射光线的强度与表面法线和光线方向夹角的cos值成正比。 b) Colorlight * Colordiffuse * 漫反射光线辐照度。光线辐照度就是光线强度
阅读全文
摘要:用到的shader Shader "My/EdgeFade" { Properties { _EdgeFade("EdgeFade", Range(0, 1)) = 0.8 } SubShader { Tags { "Queue" = "Overlay" "IgnoreProjector" = "T
阅读全文
摘要:遇到的问题 Camera直接输出画面时,混合效果和混合公式对不上 New Scene中相关的信息:底图Quad_Bg是蓝色(0, 0, 1, 1),混合图Quad_Src是红色(1, 0, 0, 0.5),混合模式为Blend DstColor Zero, One Zero(该混合方式最终颜色的计算
阅读全文
摘要:简单点就是将要调试的值输出为颜色 1) 比如:调试顶点值时,将顶点值输出为颜色 Shader "My/VertexDebug" { Properties { _MainTex ("Texture", 2D) = "white" {} } SubShader { Tags { "RenderType"
阅读全文
摘要:效果图 1) FillCamera.shader和材质FillCamera.mat,将材质贴图设置为bg 2) 场景中创建一个Quad(Plane不行),材质设置为FillCamera.mat FillCamera.shader Shader "My/FillCamera" { Properties
阅读全文
摘要:效果 使用的图集 测试shader 注意:如果Sprite带有透明度,注意使用Blend,否则透明部分将显示为黑色 Shader "My/SpriteToMatTex" { Properties { _MainTex ("Texture", 2D) = "white" {} } SubShader
阅读全文
摘要:public static Vector4[] GetProjectionCorners(RectTransform rectTransform, Camera uiCamera) { var worldCorners = new Vector3[4]; // lt lb rb rt rectTra
阅读全文
摘要:裁剪区域计算涉及的几种情况 1) 只有一个RectMask2D时,裁剪区域就是RectMask2D所在的区域 2) RectMask2D嵌套RectMask2D时: a) RectMask2D(红色)的祖先节点中没有RectMask2D了,所以裁剪区域就是自己所在的矩形区域。 b) RectMask
阅读全文
摘要:Mask使用stencil来实现裁剪 要用Stencil方式来实现裁剪,主要涉及到2个步骤: 1) 裁剪区域设置stencil buffer: Mask在自己的GetModifiedMaterial函数中设置。 2) 被裁减物体将自己的stencil id与stencil buffer比较,如果相同
阅读全文
摘要:stencil在逐片元操作部分中的位置 模板测试流程 这边给unlit(不受光) shader加上stencil功能 Unlit_Stencil.shader,其中stencil相关的用// 包起来了 Shader "My/Unlit_Stencil" { Properties { _MainTex
阅读全文
摘要:特效shader添加裁剪区域 使用裁剪区域进行裁剪, 粒子的shader得支持裁剪区域,需要在vert函数中加上下面的代码: #ifdef UNITY_UI_CLIP_RECT c.a *= UnityGet2DClipping(i.worldPosition.xy, _ClipRect); //x
阅读全文
摘要:内置shader,如果我们需要增加一些特性,则需要自己copy一份出来,修改后使用我们自己的 // Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt) S
阅读全文
摘要:Renderer上的材质获取时会new一个副本,比如胶囊体(Capsule)的Renderer 我们不改变Material的属性,仅仅get下就会new一个副本出来 var mat = GetComponent<Renderer>().material; ugui上的材质获取时不会new副本,而是直
阅读全文
摘要:顶点法线:垂直于顶点所在三角网格平面的向量 顶点切线:平行于顶点所在三角网格平面的向量 效果图 注意:这个shader在intel集成显卡上貌似显示不出来,在nVidia的显卡上可以显示出来 Shader "Unlit/showNormalTagent" { Properties { _LineLe
阅读全文
摘要:测试代码 public class CollisionTest : MonoBehaviour { void Update() { if (Input.GetMouseButtonDown(0)) { if (Physics.SphereCast(Vector3.zero, 0.5f, Vector
阅读全文
摘要:# var timelineAsset = director.playableAsset as TimelineAsset; foreach (PlayableBinding pb in timelineAsset.outputs) { //pb.streamName--轨道名称 //pb.sour
阅读全文
摘要:属性 var props = typeof(RectTransform).GetProperties(); foreach (var prop in props) { Debug.Log($"{prop.Name}({prop.PropertyType.Name}): {prop.Module},
阅读全文

浙公网安备 33010602011771号