- 博客(144)
- 资源 (8)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Unity Shader实现线框效果(详细图解)
先上图看看效果:下面详细分享一下制作步骤吧:一、首先模型本身需要特殊处理二、编写Shadershader "Giraffe/Wireframe" { properties{ _Color("Color",Color) = (1.0,1.0,1.0,1.0) _EdgeColor("Edge Color",Color) = (1.0,1.0,1.0,1.0) _EdgeColor2("Edge Color",Color) = (1.0,1.0,1
2021-06-07 11:45:46
7360
4
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 ShaderGraph节点大全
最近事情比较杂乱学习的内容也比较零散,所以也没怎么拿出来和大家分享。之前一直是代码编写Shader,ShaderGraph出了很久了,一直被我无视了,最近学习了一下ShaderGraph感觉真的让我又有了很多新的想法,在很多效果实现方面真的方便很多。因为原来就有写Shader的基础 ,学习起来不算太吃力,这里把学习到的内容在这里记录一些,当然不全是我 自己原创的内容,搬过来方便自己和大家查阅。ShaderGraph也有些要注意的:1.ShaderGraph只能用于新HDPR(高清渲染管线)和LWRP(
2021-05-13 16:55:01
17914
12
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Unity 实现2D地面挖洞!涂抹地形(碰撞部分,方法一)
总体效果可以看这篇:https://blog.csdn.net/ww1351646544/article/details/106410601这个案例使用的Edge Collider 2D 来实现在EdgeCollider2D组件下,可以通过给于Points顶点,EdgeCollider2D组件会按顺序将的所有的顶点用线段串起来,这些线段就是碰撞的范围。初始化时候把这个:一、给点四个边界点的位置二、因为计算需要,需要将第每个边分成多个线段。三,下一步就比较关键见了,当点击红色位置时候在环绕
2020-07-19 16:03:27
7027
12
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Shader实现瓶内液体效果
话不多说,先上图…需求:1.液体效果可变色。2.液体透明有折射效果。3.适应各种容器形状。4.随移动幅度进行抖动。实现思路:一、水平面的实现这个是比较简单的,设定一定的高度,有超过此高度的则进行一个片原舍弃。但片元的高度的本地的坐标,真实对比的高度是世界坐标,因此这里需要有一个坐标的转换的操作。设定一个值即当前点的裁剪的世界坐标高度,由外面的脚本传进来。然后每个片元高度转成世...
2019-08-06 17:28:50
6561
10
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 空间变换矩阵
位置是怎么用矩阵是怎么变换到另一个坐标的?想要定义一个空间,必须知道三个坐标轴的方向,而这些数值是相对于另一个坐标空间的。我们需要知道所有的空间都是相对的,即每一个坐标空间都是另一个坐标空间的子空间,反过来也可以说是父空间。当给定一个点(a,b,c)时我们是怎么知道他的位置呢?1.从坐标空间原点开始2.向x轴方向移动a个单位3.向y轴方向移动b个单位4.向z轴方向 移动c个单位比如,...
2019-03-19 22:59:52
5717
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 矩阵的几何意义
矩阵的几何意义:变换是指把一些数据如点,方向失量颜色等通过某些方式转换的过程。线性变换f(x)+f(y)=f(x+y)kf(x)=f(kx)上面的例子有点抽象,如缩放就是一种线性变换,如f(x)=2x可以表示一个大小为2的统一缩放,即经过失量x的模是原来的两倍。同样旋转也是一种线性变换。还包括错切、镜像、正交投影等…仅有线性变换不够的。我们来考虑平移变换例如f(x)=x+(1,2,3)...
2019-03-19 18:47:10
13252
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 什么是矩阵
什么是矩阵矩阵,在数学上,矩阵是指纵横排列的二维数据表格,最早来自于方程组的系数及常数所构成的方阵。矩阵是高等代数学中的常见工具,也常见于统计分析等应用数学学科中。长这个样子:失量也可以转为矩阵,可以看成nX1的行矩阵,或1Xn的矩阵。矩阵列的运行比较复杂,下面就来一一探讨。矩阵和标量的乘法直接标量与各个分量相乘即可,不多废话了…同时kM=Mk即,谁在哪边都一样。矩阵与矩阵的乘法...
2019-03-19 16:55:24
39094
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Shader常用函数属性
Properties属性支持类型属性类型默认值的定义语法例子Intnumber_Int(“Int”,Int)=2Floatnumber_Float(“Float”,Float)=1.5Range(min,max)number_Range(“Range”,Range(0.0,5.0))=3.0Color(number,number,number...
2019-03-19 02:19:31
3015
3
原创 Mirror学习笔记(五)概念指南
有时候你不想使用Mirror类型生成序列化,则可以通过 NetworkWriter和NetworkReader来添加支持的类型。例如要对DataTime添加内容,可以参考以下例子:然后你可以使用DateTime 在你的[Command] 或 SyncList。
2024-08-11 16:46:04
1026
原创 Mirror学习笔记(三) 组件简介
身份验证器的一个派生至抽象类Authenticator,允许你自行实现所需要的身份验证。在资源菜单中,点击 Create > Mirror > Network Authenticator 自定义你的身份管理器。
2024-08-01 09:53:27
832
原创 Mirror学习笔记(二) 传输协议
当使用传输协议,您需要将协议添加到Inner字段中,然后将Encryption Transport分配给Network Manager中的Transport.中间通过了Encryption进行加密。只需要输入你的EdgegapAPI密钥和你选择的唯一大厅名字(LobbyName),然后点击创建,就会部署完成,然后将为填写上大厅的URL.验证服务器公钥,如果不验证公钥,初始握手容易收到MITM攻击。而Ignorance是一种可靠的UDP传输协议,并且它提供了可靠的和不可靠的UDP协议。
2024-07-31 12:03:54
819
原创 Mirror学习笔记(一) 简介
因此,在任何给定的时间,您都可以发现对象的Rpc/OnDeserialize/OnMessage处理程序何时由服务器通过NetworkClient.connection.remoteTimeStamp发送。这里就有100毫秒的时间差。早期版本通过NetworkTransform来实现,成本巨大因为需要包含一个4字节(float),甚至8字节(double),当在大型游戏中时,宽带压力会迅速增加。渲染器在原位置并平滑插值到Ghost对像的位置,这将提供非常平滑的结果,但创造和跟随会有更大的额外成本开销。
2024-07-31 12:01:24
1031
原创 关于Unity四种合批技术详解
1): 静态合批会优先使用,如果还兼容SRP Batcher则会同时使用2): 动态物体会优先使用SRP Batcher3): 非静态且不支持SRP Batcher才会检查启启用GPU Instancing4): 以上都不支持才会使用Dynamic Batching即: Static Batching > SRP Batcher > GPU Instancing > Dynamic Batching。
2024-06-14 14:26:07
5116
原创 Unity DOTS技术(十五) 物理系统
要解决性能的瓶颈问题,在DOTS中我们将不再使用Unity自带的物理组件.下面来分享一下在DOTS中当如何使用物理插件.
2024-06-09 09:50:35
461
原创 Unity DOTS技术(十四) Job与ParallelJob接口
4.需要注意的是在此多线程运算中不得使用Unity原有的类库进行运算,应当使用Mathematics进行运算。
2024-06-08 11:15:23
480
原创 Unity DOTS技术(十三) ComponentSystem及JobComponentSystem
1.继承ComponentSystem需要实现抽象OnUpdate()2.与SystemBase不同,ComponentSystem不包含LambdaSingleJobDescription,3.CompoentSystem的带代码都是在主线程上运行,不支持多线程.4.并不能在ForEach后面点出什么参数来编辑.5.功能上与SystemBase中使用主线程代码.Run功能类似,官方推荐使用.
2024-06-08 11:13:01
392
原创 Unity DOTS技术(十二) SystemBase修饰及操作
2.使用后必须对变量进行卸载,timeInt的类型是TempJob周期为4帧,我们可以使用WithDeallocateOnJobCompletion自动的在线程运行后进行卸载。1.在多线程中我们不能直接使用Int等类型,需要使用Native Container的内容,如上图我们使用了Native Container下的NativeArray的内容。在上节中我们讲到多线程操作,为避免对线程的操作导致数据错乱,我们需要为变量进行修饰.于是我们需要用到Native Container.
2024-06-07 08:55:36
383
原创 Unity DOTS技术(十一) SystemBase详解
在之前的分享中我们用到的系统父类有ComponentSystem主要操控主线程的,JobCoponentSystem主要操作多线程的.而SystemBase则可以兼容以上两者,操控主线程及多线程.
2024-06-07 08:54:13
671
原创 Unity DOTS技术(十) ChunkComponent块组件
块组件(ChunkComponent),与共享组件类似,但在共用组件时并不会将组件移动到新的块里面去.当将块组件的值进行修改时.将会把组件中的值进行一个统一的变化,不会产生一个新的组件。
2024-06-06 10:22:22
329
原创 Unity DOTS技术(九) BufferElement动态缓冲区组件
在之前的学习中我们发现Entity不能挂载相同的组件的.当我们需要用相同的组件时则可以使用.IBufferElementData接口动态缓冲区组件来实现。
2024-06-06 10:19:12
422
原创 Unity DOTS技术(八)状态组件
因为在ECS中没有回调,因而无从得知组件是否被销毁.所以我们需要使用ISystemStateComponentData.什么时ISystemStateComponentData状态组件?当物体被销毁时ISystemStateComponentData组件不会被销毁.因而我们可以在组件被销毁时在该组件中留下信息代表该组件的情况.
2024-06-05 11:23:07
285
原创 Unity DOTS技术(七)共享组件
共享组件的使用需要注意尽量选择不会经常变动的组件,当共享组件值发生修改时会使用实体被移动到新的Chunk中造成性能消耗.如下图目前所有的组件都是继承于IComponentData接口,但其实中部分实体其实在不同的实体中重复使用,为了性能更优化,于是我们可以将其使用IShaderComponentData组件将其共享处来.需要注意的是:共享组件需要使用AddShareComponentData进行添加。可以看出修改值后的组件则非相同组件,不修改则为相同组件。当值修改后相当于创建了一个新的共享组件。
2024-06-05 11:21:56
344
原创 Unity DOTS技术(五)Archetype,Chunk,NativeArray
Chunk是一个空间,ECS系统会将相同类型的实体放在Chunk中.当一个Chunk放满后则会创建相同类型的一个Chunk.当一个Chunk存满了以后会创建新的Chunk进行储存.相同类型的一系列Chunk块称为ArchType。
2024-06-04 11:40:42
503
原创 Unity DOTS技术(四)World,System,Group
是ECS的一个全局管理者,可以对ECS中的内容进行增删改查,场景中可以有多个World但相互之间无法通讯.打开菜单栏Window > Analysis > Entity Debugger 界面。需要注意的是不能添加在同一个世界中,如别的世界原本有这个系统则原来的系统会消失。在左上方可以查看到新创建的世界,系统默认有一个Default World。组是一个特殊的系统,用于为系统分类及控制执行循序。一个系统只能存在在某一世界中而且只能有一个。当一个系统创建时默认会放到某个组内。这里例子指定为默认组。
2024-06-04 11:38:16
902
原创 Unity DOTS技术(三)JobSystem+Burst+批处理
在之前的例子中我们都中用的单线程与传统的编译器,下面我们试着使用JobSystem与打找Burst编译器来对比一下性能的差异.
2024-06-02 11:44:19
379
原创 Unity DOTS技术(二)ECS
ECS全称 (Entity Component System).即(E:实体 C:组件 S:系统).实际上即是数据方法分离.数据放在组件里,具体实现放在系统里.组件挂载在实体上.为了让大家快速了解,本次介绍是以下内容:下面举个简单的的例子:1.创建数据组件,继承IConponentData接口2.系统组件创建一个系统继承ComponentSystem3.创建一个中转组件,这样我们就可以将此脚本挂在物体上(比如一个Cube),这个脚本生成PrintComponentData1并挂在物体上.此时该
2024-06-02 11:43:24
711
原创 Unity DOTS技术(一)简介
传统的游戏开发中,如果有成千上万的物体在场景中运动,那么你一定会认为是疯了.但有了Dost技术这一些都将变成可能.如图场景中有10000个物体在同时运动,帧率即能保持在60Fps以上.就是因为使用了我们今天要介绍的DOTS技术.我将几篇博文详细的介绍各模块的使用方式。
2024-06-01 13:06:49
657
2
原创 Unity性能优化一本通
优化主要分为以下三部分,资源,代码和托管。资源部分往往是大头,很多情况下都能占据工程的内存70%~80以上的大小,所以这一部分的优化至关重要。
2023-10-24 15:51:28
843
2
原创 Unity 表面凝结水珠效果(无需编码案例分享)
今天跟大家分享一一个非常简单的使用Unity制作出在物体便面凝结小水珠的过程动画,老规矩先上图:很多时候同学都会遇到某个效果都会觉得可能要写Shader,各种复杂的效果特别劝退。在这里我只想说,用好Unity默认的Standard已经可以完成一大半的日常效果了。关于Unity Standard网上有资料,比较齐全。在这里我也就不赘述了…这篇文章分享的意义在于很多效果用Unity现有的Shader即可以达到,只需要熟练每选项的意义。再结合个人的观察能力灵活运用即可以完成大部分普通效果。
2023-10-13 10:23:27
446
原创 非计算机科班如何丝滑转码?
不知不觉入行也有十余年了,或许和你一样我自己本身也并非计算机专业的,也可能是个未入行小白,并非所有人都适合当程序员。不乏带同事朋友入行的经验,由于一些客观原因他们不说走到了多高的高度,但至少在程序这个行业中站住了脚,所以我觉得这话话题有一定的“话语权”,哈。非科班出生相信很多人与当初的我一样,有:基础不扎实、学历或专业被面试官嫌弃、不知道怎么学习等问题。以下皆个人看法,或许和学校里说的“人人可教,皆可成材”的看法有所不同,仅供参考:
2023-08-16 11:03:43
331
2
原创 OpenCVForUnity(十)扩张与侵蚀效果
在这个教程中,您将学习两种常见的图像形态运算符:侵蚀和膨胀。为此,您将使用OpenCV库中的两个函数:erode 和 dilate。形态操作是一组基于形状的图像处理操作。形态操作会将结构元素应用于输入图像,并生成输出图像。其中最基本的形态操作是侵蚀和膨胀。它们具有广泛的应用,包括:1.消除噪声。2.分离图像中的单个元素并连接不同的元素。3.查找图像中的凸点或孔洞。扩张和侵蚀是一对非常有用的辅助效果,理解了他的工作原理和效果可以为图形进行进一步的加工和处理,以达到想要的效果。
2023-08-01 11:17:10
470
RTVoice是一个语音合成插件,可以将文本转换为自然流利的语音
2023-07-02
OpenCVForUnity2.3.8提供了许多内置的图像处理功能和算法,包括图像滤波器、特征检测器、模式识别和机器学习等
2023-06-18
OpenCVForUnity
2023-06-14
Puppet3D-1.9V
2023-06-14
Shader实现瓶内液体效果Demo
2022-02-07
模型涂抹Demo 模型UV涂抹
2021-08-12
Unity Shader线框效果例子
2021-06-08
Unity绳子/绳索效果例子
2021-02-18
PostProcessing2017.zip
2019-10-12
AmplifyShaderEditor.rar
2019-08-20
关于Unity开发人体姿态识别问题
2023-06-16
CSDN发布问题可以获得奖章吗?
2023-06-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人