白泽图

  • 文章
    • Unity渲染
    • Unity项目开发
    • 工具
    • 数学
    • 算法
    • 网站搭建
    • 网络&操作系统
Unity渲染
Unity渲染

在NGUI之间显示模型(SortingOrder、RenderQueue、ZTest应用)

项目中在开发角色面板或一些带有模型的活动面板的时候往往会需要将模型显示在界面的某些UI之间,常规做法是单开一台相机照模型渲到RenderTexture再赋值到UITexture上,然后使用NGUI组件的depth来控制显示先后顺序,但在某些的情况下,这种方式的处理反而会变得很复杂,很幸运我最近就遇到这样的情况 策划的需求如下:模型要显示在背景与背包之上,在名字板与一些介绍信息之下,而我们的有几个模型比如特殊,比如自带一个"屏风",而“屏风”是有半透效果的,(半透是要和背景颜色混合的)所以如果使用RendTextur…

2021-10-15 0条评论 1499点热度 0人点赞 蒋程 阅读全文
Unity渲染

模糊效果原理与实现

模糊效果是游戏项目开发中最简单也是最常见的效果之一,什么高斯模糊,运动模糊,镜头景深之类的效果通通都属于模糊的范畴,只是根据最终的显示不同,算法上略有区别而已,当然除了后期效果,模糊还有很多广泛的应用,比如优化实时阴影 模糊的原理 个人理解就是一句话,让像素失去它原本的细节信息 通俗的解释是一个像素原本的颜色乘以一个权重值,(范围在0,1之间),默认为1,无变化,乘完之后从周围的像素补齐剩余的权重,举个例子:自身像素颜色*权重值0.5,然后从左右各取一个像素颜色,分别乘以权重值0.25,最后把所有的颜色相加代替原本…

2021-09-13 0条评论 1957点热度 0人点赞 蒋程 阅读全文
Unity渲染

URP使用后期实现NGUI的卡牌溶解效果

前段时间在项目中实现了NGUI拼的卡牌溶解效果,需求比较简单,就是拖卡上阵的时候在变成模型前需要有个卡牌溶解的过渡效果(我们是一个3D卡牌MMO项目) 刚收到需求时也没有觉得很复杂,毕竟溶解效果实现原理就是一张溶解图discard的事,唯一麻烦的点就是用户操作的卡牌并不是一张Texture,而是NGUI用一堆UISprite拼出来的GameObject,当然如果扩展UIPanel,替换里面的所有 UIDrawCall材质,通用坐标换算相对溶解图的位置,再处理图像也不是不可以,不过实现起来相对麻烦一点,自从上次使用后…

2021-07-02 0条评论 1685点热度 0人点赞 蒋程 阅读全文
Unity渲染

使用后期做界面遮罩动画

游戏中的界面往往会添加一些动效来丰富玩家体验,前段时间我使用后期做了一个界面过渡的小功能,原理并不复杂,不过在刚接收需求的时候思路上也走了一些歪路,先看最终效果: 这个效果其实挺常见的,就是一个遮罩动画,相信大家分分钟就能把shader写出来,然而相我写完之后准备用到项目的时候,我发现了一个问题,我们的项目是使用NGUI做的(UGUI也有这个问题),游戏中的界面是由很多图片拼起来的,并不是一张图,而这个效果只能用于一张图片,此时我第一个想到的就是NGUI中UIPanel的SoftClip功能,众所周知,SoftCl…

2021-02-09 0条评论 1439点热度 1人点赞 蒋程 阅读全文
Unity渲染

URP后处理真机调试

前两天用后处理写了一个界面打开效果,结果在手机上显示黑屏,郁闷上的日志上并没有报错,在Unity中,可以方便的使用FrameDebug进行调试,如下图 可以使用Click+鼠标左键点开缩略图,查看对shader的赋值是否正确。 然而在手上,连接真机调试却是这样: 没有办法看到输入的纹理是否是正确的,所以第一想法就是把纹理输出的屏幕上,然后打真机进行调试,仔细观察FrameDebug的渲染顺序(如下图),发现UGUI.RenderOverlays在URP的最后渲染,也就是说我的截图操作在UGUI的RenderOver…

2021-02-03 0条评论 2116点热度 0人点赞 蒋程 阅读全文
Unity渲染

URP中修改相机RenderTarget

原来在BuildIn中修改RenderTarget很容易,它可以让我们用额外的相机照画面进行后处理再贴到指定的对象上,比如镜子,湖面,但是最近项目用了URP后渲染管线变了,问了同事后才知道需要单独接管额外相机的渲染,整理后代码如下: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Rendering; using UnityEngine.Rendering.Univers…

2021-01-26 2条评论 3574点热度 0人点赞 蒋程 阅读全文
Unity渲染

边缘检测

在后期处理中,如果要使画面中的轮廓更深一些,或者一些其他和轮廓相关的处理,我们需要首先找出代表轮廓的像素,这就需要进行边缘检测 1.边缘是如何形成的? 如果相邻像素之间存在差别的差别(如:颜色、亮度),那它们之间就会形成一条边界,这个边界就是图像的轮廓,我们可以用变量gradient(梯度),来表示像素之间的差异,那么gradient越大越有可能是边缘(当然如果可以保证gradient最大不会超过1,那么我们可以认为1-gradient,越小越有可能是边界),那么边缘检测其实就是求gradient的一个过程 2.如…

2021-01-19 0条评论 1475点热度 0人点赞 蒋程 阅读全文
Unity渲染

UnityShader 亮度、饱和度、对比度的实现

fixed4 col = tex2D(_MainTex, i.uv); 亮度 _Brightness //亮度直接叠加 fixed3 color = col.rgb*_Brightness; 饱和度 _Saturation //饱和度=最低灰度颜色与原图的差值 fixed3 gray = fixed3(0.2125, 0.7154, 0.0721); fixed minGray = dot(gray, col.rgb); fixed3 grayColor = fixed3(minGray, minGray…

2021-01-18 0条评论 1875点热度 0人点赞 蒋程 阅读全文
Unity渲染

UnityShader Outline (法线外扩法)

实现原理 1.先用一个Pass将原来的物体沿着该物体的顶点法线外移,使它变得比之前大 2.使用Outline的颜色填充整个物体,并且剔除正面的渲染,得到一个放大的背面 3.用第二个Pass正常渲染渲染,第二次正常渲染会挡住第一个渲染的背面,但是第一个Pass变大导致部分挡不住,则挡不住的那部分就变成了该物体的外描边 代码图如: //法线外扩实现法 Shader "Custom/Outline" { Properties { _MainTex("MainTex", 2D) = "white" {} _Outline(…

2021-01-16 0条评论 2609点热度 0人点赞 蒋程 阅读全文
Unity渲染

Unity内置矩阵

所有的矩阵类型都为float4x4,定义在UnityShaderVariables.cginc中 名称 说明 作用 UNITY_MATRIX_MVP 模型视图投影矩阵 通常用于把顶点从模型空间转换到裁剪空间 UNITY_MATRIX_MV 模型视图矩阵 通常用于把顶点从模型空间转换到视图空间 UNITY_MATRIX_T_MV UNITY_MATRIX_MV的转置矩阵 UNITY_MATRIX_IT_MV UNITY_MATRIX_MV的逆转置矩阵 通常用于把法线从模型空间转换到视图空间 UNITY_MATRIX_…

2021-01-16 0条评论 2004点热度 0人点赞 蒋程 阅读全文
123
分类
  • Unity渲染 / 26篇
  • Unity项目开发 / 41篇
  • 工具 / 20篇
  • 数学 / 2篇
  • 算法 / 1篇
  • 网站搭建 / 4篇
  • 网络&操作系统 / 5篇
最新 热点 随机
最新 热点 随机
在Unity中通过反射获取SerializedProperty的值 Unity Hierarchy与Scene窗口的操作限制 常用Gizmos图形封装 使用命令行调用unity案例模板(支持update) vscode安装chatgpt 判断TimelineAsset是否被修改
Unity强行编译接口 截获并阻止Unity运行 URP自定义后期实现方法 关于visual studio 2022默认不支持.net4.0以下版本的问题 关于mac下开发windows程序的方法 URP使用后期实现NGUI的卡牌溶解效果

COPYRIGHT © 2023 白泽图. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

登录
注册|忘记密码?