最近要写新手引导,记录一下蒙黑(层级最上,蒙住整个UI,有镂空裁剪)镂空区域btn(是一个button 动态改变位置) 引导UI(做新手引导的UI) 活动UI(主动弹出的活动UI 层级位于引导UI上)当然还有引导的小姐姐头像对话框以及镂空区域有特效提示之前做法:蒙黑背景计算镂空区域,蒙黑镂空区域有一个btn,btn的点击可以渗透下去        &nbsp
在现实生活中,如果一个物体是透明的,意味着我们不仅可以透过它看到其他物体的样子,也可以看到它内部的结构。但在前面实现的透明效果中,无论是透明度测试还是透明度混合,我们都无法观察到正方体内部及其背面的形状,导致物体看起来就好像只有半个一样。这是因为,默认情况下渲染引擎剔除了物体背面(相对于摄像机的方向)的渲染图元,而只渲染了物体的正面。如果我们想要得到双面渲染的效果,可以使用Cull指令来控制需要剔
转载 2024-06-13 17:10:41
208阅读
Unity2D游戏】实现实时的正确的遮挡关系(引擎自带功能) Unity的渲染层级(layer),决定了2D游戏的渲染顺序,值越大的层级越后渲染,因渲染层级大的物体会覆盖渲染层级小的物体。在Sprite Renderer中,分为Sorting Layer和Order in Layer,通过这两个属性可以设置物体的渲染层级。然而在2D游戏中,常常会有角色一会儿跑到物体前,一会儿跑到物体后面的
效果图如下:新建shader,代码如下:Shader "Unlit/ConeScan" { Properties { _MainTex ("Texture", 2D) = "white" {} _Color("Color",Color)=(1,1,1,1)//颜色 _StrongFloat("_StrongFloat",float)=0.1//增强圆形边缘效
转载 9月前
89阅读
这一章要点内容比较多。透明度测试与透明度混合透明度测试它采用一种“霸道极端”的机制,只要一个片元的透明度不满足条件(通常是小于某个阈值),那么它对应的片元就会被舍弃,不做任何处理。否则就会按照普通不透明的物体的处理方式来处理它。它产生的效果是极端的,某个片元要么完全透明(看不见),要么完全不透明。透明度混合这种方法可以得到真正的半透明效果。他会使用当前片元的透明度作为混合因子,与已经存储在颜色缓冲
转载 2024-08-17 09:36:43
107阅读
最近开始转TA,刚开始学习,资料比较杂乱,其中遇到的问题和一些计算方式,记录一下,后续会一直完善补充。1.urp中基础不受光shaderShader "Example/URPUnlitShaderColor" { Properties { [MainColor] _BaseColor("Base Color", Color) = (1, 1, 1, 1)
目录:Unity Shader - 知识点目录(先占位,后续持续更新) EmissionEmission控制从表面发出的光的颜色和强度。当你在场景中使用Emission材质时,它以可见光源的形式出现。自发光。Emission材质通常是用在GameObjects需要从内部亮了起来,如监视器上的屏幕,如汽车在夜间行驶时闪亮的仪表盘,或是再漆黑地方闪亮着怪物的眼睛。您可以使用颜色和自发光程度来调整Emi
    这个效果在很多LOGO及广告宣传中都会用到。商业开发的做法应该是拿一张闪光的图,对其做uv移动,然后和原图两张图混合,这样运算会小很多,需要储存的变量也会小很多。本讲不用图而完全通过计算得出闪光区域,主要是借此加深uv计算实现特殊效果的实现,以及计算uv的方法。代码注释配合图解已经比较详细了,跟着做就行,随便找一张半透明的图来做底图即可。 1. Sh
原理:将遮罩信息存在遮罩纹理的某一个颜色通道(RGBA)中,在Shader中将其读出,并将其合并到要遮挡的地方(也就是乘法*),因为颜色通道的值是(0,1),采集到的0的部分就会被遮挡,1的地方就会显示出来,介于两者之间的就显示出一种渐变的状态Shader "ShaderPath/MaskShader"//shader的选择路径 { Properties//该Shader可控的属性 { _
Unity2D碰撞效应 Area Effector 2D地区效应: 适用于特定区域内的定向力度 Use Collider Mask 使用碰撞遮罩。 Collider Mask 碰撞遮罩。 Use Global Angle 使用全球角度。 Force Angle 力角度应用。 Force Magnitude 应用力的大小。 Force Variation 力的大小的变化。 Drag 线性阻力。 An
写在前面系统版本:Windows 10 专业版 20H2 Blender 版本:2.91.0 Unity 版本:2019.4.2.f1 Personal 注:现已确认不是系统或 Blender 或 Unity 的问题。在三者之前的版本中,该问题仍存在。Blender 导出的 FBX 模型导入 Unity 后的样貌如下图。左侧是 Unity 内置的圆柱体,下称“Unity built-in Cyli
转载 2024-03-25 15:02:23
245阅读
继续学习《Unity Shader 入门精要》。渲染的流程前部分是坐标变换,变换顺序是: 模型空间(Model Space)-->世界空间(World Space)-->观察空间(View Space)-->裁剪空间-->屏幕空间,具体的矩阵变换可以方便的使用内置矩阵: UNITY_MATRIX_MVP 当前模型视图投影矩阵 UNITY_MATRIX
转载 2024-07-27 22:34:17
268阅读
Shader+UGUI仿制Unity拾色器先上视频 Shader+UGUI 仿制Unity环形拾色器 由于视频有点小,下面放个大图原理介绍Shader 着色 组件共使用了3个自定义Shader,对应了拾色器的不同组成部分,分别是:选色调的色环Shader 其实很简单,首先根据UV图生成色调图,然后用一个环来lerp一下,然后在目标位置生成一个小圈圈。 如上图所示,暴露很多参数供C#调整,有背
转载 2月前
376阅读
Unity3D Compute Shader 新解体绘制技术与吸收【三】1.Compute Shader是一个DX11的大特点,显然它真的开放了GPU的运算 2.Compute Shader的价值也是非常大的,在科学、工程、医学、各种应用上显而易见 3.GPU的浮点运算和精度比CPU高几个数量级,而且GPU的并行运算的结构、指令不会冗长的等待这几天听了恩雅的 "Waters Show The
转载 2024-03-23 08:09:01
106阅读
一、子着色器Unity中的每一个着色器都包含一个subshader的列表,当Unity需要显示一个网格时,它能发现使用的着色器,并提取第一个能运行在当前用户的显示卡上的子着色器。 我们知道,子着色器定义了一个渲染通道的列表,并可选是否为所有通道初始化所需要的通用状态。子着色器的写法如下: Subshader{ [Tags] [CommonState] Passdef [Pass
转载 3月前
434阅读
开始Unity Shader学习之旅一个简单的顶点/片元着色器CGPROGRAM #pragma vertex vert #pragma fragment frag fixed4 _Color; //使用一个结构体来定义顶点着色器的输入 struct a2v{ float4 vertex:POSITION; //模型空间的顶点坐标 float3 normal:NORMA
笛卡尔坐标系1. 二维笛卡尔坐标系其实我们小学就开始接触的二维坐标系就是笛卡尔坐标系,只是我们当时并不知道这个名字而已。x轴和y轴互相垂直,也称为该坐标系的基矢量。在OpenGL和DirectX中使用了不同的二维笛卡尔坐标系2. 三维笛卡尔坐标系三维笛卡尔坐标系中,需要定义三个坐标轴和一个原点,如下图:这三个坐标轴也称为基矢量(basis vector),通常三个坐标轴是互相垂直的,而且长度为1,
运行效果思路先将UV转换,如下图 只需要下面代码,就可以将上、下翻转Y坐标轴了uv = fixed2(uv.x, 1 - uv.x);看看调整效果对不对,我们用颜色输出一下,看看对不对:// 四象限:左上:红,右上:黑,左下:黄,右下:绿 return fixed4(step(uv1.x, 0.5), step(0.5, uv1.y),0,1);效果如下: 接着是测试旋转:float radian
半影方案之前用来生成lightMesh的端点扫描的方案并不适合生成ShadowMesh,主要原因是光源体积边缘的点和光源中心点的端点顺序可能不同。虽然端点排序很快,但也不可能每个半影区域都排一次,即使有优化方案,代码的复杂度也会很高。使用Shader绘制阴影(包括半影)比较简单,而且效率很高。个人觉得它不能完全替代生成lightMesh的方案。使用Shader实现的阴影仅仅是视觉效果,很难将受影或
UDK 的材质编辑器十分好用,毕竟是所见即所得的。虽然unity也有类似第三方插件,但易用性还是差很多,下面主要是,把一些常见表达式概念对应起来。1. UDK CameraVector (相机位向量)表达式 相机位向量表达式使您能够在游戏运行时访问相机的指向向量。在要求材质于不同视角角度下呈现出不同效果时  对应unity shader中Input结构附加变
  • 1
  • 2
  • 3
  • 4
  • 5