自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (1)
  • 收藏
  • 关注

原创 TA101_Dissolve

溶解效果步骤分解

2022-09-08 14:44:39 205 1

原创 3DMax坐标系转换为Unity坐标系

3DMax坐标系转换为Unity坐标系3DMax是右坐标系,并且Z轴向上Unity 是左手坐标系,并且Y轴向上在导出FBX文件的时候3DMax是可以指定Y,Z轴向上的

2022-02-07 14:14:57 4582 2

原创 2021-09-23

unity 编辑器下修改材质属性没有保存的问题属性需要在Properties声明才能保存,官方文档连接

2021-09-23 11:26:34 101

原创 影响unity渲染顺序因素

有哪些因素影响unity的渲染1. 与摄像机之间的距离2. shader的RenderQueue3. sortingOrder4. sortingLayer5. 相机之间的Depth这里多条件那么他们之间的关系是什么,相互有什么影响,今天来个大揭秘!!保持其他条件不变的情况下:我们看看单个值比较,直接给出结论1. 与摄像机之间的距离:离相机进的先渲染2. shader的RenderQueue: RenderQueue 小的先渲染3. sortingOrder:sortingOrder小的

2020-05-14 14:05:52 227

原创 ECS Dynamic buffer 快速概念介绍 三

什么是Dynamic buffer?简单理解就是我们用的list,他会自动调整需要的内存大小如何使用struct 继承IBufferElementData定义public struct IntBufferElement : IBufferElementData{ public int Value;}添加EntityManager.AddBuffer<My...

2020-03-18 18:52:58 812

原创 ECS Component 二

ComponentECS:中的C,里面存放的就是我们需要的数据E:是一个id用于标识一组Component,让他们逻辑上是一起的S:用于处理逻辑Component结果是一个struct,unity 提供了一些接口供我们使用,Component 数据在内存中的分部在我上一篇《ECS基本概念 一》有介绍IComponentData 我们通常的数据就是实现该接口...

2020-03-13 22:53:55 403

原创 ECS基本概念 一

基本概念ECS(Entity-Component-System)由三部分组成Entity:是一个id,目的是将Component逻辑地分组在一起,在源码中是一个结构体,包含一个int类型的id和int类型的版本号Component:只是数据存储(没有代码逻辑的struct)System:对数据进行逻辑处理,本身不含数据我们的处理流程是创建一个Entity,包含一系列Component...

2020-03-06 13:57:46 2389

原创 什么是ECS 零

什么是ECSECS (Entity-Component-System)是一个编程模式,之前unity 的编程模式是oop(Object-oriented programming)oop 模型下gameObject相当于一个容器,里面一个一个组件包含在里面数据在内存中的各个地方ECS 模式下entity 就像一个钥匙相同类型的数据(Component)在一个连续的内存块中...

2020-03-05 01:15:37 429

原创 unity jobSystem

什么是jobSystem一个多线程系统,可以利用cpu多核,提高程序运行的帧率。如何使用创建任务创建struct 实现Ijob接口添加变量实现接口方法example: IJobpublic struct MyJob : IJob{ public float a; public float b; public NativeArray<float&g...

2019-08-16 20:16:41 1907

原创 lua 编程规范

1.变量记得初始化再使用问题:由于lua的变量非常灵活在使用的时候可以随时使用,当在一些界面保持了一些状态值的时候,进入界面一定要记得先初始化。错误的状态会导致许都隐藏bug。我有一次做游戏里面一个神格系统的时候由于里面一个变量保持了一个对象(保存对象这件事本身也是错的),进入界面没有初始化,在执行一些逻辑的时候使了改份数据导致游戏逻辑数据里面的错误触发bug。2.保存对象关系的时候不要直接使...

2019-03-30 14:29:42 442

原创 unity 导入贴图资源时自动生成ETC1需要的alpha图

##基本概念##让程序自动化的完成一些事情,减少手动干预。##关键代码##//图片导入完成之前的操作void OnPostprocessTexture(Texture2D texture)//资源导入之后的操作OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAss...

2019-03-07 16:38:32 624

原创 unity复制路径到windows黏贴版(vscode luaide lua pathcopy)

复制到黏贴版在使用lua的时候需要获取物体时使用路径来查找,写一个小工具方便使用: 关键代码GUIUtility.systemCopyBuffer = "test";这里我使用的vscode 编辑器,用了luaide插件。做ui的时候需要用路径寻找物体,这里使用一个快捷键组成一个lua代码方便使用。 模板如下--@RefType[luaIde#"+ typeName + "...

2018-05-02 19:24:21 499

原创 post-processing effects HDR

基本概念HDR(High Dynamic Range )高动态范围,在图像显示中颜色是用rgb来表示的他们的值是[0-1],0表示最多亮度,1表示最大值。这样比较暗的物体和更亮的物体就被截断到了0-1,显示的光线范围比较狭窄不能表达更加丰富的光线场景。而人眼的感知范围比较大细微的变化也能感受到,而[0-1]截断缺少了更多的细节。为了让人们看的更加舒服就有了HDR的使用了。用float表示每个像...

2018-04-23 21:37:21 990

原创 Unity 图像后期处理基本概念(post-processing effects)

图像效果处理在unity中使用图像效果处理非常简单,用一个脚本使用OnRenderImage 方法并将该方法挂载在camera上面,OnRenderImage 有两个参数,第一个是unity传进来的图像(当前渲染的),第二个是目标纹理这里一般使用一个shader对每个像素进行处理使用Graphics.Blit ,可以渲染的目标纹理中也可以渲染到自己创建的render texture中 ...

2018-04-20 21:15:32 6606

原创 unity渲染路径基本概念

渲染路径unity提供了多个内置的渲染路径,他们是根据Graphics Settings 或者Camera的设置,Camera可以覆盖Graphics Settings 这里我主要介绍 Forward Rendering Path Deferred rendering path 选择那个主要根据灯光的数量和平台来决定LightMode tag指示当前pass 是那个...

2018-04-06 00:13:44 3010 4

原创 unity 资源管理之AssetBundle

上一篇讲了unity 资源管理的总体结构链接,这里主要讲unity AssetBundle 相关的内存管理内部机制AssetBundle 由header 和data segment两部分组成header包含AssetBundle 一些相关信息 唯一标识、压缩类型、清单文件(identifier, compression type, and a manifest) 清单文件是个查找表 ...

2018-03-08 01:23:47 435

原创 unity 资源管理

文件的基本概念Asset :保存在unity项目文件夹Assets 下面的磁盘文件 Object: 具体实列对象的序列化 Assets 由一个或者多个Object组成定位资源unity 使用GUID 和 fileID来定位文件。 GUID:定位文件的位置,定位一个Asset fileID: 定位Asset 里面的一个Object (unity 描述为Local ID 实际...

2018-03-07 00:01:23 1782

原创 ETC1 支持 alpha

ETC1 是一种纹理压缩的格式压缩描述链接.ETC1是OpenGL图形标准的一种。不过ETC1只有rgb 没有a 通道不能用于透明纹理的渲染。我们如何用于支持alpha通道呢那就是用另外一张纹理,也是ETC1 用rgb中的一个通道保存alpha值,在shader中组合起来。就实现了ETC1格式支持透了关键代码fixed4 frag (v2f i) : SV_Target{ /

2018-01-21 22:59:59 3479

原创 轮廓线,描边

卡通渲染中的描边在渲染物体时一个常见的需求就是给物体添加一个描边,实现描边的方式有很多,今天介绍一种简单的。原理对一个物体渲染两遍第一次让顶点对外做一个偏移(沿着法线)。渲染颜色为描边的颜色正常渲染一个物体,因为第一次有偏移,这次渲染的时候遮不住的地方就是描边了如图A是需要渲染的物体,B是第一次渲染,C是第二次渲染,这就出现了一个描边效果关键代码//渲染

2018-01-19 23:16:13 684

原创 顶点动画

让物体动起来在游戏中让物体动起来这是最基本的元素了。这里我们使用shader中的顶点着色器让我们控制物体让它动起来。前面我们移动了uv(uv动画),这里的基本原理是一样的,根据时间线给物体的顶点一个偏移,这样就形成了一个动画。Timeshader 里面获取时间 unity官网提供了内置函数官网链接 关键代码在顶点着色器里面对顶点进行位置偏移这里我是吧偏移在Unit

2018-01-14 15:47:25 2530

原创 Unity 水面扰动

在unity中实现一个水面扰动的效果,这里用到了UV移动,和uv扰动这里我组合了这两个shader实现了一个水面扰动的效果,使用了一个波纹纹理,然后用一张2维噪声扰动uv。产生的效果还是比较乐观的关键代码v2f vert (appdata v) { v2f o; o.vertex = UnityObjectToC

2018-01-03 21:53:33 5400

原创 unity Shader 扭曲效果

原理所谓扭曲就是扰动一个物体的uv坐标,表现出来就是一个扰动效果,如火焰扭曲空气,和水波对水底的影响。 1. 在shader 中我们需要一张当前渲染的纹理 2. 给一个物体渲染并使用当前纹理,用屏幕坐标作为uv坐标加上一个扰动值unity1. unity提供了抓取的pass: GrabPass unity官网介绍//每次遇到这个pass就去抓取一次提供了了一个默认名称_GrabTextur

2017-12-19 23:57:08 10020 3

原创 ngui 图片变灰Shader

原理将彩色图片映射到灰度的的一个过程,我们一般使用的颜色值一般rgb32位每个八位的,在shader里面颜色被转换到[0-1]范围。根据人们的经验得到一个转换的比例是R:0.3 G:0.6 B:0.1 这个大概就是这个范围得到转换效果还不错。(有大神说过图像学第一定律就是看上去是对的,那它就是对的)关键代码fixed4 frag(v2f IN) : SV_Target{ fixed4 co

2017-12-18 21:38:22 759

原创 溶解效果

原理实现图像溶解效果,实现机制是用一张纹理图作为溶解的过程。因为每个像素存储的数据不一样就像一个不平的地面,数值比较小的就想隐藏掉,数值比较大的就后隐藏。这个就完成了一个消融的过程。 如图按照数值比较小的数先一个一个隐藏,这里就产生了消融的过程。 第一个是像素的纹理,第二个我用的一个噪声纹理由他来控制消融过程效果图关键代码fixed4 frag (v2f i) : SV_Target{

2017-12-09 17:13:00 1412

原创 Unity Shader uv 动画

Unity Shader uv 动画什么是uv动画?我们知道贴图的渲染就是每个顶点有一个uv属性,光栅化之后,片段着色器得到线性插值的一个uv坐标根据这个坐标去对应的纹理像素。那么我们只需要在顶点着色去给uv坐标一个根据时间增量就可以实现了。 unity提供了一些内置变量,其中就有时间相关的 _Time其中就是一个时间累加的变量了,我取的是_Time.y正常的时间累加 unity相关文档链

2017-12-07 02:12:15 1359

原创 unity shader,模型显示在NGUI上面并可以scrollview裁剪

模型显示在ui上面如图显示模型 1设置模型的Layer为ui相机显示的值,这里设置为NGUI 2把模型拉近相机,不要被ui渲染遮挡 3需要放大模型因为NGUI的UIRoot会缩小 有一个问题就是我使用了Scrollview组件我希望ui被裁减时,模型也一起裁剪自定义裁剪shader1设置显示范围,超出这个范围就丢弃当前片段这里我是全局设置一个裁剪范围pu...

2017-11-27 17:34:21 2594 2

原创 unityShader前篇之光照模型

参考资料nvidia官网cg编程指南链接基本光照固定管道使用的基本光照计算公式 surfaceColor = emissive + ambient + diffuse + specular surfaceColor:最终颜色 emissive:自发光颜色 ambient:环境关颜色 diffuse:漫反射关颜色 specular:镜面高光颜色光照计算emissive = Ke ke:材

2015-09-23 18:08:20 344

java手机管理系统

基于java开发的手机管理系统源代码 共初级java人员学习的cs桌面软件

2012-02-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除