我们都知道描边效果在游戏中很常见,比如选中某个角色时需要凸显该模型,就会采用描边效果,今天我们就来实现一下该效果。描边的效果实现方式有很多种,就以目前我知道的就有三种方式。一:模型扩张效果图:大致思路:需要两个pass,一个pass渲染背面并且沿着法线方向扩张,用来作为轮廓,一个pass渲染正面,正常渲染。核心:主要在第一个pass的顶点着色器中对顶点的偏移,偏移方向为法线方向。话不多说直接上代码
转载
2024-03-05 14:05:24
624阅读
Unity自带的Outline 效率实在太差。 找了 基于Shader实现的UGUI描边解决方案效果还不错,overdraw和顶点数都不高。 不过方案有2个问题,自己尝试调整了一下, 代码放在这以供参考吧。(注:把ui存储prefab,运行时动态挂到一个canvas上, 这个canvas 如果 additionalShaderChannels 不会自动添加那几个, 主canva
转载
2024-05-21 11:21:43
1421阅读
前言1、前段时间工作,需要给模型描边,由于对Shader不熟悉,就直接网上找了描边Shader文件,无奈项目发布环境是WebGL,WebGL对Shader的需求比较特殊,故无法使用。2、因为项目需要描边的物体并不多,所以萌生出,动态生成整个模型所有的边(线条),给各个边附上需要的材质球即可。(当然,也可以直接请美术在模型上描边,但这样不能实现泛光之类的效果)3、现写下三种实现模型描边的方法,方便日
转载
2024-02-12 07:56:43
452阅读
最近遇到了一个非常奇葩的需求:半透明文本,并且要有描边。这简直就是简直了,然后美术小姐姐还说了一句:不就是加个描边么?我们一众程序员竟然无言以对,我内心:大姐,这是Unity,不是PS啊0.0 没办法,做不出来只能开始研究。那么为什么透明物体的描边如此难实现呢,我来分析一下。一、Unity自带的描边 首先来看Unity自带的描边,把参数调大就会发现,只是在四个方向多显示了几份。透明物体肯定
转载
2024-02-21 11:54:45
1481阅读
简介最近接触到了部分与数学建模和图形学的知识,由于自己使用Unity非常久了,所以想尝试一下如何使用Unity+C#来实现所需要的功能。这一次的目的是为了实现图形分割方面较为基本的算法,用的也是较为简易的KMeans算法,同时也熟悉一下Unity中如何使用脚本对贴图进行更改。这也是第一次尝试写技术方向的东西,一些不完善的地方也希望能够指正。实现流程了解什么是kMeans,可以看wiki
UGUI的文本描边如果当前渲染的像素Alpha>0,那么这个像素肯定是文字本身的像素。 如果当前渲染的像素Alpha<=0,那么这个像素肯定不是文字本身的像素。当渲染像素 2 的时候,会采样到像素 1//如果想要描边效果更佳平滑的话,升采样的像素点可以扩大到12或者更高,但是会带来更高的性能消耗
static const half2 UpSamplePixelCoord[8] =
{
转载
2024-08-15 14:10:41
103阅读
在《Real Time Rendering, third edition》一书中,作者把轮廓线的实现方法分成5种类型基于观察角度和表面法线的轮廓线渲染过程式几何轮廓线渲染,使用两个Pass渲染基于图像处理的轮廓线渲染(屏幕后处理)基于轮廓边检测的轮廓线渲染混合了上述的几种渲染方法基于观察角度和表面法线的轮廓线渲染原理:法线和视线垂直的地方认为是边缘,这种方法和实现边缘光类似,可以参考这篇文章,Sh
在游戏中,我们都喜欢加一些描边效果,来凸显人物的边缘,提高识别度。美术一般都喜欢加。描边方式一般有两种,一种的模型边缘描边,一种的人物的转折点描边(这种需要用到卷轴)在游戏中比较常用的就是模型边缘描边了,shader一般是这样Shader "Outline"
{
//属性
Properties{
_Diffuse("Diffuse", Color) = (1,1,1,1)
_Outli
转载
2024-03-15 07:54:05
140阅读
游戏开发小结——如何在Unity中创建有边界的2D地图在Unity中创建一个2D游戏的有边界地图,并使其连接边缘。这是一种轻量级且简单的解决方案,适用于皇室战争和其他类型的游戏。在创建地图时,我们希望将玩家限制在边界内。但是,让世界实际上在自身上包裹也很好:这可以为游戏机制提供有趣的元素,同时也给玩家一种增加自由度的印象。 在本文中,我们将向您展示如何为2D游戏实现这种行为的简单方法。 在N乘以M
转载
2024-03-07 13:14:10
147阅读
using UnityEngine;using System.Collections.Generic;using UnityEngine.UI;namespace Effects{ [RequireComponent(typeof(T
原创
2022-11-01 10:44:51
773阅读
效果一览外描边是许多游戏的画面需求,通常大体分为法线外扩和后处理边缘检测两种,法线外扩通常用于特殊需求,如外描边高亮关键物体,选中外描边高亮等,后处理边缘检测画面表现力更强一点,通常用于全屏的风格化描边,如卡通渲染,素描风格画面等(其实我也不清楚,凭感觉应该有这样的使用趋向区别),本篇文章主要讲解法线外扩外描边效果。 法线外扩外描边效果 基本原理一个shader两
转载
2024-04-29 20:21:42
441阅读
周末了,最近北京总是莫名其妙的下雨,在家里呆着就不想动弹。最近一个星期一直在研究卡通材质,进而对如何描边做了些尝试。第一种:在材质上描边,由美术组的同学在贴图上根据模型边缘直接绘制描边。优点:更具有艺术性以及可变性。缺点:工程量很大,人物角色无法描边,只对固定的场景及建筑可行。第二种:根据视角和法线来描边。dot(n,v)代码如下:Shader "Custom/dotSurfaceShader"
转载
2024-04-06 20:35:09
226阅读
文章目录一、前言二、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阅读
UGUI的基础元素TextText文本框 Rich Text 多文本 Line Spacing:行距 Align By Geometry:几何对齐 Wrap:自动对齐 Overflow:溢出 Raycasst Target :射线检测(如果UI元素不需要点击事件,一定不要勾选。因为UGUI的事件系统会遍历出所有带Raycast Target的组件)描边和阴影 可以设置它们的颜色已经描边的距离描边的
转载
2024-07-29 08:55:09
410阅读
# Android Text描边
在Android开发中,我们经常需要对文本进行样式设置,例如改变字体颜色、加粗、设置字体大小等等。而其中一种比较特殊的效果就是文本描边(Text Stroke)效果,它可以给文本添加一个边框,使得文本看起来更加突出和醒目。本文将介绍在Android中实现文本描边效果的方法,并提供相应的代码示例。
## 什么是文本描边?
文本描边即为给文本添加一个边框,使得文
原创
2023-10-05 03:57:03
806阅读
在Shader中使用单独一个Pass渲染轮廓线是非常常见的做法,其原理是在该Pass的顶点着色器中将模型顶点加上沿法线方向的偏移是原本的模型扩大一圈并剔除正向面,从而实现轮廓线效果。 但是使用该方法有一个要求就是模型的法线必须连续,也就是模型必须光滑表面,如果是硬表面的模型,由于转折处法线不连贯,会导致沿法线扩大的轮廓线模型断裂,如下图: 原因是转折处法线不连贯: 解决方案有二,但思路是一样的,就
转载
2024-08-24 11:34:50
205阅读
效果:绘制物体的外轮廓(不是描所有的边,只是描最外围的边),比如LOL中选中塔的效果: 这部分知识在ShaderLab开发实战详解有详细的说明,不过我做了修改,用另一种更简单的方法解决了在不写深度的情况下,描边被遮挡的问题。 描边原理:要画2遍,第一遍画稍
转载
2024-02-29 16:46:32
445阅读
前言在制作游戏时,可以遇到要对字体添加描边的需求,unity 的UGUI自带的OutLine组件,描边效果不好,宽度过大会出现穿帮,顶点数量也会增加,性能不好,如果对于有几百字,顶点数量会很多,而且无法扩展功能 可以看出Outline创建了4个方向的文字 Unity5.2以前的版本要求,每一个Canvas下至多只能有2^16-1=65535个顶点(使用2个字节(16位)存储顶点索引),超过就会报错
转载
2024-07-12 13:48:46
0阅读
前言带均匀描边、可响应点击的雷达图。Graphic类 Unity 的原生 UI 系统 UGUI 提供了名为 Graphic 的基类用于实现各自 UI组件的。该类中有名为 OnPopulateMesh 的方法,只要向参数 VertexHelper 传递正确的顶点数组与下标数组,即可构造出我们期望的网格。网格的构建 雷达图可以视为一个正多边形各个顶点沿着径向缩放得到,因此我们只要遍历一遍
转载
2024-05-05 07:50:41
76阅读
该插件来自于Unity Asset Store 商店免费下载…请自行下载 偶的Unity版本是2019.4.12 ……^v ^下面开始介绍它的具体使用方法:1.首先在相机上添加该组件,参数暂且不动,后面自行调节 下面讲一下组件参数:Line ThickNess:描边线条的厚度,也就是粗细Line Intensity:描边线条的强度,也就是颜色的明暗程度Fill Amout:颜色填充,就是会在描边内
转载
2024-02-27 14:50:14
492阅读