US3S2L5——法线贴图的计算方式
US3S2L5——法线贴图的计算方式 回顾知识: 转置矩阵:将原始矩阵的行和列互换得到的新矩阵,假设矩阵为 MMM ,那 MMM 的转置矩阵一般写为 MTM^TMT 正交矩阵:一个方阵和它的转置矩阵相乘为单位矩阵,就是正交矩阵:MMT=MTM=IMM^T = M^TM = IMMT=MTM=I,正交矩阵的逆矩阵就是其转置矩阵 基础变换矩阵的构成规则: 一个能表示旋转缩放,平移的 4×44 \times 44×4 矩阵的基本构成规则为: [M11M12M13txM21M22M23tyM31M32M23tz0001]\begin{bmatrix} M_{11} & M_{12} & M_{13} & tx \\ M_{21} & M_{22} & M_{23} & ty \\ M_{31} & M_{32} & M_{23} & tz \\ 0 & 0 & 0 &...
US3S2L4——凹凸纹理基本概念
US3S2L4——凹凸纹理基本概念 纹理知识回顾 单张纹理是模型的“皮”,它决定了模型的颜色表现, 在建模时通过纹理隐射技术将顶点和纹理图片建立联系,在模型数据中记录顶点对应的UV坐标, 进行Shader开发时,利用UV坐标即可从纹理图片中取出对应位置的颜色给片元“上色” 凹凸纹理 纹理 除了可以用来进行 颜色映射 外,另外一种常见的应用就是进行 凹凸映射 凹凸映射的目的是使用一张纹理来修改模型表面的法线,让我们不需要增加顶点,而让模型看起来有凹凸效果。 原理:光照的计算都会利用法线参与计算,决定最终的颜色表现效果。 那么在 计算 “假” 凹凸面时,使用“真”凹凸面的法线 参与计算,呈现出来的效果可以以假乱真 左图是真实凹凸表面的光线,右图是不使用真凹凸表面的光线, 想要在非凹凸面上体现凹凸感,就需要通过法线改变光线方向,通过光照模拟出凹凸感 凹凸纹理最大的作用就是让模型可以...
US3S2L3——纹理结合光照模型
US3S2L3——纹理结合光照模型 单张纹理结合 BlinnPhong 光照模型 如果要让有纹理的模型受到光照影响,就需要让纹理颜色结合光照模型计算出来的颜色,计算出模型显示在屏幕上的最终颜色 体现在 Shader 计算中,有以下的三点注意点: 纹理颜色 需要和 漫反射颜色 进行乘法叠加,它们两共同影响最终的颜色,也就是需要计算反射颜色 123456789101112131415sampler2D _MainTex; // 贴图纹理对应的映射成员fixed4 _MainColor; // 漫反射颜色struct v2f{ float4 pos: SV_POSITION; //裁剪空间下的顶点坐标 float2 uv: TEXCOORD0; //纹理UV坐标 float3 wNormal: NORMAL; //世界空间下的法线 float3 wPos: TEXCOORD1; //世界空间下的顶点坐标};fixed4 frag (v2f i) :...
U4S5L22——其他工具类
U4S5L22——其他工具类 TMP其它工具类 在使用TMP进行开发时,除了我们经常会用到的 TMP_TextEventHandler 和 TMP_TextUtilities 类以外 TMP还提供了很多工具类,比如: TMP_Math:提供一些基础的数学计算 TMP_FontAssetUtilities:提供字体资源的操作和查询等方法 TMP_TextParsingUtilities:提供解析文本内容的工具 等等 这些内容我们虽然在日常开发时不经常使用,但是可以大概了解下 若遇到一些特殊需求时,可以选择使用其中提供的功能 更多API:Namespace TMPro | TextMeshPro | 4.0.0-pre.2 (unity3d.com)
U4S5L21——TMP_TextUtilities
U4S5L21——TMP_TextUtilities 本章代码关键字 12345TMP_TextUtilities.FindIntersectingLink() //传入点击相关参数,获取点击的超链接索引textMeshProUGUI.textInfo.linkInfo //文本的超链接数组textMeshProUGUI.textInfo.linkInfo[] //超链接数组索引器textMeshProUGUI.textInfo.linkInfo[].GetLinkText() //获取超链接显示文本textMeshProUGUI.textInfo.linkInfo[].GetLinkID() //获取超链接指向的链接 TMP_TextUtilities TMP_TextUtilities 是 TextMeshPro...
U4S5L20——TMP_TextEventHandler
U4S5L20——TMP_TextEventHandler 本章代码关键字 123456TMP_TextEventHandler //监听并响应TMP文本中的特定区域或标签的点击和鼠标悬停事件tmp_TextEventHandler.onLinkSelection //当用户悬停超链接时触发的事件tmp_TextEventHandler.onCharacterSelection //当用户悬停超链接时触发的事件tmp_TextEventHandler.onWordSelection //当用户悬停某个单词时触发的事件tmp_TextEventHandler.onLineSelection //当用户悬停某一行文本时触发的事件tmp_TextEventHandler.onSpriteSelection //当用户悬停某一精灵图片时触发的事件 TMP_TextEventHandler TMP_TextEventHandler 是 TextMeshPro...
U4S5L19——SDF 材质球和参数设置
U4S5L19——SDF 材质球和参数设置 SDF SDF 是 有符号距离场 (Signed Distance Field) 的缩写,其中: 有符号(Signed):指的是距离可以为正或负,表示一个点位于边界的内部(负值)还是外部(正值) 距离(Distance):表示每个像素点到字符边缘的距离 场(Field):指的是整个字体或图形周围的距离值的分布 它是一种用于高质量文本和图形渲染的技术,尤其适用于缩放或在低分辨率下保持边缘平滑的情况 它的本质就是在一个 Shader(着色器)中利用 SDF 相关算法规则来渲染文字 SDF 技术生成的字体纹理并不是普通的位图,而是基于每个像素到字体边缘的距离值。 这些距离值存储在纹理的灰度通道中,代表每个像素到字符边缘的距离信息。 然后在渲染时,着色器根据这些距离值动态计算字体的边缘,最终渲染出平滑的字符轮廓。 主要在 TMP 中用于生成和渲染文本,能让字体在任意大小或距离下保持清晰和锐利的效果 SDF 材质球指什么 我们创建的字体资源使用的材质球,本质上就是一个使用了 SDF 相关 Shader...
U4S5L18——TMP基本设置
U4S5L18——TMP基本设置 TMP 基本设置 在 Project Settings —— TextMesh Pro —— Settings 内可对 Text Mesh Pro 进行全局设置 Default Font Asset: 默认字体设置 当TMP控件使用非默认字体且显示缺少的字时,会尝试使用默认字体 Path:字体资源的存储位置 Fallback Font Assets:默认备用字体资源 Fallback Font Assets List:默认备用字体资源列表 Fallback Material Settings::备用材质设置 Match Material Presets: 匹配材质预设 启用后备用字体中的字形与主字体的样式匹配 让主字体和后备字体看起来类似 Dynamic Font System Setting:动态字体系统设置 Get Font Features at Runtime:运行时获取字体功能 Missing Character Unicode:当找不到字符时使用的替代字符 默认 0...
U4S5L17——精灵图片资源(图文混排)
U4S5L17——精灵图片资源(图文混排) 精灵图片资源 精灵图片资源是配合富文本标签使用的资源,它可以让我们在 TMP 文本中显示图片,达到图文混排的目的 我们只需要创建并配置好精灵图片资源,便可以利用 富文本标签 在文本中显示图片 精灵图片资源的创建 根据自己的需求建立一个图集纹理 图集的参数需要设置为: Texture Type 为 Sprite、Sprite Mode 为 Multiple 并且我们需要在 Sprite Editor 中将图集中的图片划分为单独的 Sprite(需要导入2D Sprite包) 准备好图集文件后 在Project窗口中选中图集后 —> 右键 —> Text Mesh Pro —> Sprite Asset 创建后,一般我们需要为每个图片进行以下的设置: 名字设置 位置宽度相关设置 最好边使用边配置,默认创建的位置很可能存在问题,需要调整 其中的参数和字体参数类似,关键参数: BX、BY:相对于基线的原点的左上角 AD:放置下一个内容时往右前进的位置 为了方便,可以通过最下方的全局偏移...
U4S5L16——颜色渐变预设
U4S5L16——颜色渐变预设 颜色渐变预设的作用 让文本对象重复使用相同的颜色渐变,避免每次对文本单独进行设置,提高开发效率 颜色渐变预设的创建和使用 创建: Project 窗口右键 —> TextMeshPro —> Color Gradient 创建好后,选中文件,在Inspector窗口即可开始编辑 颜色渐变预设配置文件的配置项和 TMP相关设置项 一致 使用: 在 TMP 文本中开启颜色渐变,拖入创建好的颜色渐变配置 注意:文本中颜色模式和配置文件中模式一致 显示效果: