- 博客(59)
- 收藏
- 关注
原创 unity编辑器拓展十二——用脚本控制特效的渐隐渐出(使用ReorderableList绘制List)
正常特效的渐隐渐出 是靠美术来k关键帧,比较不方便,就想着用脚本来控制比较方便,只要填写什么时候开始,渐出需要多长时间,中间持续多长时间,渐隐需要多长时间,填完就可以了,也方便修改。脚本1:需要绘制的类 以及UpData里的计算using System.Collections;using System.Collections.Generic;using UnityEngine;...
2019-07-10 17:28:06 1167
原创 shader之——rain
1.地面shaderShader "baicai/me02" { Properties { _MainTex ("MainTex", 2D) = "white" {} _Bump ("Bump", 2D) = "bump" {} _Bump02("Bump02",2D) = "Bump"{}
2019-03-08 15:00:54 738 1
原创 shader之——自定义shader光照烘焙
Shader "Game_XXX/Scenes/HouseShow"{ Properties { _MainTex ("Texture", 2D) = "white" {} } SubShader { Tags { "Queue"="Geometry"} Pass { CGPROGRAM...
2019-03-08 14:55:30 1691
原创 Pbr公式结合shader一
原理方面的东西很难搞明白,越研究疑惑越多,所以先放弃原理,今天结合unity shader来分析下如何套用原理方面的东西很难搞明白,越研究疑惑越多,所以先放弃原理,今天结合unity shader来分析下如何套用,第一次研究,如果有错误的地方欢迎指出。反射率方程将这个公式拆分为两部分第一部分:这是半球积分,表示多光源下光照的叠加,主要是为了环境反...
2019-03-07 11:07:25 2504
原创 Shader之——角色实时阴影
移动段的实时阴影,之前的实现方案是,让角色受光,让接受阴影的地表受光,达到一个实时阴影的效果。然后就发现美术的地表做得比较复杂 面数跟材质球数量都不少,一旦受光,dc跟面数都增加的比较明显,对效率影响比较高。 于是有了新的方案,地表上本来就会做一层行走网格,面数比较少,而且整个场景也就一到两个模型,干脆就用行走网格来接受阴影。让产生阴影的地方半透叠加到地表,没有阴影的地方全透...
2019-01-16 16:02:01 2328 1
原创 图形学一——渲染流程
Opengl 渲染流程:一 、cpu: 模型文件 加载到内存 通过MeshRender 渲染出来 1. 模型文件:包含模型 顶点 uv 法线 切线 等渲染所需要的信息 2. MeshRender:将信息传递给Gpu . skin mesh render / mesh render mesh filter 3.skin me...
2018-09-29 20:41:55 3871
原创 Shader之——高效率高度雾 云海
在网上研究了好长一段时间的高度雾 ,大概的方法分两种,一种是屏幕特效,一种是区域的模拟,都是需要开启相机的深度图,对移动端来说效率还是有一定的影响的,最后都放弃了。用我的野路子方法实现了个物体上的高度雾,远近雾,云海 效果如图:代码如下:Shader "scenes/FogSceneObj"{ Properties { _MainTex ("Texture", 2D) ...
2018-09-18 17:01:38 8003 7
原创 SurfaceShader之——自定义光照
Shader "Custom/aaa" { Properties { _MainTex ("Texture", 2D) = "white" {} } Subshader { //alpha测试,配合surf中的o.Alpha = c.a; AlphaTest Greater 0.4 CGPROGRAM #pragma surface surf...
2018-08-10 16:24:10 1123
原创 Unity之——发布Android平台
在发布Android项目之前,开发人员需先下载并安装Java SDK和Android SDK. 在本书中所用懂得Java SDK为1.80版本,Andriod SDK要APL Level21也就是Android 5.0以上,build-tools版本在20.0以上。http://www.Oracle.com/technetwork/Java/javase/downloads/index.htm...
2018-08-10 10:21:48 1639
原创 unity之——显示场景帧数脚本
using UnityEngine;public class FPS : MonoBehaviour{ float fps; int frames; string hudstr; float lasttime; Rect hudrc; Rect hudbkrc; public FPS() { } void...
2018-08-10 09:54:16 629
原创 Shader之——根据摄像机的数值来控制物体通道
描述:已知数值satrt end 摄像机到物体数值d 物体的透明度a1:摄像机离开物体 由近到远 物体由不透明到透明的变化过程 如下图该补补数学知识了a =1 - (d-start)/(end - start)可以这么理解,将距离d距离先向前移动start,那么d-start的数值就是从0——end -start 要想把0——end-start的数值变成0到1那...
2018-07-31 19:45:07 606
原创 Shader 之——rampTex使用(崩坏3)
核心代码fixed4 frag(v2f i) : COLOR { fixed4 col = tex2D(_MainTex,i.uv)*_Brightness; fixed3 BumpMap = UnpackNormal(tex2D(_Bump, i.uv)); ...
2018-07-30 17:10:40 7589
原创 shader之——RendererTex的通道问题
1.问题描述当3D模型被渲染成2D图片的时候 ,原来3D模型的通道显示出现了错误2.解决方案。网上有人提出把混合改成:Blend One OneMinusSrcAlpha这样对特效是有用,能让通道变正确,但是原来的3D效果已经被改变了,角色都变亮了正确的改变方式是:这样既不会改变原来的混合方式,又能让渲染出来的图片通道是以最大值来显示亲,...
2018-06-25 11:23:27 380
原创 Shader学习过程10——Cg函数
定制函数 函数的传参 函数的前向声明1.函数必须要在用之前声明void Func( ){ }void frag (inout float4 col:COLOR){ Func( );} 2.如果想把函数放在后面 需要提前声明void Func ();void frag (inout float4 col:COLOR){ Func...
2018-06-11 10:45:07 437
原创 Shader学习过程9——Cg入门
渲染管线 可以定制顶点和片段程序,目的是对颜色进行计算顶点和片段程序的输入输出常用语义: POSITION COLOR TEXCOORD向量: swizzle操作 xyzw rgba float4(xy,0,1) 可以随便颠倒顺序 宏定义:# define MACROFL float4(0,1,0,1); 宏使用:float4 a = MACROFL; ...
2018-06-07 10:52:50 933
原创 Shader学习过程8——5.x以前的SurfaceShader
Shader "Custom/SurfaceShader" { Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Albedo (RGB)", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" } LOD 200
2018-06-04 14:53:24 222
原创 Shader学习过程7——SurfaceShader
SurfaceOutput:Input:Lighting:光照shadow:阴影 只是对顶点和片段着色器的一种包装。Shader "Custom/SurfaceShader" { Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Albedo (RGB)", 2D) = "white" {}...
2018-06-04 11:43:06 333
原创 Shader学习过程6——固定管线shader2
Shader "Custom/002"{ properties { //程序名 (“材质球选项显示名字”,类型)= 参数默认值 _Color("MainColor",Color) = (1,1,1,1) _Ambient("Ambient",Color) = (0.3,0.3,0.3,1) _Specular("Specular",color) = (1,1,1,1) _Shi...
2018-06-02 16:29:10 262
原创 Shader学习过程5——固定管线shader1
Fixe function shader : 固定功能的shader, 针对硬件能够执行的基本的命令进行编写的shader。这种shader功能有限,但是速度是最快的,可以在所有的硬件平台上运行。 properties material lighting settexture passshaderlab结构sh...
2018-06-01 11:06:20 305
原创 Shader学习过程4——shader的组织形式
unity当中有3中不同的编写shader的方案 1、surface shaders 表面着色器 推荐使用。 可以完成百分之90的效果,是在vertex and fragment shaders上做了包装,方便大家使用。 2、vertex and fragment shaders 顶点 和 片段 着色器。一切皆有可能 3、fixed function ...
2018-05-31 20:27:53 326
原创 shader学习过程3——shader编程语言
shader language最初是由汇编语言编写,难度高,入门难。现在由三种高级语言可以编写。 一 、HLSL 基于DirectX的High Level Shading Language,简称HLSL。DirectX简称DX,微软的产品。优点:与硬件无关的软件接口,只支持windows平台。 二、GLSL 基于OpenGL的...
2018-05-31 15:51:57 4980
原创 shade学习过程2——shader和渲染管线
一 shader shader,也叫着色器,是一种较为短小的程序片段,用于告诉图形硬件如何计算和输出图像,过去由汇编语言来编写,现在也可以使用高级语言来编写。一句话概括:Shader是可编程图形管线的算法片段。 分为两类:Vertex Shader 和Fragment Shader. 二 、渲染管线 渲染管线也称为渲染流...
2018-05-30 11:21:20 920
原创 shader学习过程1——图形硬件历史
最枯燥的东西,看了忘,忘了还不想看......了解一下吧。一、GPU发展简史 GPU英文全称Graphic Processing Unit,中文翻译为“图形处理器”,在现代计算机系统中的作用变得越来越重要。 20世纪六七十年代,人们只是从软件实现的角度考虑图形用户界面的规范问题,并没有GPU的概念。 20实际70年代末,GPU概念被提出,使用单片集...
2018-05-28 17:35:59 631
原创 动作批量导出fbx插件
描述:3D角色做完把模型给动作,然后动作做完需要导出fbx到unity,当有大量的动作需要导出的时候,对动作来说是非常痛苦的,所以根据动作max文件的储存路劲与max的命名,做了一个批量导出工具。这里将导出类型分成NPC,body,face,head,可以根据自己的项目进行更改。工具截图如下:代码如下macroscript 批量导出category:"批量导出"toolTip:...
2018-05-09 15:27:49 4152 2
原创 unity编辑器拓展十二——储存工具栏的数据
大多数时候 我做的unity工具都是一次性的,也就是在场景中操作,关闭unity再打开,或者关闭工具再打开的时候,都没有保存工具上的操作数据;如图:这是在unity里面拖拽两张贴图上去,然后就可以对这两张贴图做各种处理 处理完将贴图保存进unity,但是如果我下次打开的时候,我这两张贴图已经丢失了,又是下面的这种状态,也就是说这些数据没有被保留在工具里。现在想做的就是希望下次打开的时...
2018-03-10 14:19:12 1548
原创 unity学习一——烘培
参数:Environment : 环境设置 Sky Material : 是整个场景的一个包装,它可以显示除了几何图形之外的世界.用于模拟天空或其他远处的背景。使用此属性可选择要用于场景的天空盒 材质。api:Skybox.Material勾选时,如果混合照明模式为距离阴影遮罩或阴影遮罩,Unity会显示光线探测器的遮挡数据 Sun Source : 当...
2018-03-06 17:29:17 2649
原创 unity编辑器拓展十一——将两张RGB图合并成一张
游戏角色shader,包含的东西比较多,还要做到动态合并,程序那边希望贴图经可能少,而我们美术用了两张图,一张图的RGB是高光、流光、自发光,另外一张图的RGB是不同区域的偏色,其实每个通道的一整张贴图只用了一部分,其他地方都是空的,于是就想到把两张图合并成一张图来使用。合并后的这张贴图的R通道:0到128 为高光 128到255为偏色区域,前提是偏色跟高光不要重合 所以这个偏色区...
2018-02-23 11:11:07 6098
原创 Shader之——花草动画shader
今天 ,接到了个需求,花草的动画。谈到花草动画,立马就想到顶点动画,让顶点动起来就可以实现了。但是有个问题,所有的草都往一个方向运动,这个就麻烦了。因为在shader里没有随机这种概念,提到最多的是用一张噪声图来模拟。在网上搜索了一下,发现有更好的办法,就是用每个顶点到一个点的距离来控制动画的开始,毕竟每个顶点到同一个点的距离很少是一样的。float dis = distance ...
2018-02-01 19:31:18 1956 2
原创 shader之——优化一(变量类型)
首先了解一下shader中需要用到的变量类型1.float:32位单精度的数据类型,是3个类型中最慢的,同时对应的坐标类型为float2,float3,float4.2.half :16位浮点类型,速度比float快得多,范围是[-6万, +6万],能精确到十进制的小数点后3.3位,相似得坐标类型为half2,half3, half4.3.fixed:通
2018-01-24 19:53:49 621
原创 shader之——最常用的Blend
shader的Blend混合一直是个很头痛的东西,组合的种类比较多,所以效果比较难记得,所以今天来总结一下1.Blend SrcAlpha OneMinusSrcAlpha 源颜色 x 源通道 + 目标颜色 x(1 - 源通道) A * alpha + B*(1-alpha)这就是我们常用的 alpha blending ,效果比较接近源颜色,可以深一些2.Blend
2018-01-16 11:07:24 5876 4
原创 shader之——移动端模拟深度水
描述:在网上看到很多效果很好的水,比如根据水的深度,颜色有深浅变化,能让水变得更真实,但是又会涉及到比较复杂的计算,在移动端上面还是有些吃力的。最近研究了一下,想在移动端上面模拟这样的效果 :1 水的深浅透明度变化2 水的深浅颜色变化3 水上的阴影模拟(大面积的水通过烘焙比较浪费烘焙图)根据上面的3点,可以通过一张黑白图的rg通道来实现深浅以及阴影的模拟 效果如下如...
2018-01-15 10:29:45 5528 7
原创 shader之——球形烟雾 &&CG函数saturate与abs的用法
今天接到个需求,做一个球形的烟雾,让3D场景自己在场景里去摆放,贴图不是4方连续的,所以看上去有接缝哈,具体的让特效自己去调效果了:遇到了一个从来都没注意过的问题,做了一个球形的烟雾,用了边缘透明的方式,同时用了Cull Off,但是无论如何都无法显示背面,找到了原因,在此记录一下。shader代码如下:// Upgrade NOTE: replaced 'mul(UNIT...
2018-01-13 17:28:52 4706 3
原创 shader之——冰冻
网上看到了一些冰冻的模型 不太适合移动端,所以优化了一下,在次记录一下Shader "KriptoFX/RFX4/Decal/IceMobile" { Properties{ _Color("Main Color", Color) = (1,1,1,1) [HDR]_ReflectColor("Reflection Color", Color) = (1,1,1...
2018-01-04 15:15:44 8386 3
原创 shader之——溶解
描述 在网上看到很多溶解的例子 ,有个点不太好理解,就是溶解的边缘加上颜色过度,可以控制过度的宽度以及颜色值,今天来研究一下这个算法代码如下:Shader "Unlit/NewUnlitShader"{ Properties { _MainTex ("Texture", 2D) = "white" {} _Clip
2017-12-28 10:39:05 2419
原创 shader之——序列shader
描述 不用脚本,只用shader来实现序列动画代码如下Shader "Effects/XuLie"{ Properties { _MainTex ("Texture", 2D) = "white" {} _Color ("color",color) = (1,1,1,1) _AmountH ("...
2017-12-28 10:34:33 382
原创 shader之——湖水(河流倒影)
先上图1.水shaderShader "Game_XXX/whater" { Properties { _WaterTex ("Normal Map (RGB), Foam (A)", 2D) = "white" {} _WaterTex2 ("Normal Map (RGB), Foam (B)", 2D) = "white" {...
2017-12-28 10:27:51 3739 1
原创 shader之——rain
1.地面流水shaderShader "baicai/me02" { Properties { _MainTex ("MainTex", 2D) = "white" {} _Bump ("Bump", 2D) = "bump" {} _Bump02("Bump02",2D) = "Bump"{}
2017-12-28 10:17:54 751 5
原创 shader之——shadowGun代码分析
shadowGun是官方一个很早的demo,但是里面的东西真的是值得一学 1.烟火,大多数人都是选择粒子来做这样的烟火,在shadeGun中只是用了一个片搞定了如此真实的烟火,效率上面真的是比粒子好的不是一般的多。// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*...
2017-12-25 11:27:30 1063
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人