摘要:
左侧为没用法线贴图,就视觉上没有凹凸感 要点 漫反射和高光反射的计算公式中,都有法线的参与,所以只要我们提供一个自定义的法线,就能生成各种自定义的反射效果。 法线贴图的作用就是代替顶点法线,提供了自定义法线,使得反射效果看着有凹凸感。 贴图漫反射(MainTex)+高光反射+法线贴图 Shader 阅读全文
摘要:
效果 要点 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比较,如果相同 阅读全文