最近要写新手引导,记录一下蒙黑(层级最上,蒙住整个UI,有镂空裁剪)镂空区域btn(是一个button 动态改变位置) 引导UI(做新手引导的UI) 活动UI(主动弹出的活动UI 层级位于引导UI上)当然还有引导的小姐姐头像对话框以及镂空区域有特效提示之前做法:蒙黑背景计算镂空区域,蒙黑镂空区域有一个btn,btn的点击可以渗透下去  
在现实生活中,如果一个物体是透明的,意味着我们不仅可以透过它看到其他物体的样子,也可以看到它内部的结构。但在前面实现的透明效果中,无论是透明度测试还是透明度混合,我们都无法观察到正方体内部及其背面的形状,导致物体看起来就好像只有半个一样。这是因为,默认情况下渲染引擎剔除了物体背面(相对于摄像机的方向)的渲染图元,而只渲染了物体的正面。如果我们想要得到双面渲染的效果,可以使用Cull指令来控制需要剔
转载
2024-06-13 17:10:41
208阅读
这一章要点内容比较多。透明度测试与透明度混合透明度测试它采用一种“霸道极端”的机制,只要一个片元的透明度不满足条件(通常是小于某个阈值),那么它对应的片元就会被舍弃,不做任何处理。否则就会按照普通不透明的物体的处理方式来处理它。它产生的效果是极端的,某个片元要么完全透明(看不见),要么完全不透明。透明度混合这种方法可以得到真正的半透明效果。他会使用当前片元的透明度作为混合因子,与已经存储在颜色缓冲
转载
2024-08-17 09:36:43
107阅读
写在前面系统版本: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阅读
UDK 的材质编辑器十分好用,毕竟是所见即所得的。虽然unity也有类似第三方插件,但易用性还是差很多,下面主要是,把一些常见表达式概念对应起来。1. UDK CameraVector (相机位向量)表达式 相机位向量表达式使您能够在游戏运行时访问相机的指向向量。在要求材质于不同视角角度下呈现出不同效果时 对应unity shader中Input结构附加变
之前在网上看到物体遮挡描边的功能,自己也拿来实现了一番。算作第一篇博客的开篇。 先贴出几张效果图,也是个人思路和方案的改进路线吧。 //////////////////////////////////////////////////////////////////方案实现/////////////////////////////////////////////////////////////
转载
2024-02-12 21:58:36
708阅读
这是一种实现 UIView 镂空效果的方案,可以快速实现任意形状的镂空、文字的镂空、带镂空的毛玻璃效果等。本质上是 UIView 的 maskView 效果的「取反」。前言首先来复习一下遮罩效果的实现。如果我们有一张图片,又恰好有一个圆,当我们把圆设置为图片的遮罩时,会得到这样的结果。 代码实现看上去像是这样:view.maskView = maskView;
复制代码那么问题来了,如果我们
上一节中由于关闭深度写入,最后渲染结果会造成模型内部存在半透明效果: 解决方法:是使用两个Pass来渲染模型:第- 一个Pass开启深度写入,但不输出颜色,它的目的仅仅是为了把该模型的深度值写入深度缓冲中;第二个Pass进行正常的透明度混合,由于上一个Pass已经得到了逐像素的正确的深度信息,该Pass就可以按照像素级别的深度排序结果进行透明渲染。但这种方法的缺点在于,多使用一个Pass
转载
2024-05-16 10:56:09
571阅读
【Unity2D游戏】实现实时的正确的遮挡关系(引擎自带功能) Unity的渲染层级(layer),决定了2D游戏的渲染顺序,值越大的层级越后渲染,因渲染层级大的物体会覆盖渲染层级小的物体。在Sprite Renderer中,分为Sorting Layer和Order in Layer,通过这两个属性可以设置物体的渲染层级。然而在2D游戏中,常常会有角色一会儿跑到物体前,一会儿跑到物体后面的
转载
2024-05-21 10:23:09
908阅读
种种原因鸽了很久…已经学到第九章了第六章的笔记还没写…那就当对初级篇的一个总结吧,防止篇幅太长,分3部分来总结~对于光照模型的讲解原书已经讲得非常详细了,这里就随便记一下咯…感觉这章对于萌新来说最重要的是从框架开始跟着敲,熟悉一下流程和常用函数、变量、语义没啥难度,但是基础很重要,这里熟悉了,后面代码感觉眼睛已经可以跳着看了emm总结开始! 标准光照模型在标准光照模型中,进入摄像机中的光
转载
2024-05-28 22:54:51
223阅读
What?? Shader,看起来好高级的样子,是的,这是Unity中高级进阶的必备。因此,兄弟我就在此记下我学习官网的一些心得。 一、概念篇 1.基准:unity里的shader并不是一门独特的语言,而是一种代码生成方式,且可将低层次且复杂的shader编程进行简化。但同时你也还是得使用Cg/HLSL来写的。 2.原理:写一个函数,以UVs或者一些数据为入口,然后以SurfaceO
最近遇到了一个问题,角色在Unity编辑器里运行渲染结果都是好的,打包到IOS上却发现,角色身上渲染的很黑.花了些时间查了查,又试了试,把这方面算是初步弄清楚了。先说出现问题的原因,由于我们把shader打包进了AssetBundle中,并且在Shader中使用了shader_feature来定义了宏。为了完整起见,先从unity的shader variant说起。ShaderVariant举个例
转载
2024-04-03 11:16:21
166阅读
Unity中的基础光照一、一些基础定义着色:根据材质属性(如漫反射属性等)、光源信息(如光源方向、辐照度等),使用一个等式去计算沿某个观察方向的出射度的过程。这个等式称为光照模型。高光反射:表示物体表面是如何反射光线的漫反射:表示有多少光线会被折射、吸收和散射出表面。将进入摄像机的光线分为4个部分(C为符号,后面的小写单词为下标):
自发光(emissive)部分:用Cmissive来表示。
转载
2024-08-18 14:16:46
78阅读
什么是ShaderVariant 在写shader时,往往会在shader中定义多个宏,并在shader代码中控制开启宏或关闭宏时物体的渲染过程。最终编译的时候也是根据这些不同的宏来编译生成多种组合形式的shader源码,说白了就是和if类似。其中每一种组合就是这个shader的一个变体(Variant)。Material ShaderKeywords与ShaderVariant Materi
转载
2024-06-18 05:19:57
272阅读
一、数学内置函数1、Step(a,x):如果x<a返回0;如果x>或=a返回1
2、Clamp(x,a,b):如果x<a返回a;如果x>b返回b;如果在a和b之间就返回x
3、smoothstep(min,max,x):返回的值为–2*((x –min )/(max –min ))3 +3*((x –min )/(max –min ))2
4、lerp(a,b,f):线性插
转载
2024-05-27 20:24:56
240阅读
1.透明度混合必须关闭深度写入,开启混合模式Shader"Unity Shaders Book/Chapter 8/Alpha Blend"
{
Properties
{
_Color ("Color Tint", Color) = (1,1,1,1)
_MainTex("MainTex", 2D) = "White" {}
//在透明纹理的基础上控制整体的透明度
_Alpha
转载
2024-06-27 21:55:12
90阅读
Unity Shader 基础unity shader在5.2版本以上能够直接从项目中创建4个shader模板:standard surface shader、Unlit shader、Image Effect shader,computer shader.standard shader:包含标准光照模型(使用了基于物理的渲染方法) Unlit shader:不含光照的基本的顶点/片元着色器
转载
2024-04-07 14:28:13
96阅读
转载自 冯乐乐 《Unity Shader 入门精要》一个顶点/片元 着色器的结构大概如下: 1. Shader "MyShaderName"
2. {
3. Properties
4. {
5. //属性
6. }
7. SubShader
8. {
9. //针对显卡A的SubShader
转载
2024-05-22 22:16:23
723阅读
Unity Shader是Unity为开发者提供的高级抽象渲染层,Unity希望通过这种方式让开发者更加轻松的控制渲染 如下图 Unity Shader都是使用ShaderLab来编写的,ShaderLab是Unity提供的编写Unity Shader的一种说明性语言。使用了一些嵌套在花括号内部的语义来描述一个Unity Shader文件的结构。这些结构包含了许多渲染所需要的数据,例如Proper
转载
2024-04-11 12:50:41
206阅读
unity的shader,分为两种模式:固定管线和可编程,其中可编程模式又分为两种:1.vertex shader和fragment shader组合。2.Surface shader。其实Surface shader是顶点和片段shader的混合体而已(只不过比第一种写起来方便)。shader无非就是处理顶点和光照数据 ,输出颜色信息,仅似而已。顶点着色器:产生纹理坐标,雾坐标,光照计
转载
2024-04-08 22:08:25
128阅读