周末了,最近北京总是莫名其妙的下雨,在家里呆着就不想动弹。最近一个星期一直在研究卡通材质,进而对如何边做了些尝试。第一种:在材质上,由美术组的同学在贴图上根据模型边缘直接绘制。优点:更具有艺术性以及可变性。缺点:工程量很大,人物角色无法,只对固定的场景及建筑可行。第二种:根据视角和法线来。dot(n,v)代码如下:Shader "Custom/dotSurfaceShader"
转载 2024-04-06 20:35:09
222阅读
效果一览外是许多游戏的画面需求,通常大体分为法线外扩和后处理边缘检测两种,法线外扩通常用于特殊需求,如外高亮关键物体,选中外高亮等,后处理边缘检测画面表现力更强一点,通常用于全屏的风格化,如卡通渲染,素描风格画面等(其实我也不清楚,凭感觉应该有这样的使用趋向区别),本篇文章主要讲解法线外扩外效果。 法线外扩外效果 基本原理一个shader两
文章目录一、前言二、2D效果1、导入一张png素材图片2、创建一个Unlit Graph3、使用Sample Texture 2D采样图片4、显示的思路5、使用Tilling And Offset节点控制UV,实现图片平移6、得到轮廓7、与原图相加8、最终显示三、升级版1、带颜色的2、加噪声3、再加点变化 一、前言我之前写了一篇文章:ShaderGraph使用教程与各
转载 2024-03-17 09:50:47
792阅读
前言带均匀、可响应点击的雷达图。Graphic类 Unity 的原生 UI 系统 UGUI 提供了名为 Graphic 的基类用于实现各自 UI组件的。该类中有名为 OnPopulateMesh 的方法,只要向参数 VertexHelper 传递正确的顶点数组与下标数组,即可构造出我们期望的网格。网格的构建 雷达图可以视为一个正多边形各个顶点沿着径向缩放得到,因此我们只要遍历一遍
该插件来自于Unity Asset Store 商店免费下载…请自行下载 偶的Unity版本是2019.4.12 ……^v ^下面开始介绍它的具体使用方法:1.首先在相机上添加该组件,参数暂且不动,后面自行调节 下面讲一下组件参数:Line ThickNess:边线条的厚度,也就是粗细Line Intensity:边线条的强度,也就是颜色的明暗程度Fill Amout:颜色填充,就是会在
转载 2024-02-27 14:50:14
492阅读
之前的文章中我们通过两种方式分别实现了效果,他们各有优缺点,也比较简单,今天我们来通过后期处理这种方式来实现效果,相对于之前两种实现方式要稍微复杂一点。后期处理的最终效果图如下:实现大致思路:首先我们添加一个额外的摄像机用来专门渲染需要的对象,通过设置摄像机的LayerMask即可,然后将摄像机的Render Target设置为我们设定好的一张Render Texture上,设置如
转载 2024-03-18 08:54:41
1798阅读
前言1、前段时间工作,需要给模型,由于对Shader不熟悉,就直接网上找了Shader文件,无奈项目发布环境是WebGL,WebGL对Shader的需求比较特殊,故无法使用。2、因为项目需要的物体并不多,所以萌生出,动态生成整个模型所有的(线条),给各个附上需要的材质球即可。(当然,也可以直接请美术在模型上,但这样不能实现泛光之类的效果)3、现写下三种实现模型的方法,方便日
转载 2024-02-12 07:56:43
447阅读
Unity自带的Outline 效率实在太差。 找了 基于Shader实现的UGUI解决方案效果还不错,overdraw和顶点数都不高。 不过方案有2个问题,自己尝试调整了一下, 代码放在这以供参考吧。(注:把ui存储prefab,运行时动态挂到一个canvas上, 这个canvas 如果 additionalShaderChannels 不会自动添加那几个, 主canva
转载 2024-05-21 11:21:43
1421阅读
在Shader中使用单独一个Pass渲染轮廓线是非常常见的做法,其原理是在该Pass的顶点着色器中将模型顶点加上沿法线方向的偏移是原本的模型扩大一圈并剔除正向面,从而实现轮廓线效果。 但是使用该方法有一个要求就是模型的法线必须连续,也就是模型必须光滑表面,如果是硬表面的模型,由于转折处法线不连贯,会导致沿法线扩大的轮廓线模型断裂,如下图: 原因是转折处法线不连贯: 解决方案有二,但思路是一样的,就
前言在制作游戏时,可以遇到要对字体添加的需求,unity 的UGUI自带的OutLine组件,效果不好,宽度过大会出现穿帮,顶点数量也会增加,性能不好,如果对于有几百字,顶点数量会很多,而且无法扩展功能 可以看出Outline创建了4个方向的文字 Unity5.2以前的版本要求,每一个Canvas下至多只能有2^16-1=65535个顶点(使用2个字节(16位)存储顶点索引),超过就会报错
效果:绘制物体的外轮廓(不是所有的,只是最外围的),比如LOL中选中塔的效果:       这部分知识在ShaderLab开发实战详解有详细的说明,不过我做了修改,用另一种更简单的方法解决了在不写深度的情况下,被遮挡的问题。       原理:要画2遍,第一遍画稍
转载 2024-02-29 16:46:32
445阅读
前言在本文中使用的是基于空间的3D模型的,着手于1条的2个邻接面,即退化四形进行边缘检测和绘制。本文读者默认为有图形学基础和编写Shader基础,若没有请先去把这些基础学习一下,再来阅读本文,否则可能会有阅读障碍。一、边缘检测算法3D模型有两种方式,一种是基于图像,即在所有3D模型渲染完成一张图片后,对这张图片进行边缘检测,最后得出效果。一种是基于空间,即针对3D模型的三角面三个顶
  最近遇到了一个非常奇葩的需求:半透明文本,并且要有。这简直就是简直了,然后美术小姐姐还说了一句:不就是加个么?我们一众程序员竟然无言以对,我内心:大姐,这是Unity,不是PS啊0.0  没办法,做不出来只能开始研究。那么为什么透明物体的如此难实现呢,我来分析一下。一、Unity自带的  首先来看Unity自带的,把参数调大就会发现,只是在四个方向多显示了几份。透明物体肯定
转载 2024-02-21 11:54:45
1481阅读
模型1: LOL里面的模型效果,点击防御塔会有的效果,被攻击的时候模型也要凸显一下2: 网上可以找到模型的Shader,可以直接下载使用,一组第三方的Shader, 帮我们解决了模型的问题,叫Toony(第65)  Shader切换1.被攻击的时候模型凸显一下,不被攻击的时候就隐藏,变成正常模型的样子2.需要一个带模型的Shader和一个不带
转载 2024-03-26 14:42:30
129阅读
  效果是游戏里面非常常用的一种效果,一般是为了凸显游戏中的某个对象,会给对象增加一个效果。本篇文章要和大家讲的是Unity 2D的游戏项目中的实现方法,下面是具体的实现过程。    需求介绍:   我们的项目是一款2D骨骼动画角色的战棋类回合制游戏,场景如下:   每回合开始,回合方在战场上的角色,分别有可移动、可攻击或者可移动并且可攻击3种状态,为了让玩家一目了然场上角
转载 2024-05-10 17:01:16
187阅读
参考文章:方法一:对指定Layer层(Outline层)的物体进行处理原理:使用一个只渲染Outline层的摄像机进行渲染,将渲染结果存入临时渲染纹理rt,再利用Graphics.Blit(rt, destination, targetMat, 0); 函数使用targetMat材质的shader的第一个Pass进行渲染,即对Outline层的物体进行边缘检测,然后将被认定为边缘的屏幕像素点替
转载 2024-05-07 08:16:04
1420阅读
一、基于菲涅尔反射的物体        1.1 基于内边缘发光的方式                内边缘发光本身的局限性就不说了。  
文章目录前言地址介绍使用例子完结 前言关于3D,其实之前有用shader弄过一个:【实现100个unity特效】shader实现3D物品闪光和效果但是很遗憾的是他不支持URP项目,所以现在推荐这款插件,他能很好的支持URP,对于HDRP我没有试过,官方也没有说明,需要的可以去试试看地址https://assetstore.unity.com/packages/tools/particle
unity】网格方法介绍对模型四网格的三种方法:包括纯Shader方法、创建网格方法和后处理方法。于增强场景中3D模型的轮廓,使其在视觉上更加突出和清晰。这种效果可以用于增强三维场景中的物体、角色或环境,使其在视觉上更加吸引人。Shader方法使用GeometryShader方法对三角网进行计算,目的是保留距离最短的两条。在进行计算时,首先需要建立一个float2 dist来储存点的
转载 2024-07-08 17:55:08
206阅读
说道卡通渲染,应该都会想到: 我所学的有三种: 一种是计算边缘深度检测 一种是色差检测 一种是利用顶点法线向外扩展返回单色pass,使用正面裁剪 我用的第三种:pass { //剔除前面 (朝向摄像机的面)保留内部渲染 Cull Front CGPROGRAM #pragma fragment frag float4 _LineColor; float _
  • 1
  • 2
  • 3
  • 4
  • 5