前言在制作游戏时,可以遇到要对字体添加的需求,unity 的UGUI自带的OutLine组件,效果不好,宽度过大会出现穿帮,顶点数量也会增加,性能不好,如果对于有几百字,顶点数量会很多,而且无法扩展功能 可以看出Outline创建了4个方向的文字 Unity5.2以前的版本要求,每一个Canvas下至多只能有2^16-1=65535个顶点(使用2个字节(16位)存储顶点索引),超过就会报错
前言和阴影,Unity本来是由自带的组件的(Outline和Shadow)。Unity自己的实现方式如下:Outline:把原文字/图片以往的网格复制4份,然后上下左右各偏移一点距离(相当于多绘制了4遍)。Shadow:把原文字/图片的网格复制1份,然后往某个方向偏移一点(相当于多绘制了1遍)。我觉得是挺蛋疼的,所以就突发奇想干脆用Shader来实现会不会好一点。 正文:由于本人水平
好马配好鞍,在平时做海报设计、产品设计等时,合适的字体能起到画龙点睛的作用,所以多学几种字体是很有必要的。本期教程我们来学习制作沙滩文字效果,下面我们就来演示这种充满趣味的文字制作过程。 工具/材料:电脑、Photoshopcc 2019、素材图片一张(沙滩素材一张)方法/步骤:1、打开准备好的沙滩素材软件,如下图所示。 2、选中“沙滩”图层,点击“文字”工具,设置沙滩文字
unity-shader模板测试,效果,常用于 rpg 项目中 主角 被遮挡的情况,将被遮挡的部分的轮廓绘制出来,这样可以在任何情况都能知道 主角 在哪里。(还有另外一种就是使用 X光 效果,但这种效果不需要用到模板测试,所以这里用 效果 举栗子)效果思路实现这种效果需要两个pass正常绘制,即深度测试 LEqual,正常遮挡,同时往 模板缓冲区 写入一个 参考值 Ref=1(即使深度
UGUI的基础元素TextText文本框 Rich Text 多文本 Line Spacing:行距 Align By Geometry:几何对齐 Wrap:自动对齐 Overflow:溢出 Raycasst Target :射线检测(如果UI元素不需要点击事件,一定不要勾选。因为UGUI的事件系统会遍历出所有带Raycast Target的组件)和阴影 可以设置它们的颜色已经的距离
周末了,最近北京总是莫名其妙的下雨,在家里呆着就不想动弹。最近一个星期一直在研究卡通材质,进而对如何边做了些尝试。第一种:在材质上,由美术组的同学在贴图上根据模型边缘直接绘制。优点:更具有艺术性以及可变性。缺点:工程量很大,人物角色无法,只对固定的场景及建筑可行。第二种:根据视角和法线来。dot(n,v)代码如下:Shader "Custom/dotSurfaceShader"
实现的效果 先绘制一个五形的mesh,然后在给边缘绘制一圈mesh。 对uv进行重新赋值,实现效果第一步 绘制mesh绘制多边形mesh,首先先绘制一个五形。mesh绘制要素:顶点,三角形,uv信息顶点信息就是勾勒三角形用的几个顶点。 按照五形来说的画, 五形是五个。 因为每个的顶点要做拉伸,所以以中心点为原点,向外扩展画三角形,方便后续操作。 顶点顺序可以按照下图顺序。绘制三角形
黑板擦的功能其实和画笔是一样的,只是黑板擦设置的颜色是画板最原始的颜色,而笔设置的是其他的颜色。所以最大的不同时,当手柄握住黑板擦时和握住笔时的函数实现是不一样的;实现这个功能之后,黑板擦的擦掉功能将在后续的篇章中和画笔一起完成;可以看到不管黑板擦以什么角度开始靠近画板,最终这个黑板擦一定是和画板平行的;先看看画板的坐标系: 再看看黑板擦的坐标系:也就是说不管黑板擦以何种旋转角度(Rot
基于Shader实现的UGUI解决方案找了一下outline的一些优化的实现方案,但是那个方案的两层text叠加或者是image叠在上面会出现颜色偏差问题。目前已找到对应的问题并进行了一些修复。归咎原因就是:color = (val * (1.0 - color.a)) + (color * color.a);这里计算color值时,没有考虑到color.a大于1的情况,加入这个color.a
效果一览外是许多游戏的画面需求,通常大体分为法线外扩和后处理边缘检测两种,法线外扩通常用于特殊需求,如外高亮关键物体,选中外高亮等,后处理边缘检测画面表现力更强一点,通常用于全屏的风格化,如卡通渲染,素描风格画面等(其实我也不清楚,凭感觉应该有这样的使用趋向区别),本篇文章主要讲解法线外扩外效果。 法线外扩外效果 基本原理一个shader两
文章目录一、前言二、2D效果1、导入一张png素材图片2、创建一个Unlit Graph3、使用Sample Texture 2D采样图片4、显示的思路5、使用Tilling And Offset节点控制UV,实现图片平移6、得到轮廓7、与原图相加8、最终显示三、升级版1、带颜色的2、加噪声3、再加点变化 一、前言我之前写了一篇文章:ShaderGraph使用教程与各
之前的文章中我们通过两种方式分别实现了效果,他们各有优缺点,也比较简单,今天我们来通过后期处理这种方式来实现效果,相对于之前两种实现方式要稍微复杂一点。后期处理最终效果图如下:实现大致思路:首先我们添加一个额外的摄像机用来专门渲染需要的对象,通过设置摄像机的LayerMask即可,然后将摄像机的Render Target设置为我们设定好的一张Render Texture上,设置如
该插件来自于Unity Asset Store 商店免费下载…请自行下载 偶的Unity版本是2019.4.12 ……^v ^下面开始介绍它的具体使用方法:1.首先在相机上添加该组件,参数暂且不动,后面自行调节 下面讲一下组件参数:Line ThickNess:边线条的厚度,也就是粗细Line Intensity:边线条的强度,也就是颜色的明暗程度Fill Amout:颜色填充,就是会在
前言1、前段时间工作,需要给模型,由于对Shader不熟悉,就直接网上找了Shader文件,无奈项目发布环境是WebGL,WebGL对Shader的需求比较特殊,故无法使用。2、因为项目需要的物体并不多,所以萌生出,动态生成整个模型所有的(线条),给各个附上需要的材质球即可。(当然,也可以直接请美术在模型上,但这样不能实现泛光之类的效果)3、现写下三种实现模型的方法,方便日
前言带均匀、可响应点击的雷达图。Graphic类 Unity 的原生 UI 系统 UGUI 提供了名为 Graphic 的基类用于实现各自 UI组件的。该类中有名为 OnPopulateMesh 的方法,只要向参数 VertexHelper 传递正确的顶点数组与下标数组,即可构造出我们期望的网格。网格的构建 雷达图可以视为一个正多边形各个顶点沿着径向缩放得到,因此我们只要遍历一遍
Unity自带的Outline 效率实在太差。 找了 基于Shader实现的UGUI解决方案效果还不错,overdraw和顶点数都不高。 不过方案有2个问题,自己尝试调整了一下, 代码放在这以供参考吧。(注:把ui存储prefab,运行时动态挂到一个canvas上, 这个canvas 如果 additionalShaderChannels 不会自动添加那几个, 主canva
转载 3月前
653阅读
在Shader中使用单独一个Pass渲染轮廓线是非常常见的做法,其原理是在该Pass的顶点着色器中将模型顶点加上沿法线方向的偏移是原本的模型扩大一圈并剔除正向面,从而实现轮廓线效果。 但是使用该方法有一个要求就是模型的法线必须连续,也就是模型必须光滑表面,如果是硬表面的模型,由于转折处法线不连贯,会导致沿法线扩大的轮廓线模型断裂,如下图: 原因是转折处法线不连贯: 解决方案有二,但思路是一样的,就
效果:绘制物体的外轮廓(不是所有的,只是最外围的),比如LOL中选中塔的效果:       这部分知识在ShaderLab开发实战详解有详细的说明,不过我做了修改,用另一种更简单的方法解决了在不写深度的情况下,被遮挡的问题。       原理:要画2遍,第一遍画稍
转载 6月前
133阅读
一、基于菲涅尔反射的物体        1.1 基于内边缘发光的方式                内边缘发光本身的局限性就不说了。  
模型1: LOL里面的模型效果,点击防御塔会有的效果,被攻击的时候模型也要凸显一下2: 网上可以找到模型的Shader,可以直接下载使用,一组第三方的Shader, 帮我们解决了模型的问题,叫Toony(第65)  Shader切换1.被攻击的时候模型凸显一下,不被攻击的时候就隐藏,变成正常模型的样子2.需要一个带模型的Shader和一个不带
  • 1
  • 2
  • 3
  • 4
  • 5