2014-06-25 16:39:59 xiaodiao062 阅读数 1277
  • ShaderGraph从入门到实战

    大智和你一起学习ShaderGraph,在实战中探索。 课程内容 ShaderGraph的基本使用 丰富的实战案例: · 全息效果 · 边缘光效果 ·  溶解效果 · 积雪效果 · 扭曲效果 · 干扰效果 · 流光效果 · 石化效果 · 顶点动画:跳动的小球 · 游动的龙鱼 · 小草摇曳效果 · 海面效果 ·  水晶效果 · 裂缝的冰面效果 · 自定义节点的用法及改造裂缝的冰块 · 云海效果 · 雨滴涟漪效果 · 卡通渲染 所需前置知识 安装好Unity即可

    729 人正在学习 去看看 郑洪智


之前曾经注意过Material中纹理的属性都有TilingOffset,但没有深究过其用途,今天才知道竟然可以利用Offsetuv动画,从而完成各种有趣的动画,比如流光效果!

流过效果即通常一条高光光在物体上划过,模拟高光移动照射物体的效果,之前是使用Shader每帧传递一个Offset值,修改高光纹理采样的uv,从而达到其效果。这样的敝处在于需要自己实现Shader,简单的同一速度移动是很容易实现的,如果希望移动随度是变化的,则需要自己实现对速度曲线的解析(并传递给Shader)达到此目的。

没想到一直用来作位移动作,骨骼动作的Animation竟也有此功能!

下图中即为Animation对于物体的渲染方面可以做的操作(Unity 4.3版本和4.2略有不同

Shader部分,有两张纹理,分别是底图和高光图,这里需要注意的是如果要移动uv,则必须声明其ST属性,这样才可以通过内置方法TRANSFORM_TEX()计算uv偏移了Shader如下


这里只使用了一种很简单的算法计算最终的颜色值,即将高光覆盖底图颜色增加高光alpha倍,可根据需求设计计算方法!

在动画的关键帧中,根据美术需求设计曲线,如图


运行效果如图


注意此方法不能应用于NGUI,因为NGUI其组织顶点方式与普通物体不同!

2014-02-25 23:12:00 iteye_12028 阅读数 73
  • ShaderGraph从入门到实战

    大智和你一起学习ShaderGraph,在实战中探索。 课程内容 ShaderGraph的基本使用 丰富的实战案例: · 全息效果 · 边缘光效果 ·  溶解效果 · 积雪效果 · 扭曲效果 · 干扰效果 · 流光效果 · 石化效果 · 顶点动画:跳动的小球 · 游动的龙鱼 · 小草摇曳效果 · 海面效果 ·  水晶效果 · 裂缝的冰面效果 · 自定义节点的用法及改造裂缝的冰块 · 云海效果 · 雨滴涟漪效果 · 卡通渲染 所需前置知识 安装好Unity即可

    729 人正在学习 去看看 郑洪智

游戏开发论坛:Hello Game

游戏开发群:201276069


之前曾经注意过Material中纹理的属性都有TilingOffset,但没有深究过其用途,今天才知道竟然可以利用Offsetuv动画,从而完成各种有趣的动画,比如流光效果!

流过效果即通常一条高光光在物体上划过,模拟高光移动照射物体的效果,之前是使用Shader每帧传递一个Offset值,修改高光纹理采样的uv,从而达到其效果。这样的敝处在于需要自己实现Shader,简单的同一速度移动是很容易实现的,如果希望移动随度是变化的,则需要自己实现对速度曲线的解析(并传递给Shader)达到此目的。

没想到一直用来作位移动作,骨骼动作的Animation竟也有此功能!

下图中即为Animation对于物体的渲染方面可以做的操作(Unity4.3版本和4.2略有不同

Shader部分,有两张纹理,分别是底图和高光图,这里需要注意的是如果要移动uv,则必须声明其ST属性,这样才可以通过内置方法TRANSFORM_TEX()计算uv偏移了Shader如下


这里只使用了一种很简单的算法计算最终的颜色值,即将高光覆盖底图颜色增加高光alpha倍,可根据需求设计计算方法!

在动画的关键帧中,根据美术需求设计曲线,如图


运行效果如图


注意此方法不能应用于NGUI,因为NGUI其组织顶点方式与普通物体不同!

附件下载

2014-08-21 16:34:47 lymanioi 阅读数 3648
  • ShaderGraph从入门到实战

    大智和你一起学习ShaderGraph,在实战中探索。 课程内容 ShaderGraph的基本使用 丰富的实战案例: · 全息效果 · 边缘光效果 ·  溶解效果 · 积雪效果 · 扭曲效果 · 干扰效果 · 流光效果 · 石化效果 · 顶点动画:跳动的小球 · 游动的龙鱼 · 小草摇曳效果 · 海面效果 ·  水晶效果 · 裂缝的冰面效果 · 自定义节点的用法及改造裂缝的冰块 · 云海效果 · 雨滴涟漪效果 · 卡通渲染 所需前置知识 安装好Unity即可

    729 人正在学习 去看看 郑洪智



Unity3D 官网商店链接

http://u3d.as/content/lyman-cao/light-flow

2018-05-07 17:53:02 yuyingwin 阅读数 1568
  • ShaderGraph从入门到实战

    大智和你一起学习ShaderGraph,在实战中探索。 课程内容 ShaderGraph的基本使用 丰富的实战案例: · 全息效果 · 边缘光效果 ·  溶解效果 · 积雪效果 · 扭曲效果 · 干扰效果 · 流光效果 · 石化效果 · 顶点动画:跳动的小球 · 游动的龙鱼 · 小草摇曳效果 · 海面效果 ·  水晶效果 · 裂缝的冰面效果 · 自定义节点的用法及改造裂缝的冰块 · 云海效果 · 雨滴涟漪效果 · 卡通渲染 所需前置知识 安装好Unity即可

    729 人正在学习 去看看 郑洪智
Shader "Custom/LogoFlas" {
Properties {

_MainTex ("Base (RGB)", 2D) = "white" {}
_FlashColor ("Flash Color", Color) = (1,1,1,1)

_Angle ("Flash Angle", Range(0, 180)) = 45


_Width ("Flash Width", Range(0, 1)) = 0.2

_LoopTime ("Loop Time", Float) = 1

_Interval ("Time Interval", Float) = 3

//_BeginTime ("Begin Time", Float) = 2

}

SubShader

{

Tags { "Queue"="Transparent" "RenderType"="Transparent" }

CGPROGRAM

#pragma surface surf Lambert alpha exclude_path:prepass noforwardadd

//        #pragma target 3.0

sampler2D _MainTex;

float4 _FlashColor;

float _Angle;

float _Width;


float _LoopTime;

float _Interval;

//float _BeginTime;

struct Input

{

half2 uv_MainTex;

} ;

float inFlash(half2 uv)

{

float brightness = 0;

float angleInRad = 0.0174444 * _Angle;

float tanInverseInRad = 1.0 / tan(angleInRad);

float currentTime = _Time.y;

float totalTime = _Interval + _LoopTime;

float currentTurnStartTime = (int)((currentTime / totalTime)) * totalTime;


float currentTurnTimePassed = currentTime - currentTurnStartTime - _Interval;

bool onLeft = (tanInverseInRad > 0);

float xBottomFarLeft = onLeft? 0.0 : tanInverseInRad;

float xBottomFarRight = onLeft? (1.0 + tanInverseInRad) : 1.0;

float percent = currentTurnTimePassed / _LoopTime;


float xBottomRightBound = xBottomFarLeft + percent * (xBottomFarRight - xBottomFarLeft);
float xBottomLeftBound = xBottomRightBound - _Width;

float xProj = uv.x + uv.y * tanInverseInRad;

if(xProj > xBottomLeftBound && xProj < xBottomRightBound)

{
brightness = 1.0 - abs(2.0 * xProj - (xBottomLeftBound + xBottomRightBound)) / _Width;
// brightness = 1.0 – abs(2.0 * xProj – (xBottomLeftBound + xBottomRightBound)) / _Width;

}

return brightness;

}

void surf (Input IN, inout SurfaceOutput o)

{

half4 texCol = tex2D(_MainTex, IN.uv_MainTex);

float brightness = inFlash(IN.uv_MainTex);


o.Albedo = texCol.rgb + _FlashColor.rgb * brightness;

o.Alpha = texCol.a;


}


ENDCG

}

FallBack "Unlit/Transparent"

}
2014-05-22 14:03:06 yuzhongyangood 阅读数 562
  • ShaderGraph从入门到实战

    大智和你一起学习ShaderGraph,在实战中探索。 课程内容 ShaderGraph的基本使用 丰富的实战案例: · 全息效果 · 边缘光效果 ·  溶解效果 · 积雪效果 · 扭曲效果 · 干扰效果 · 流光效果 · 石化效果 · 顶点动画:跳动的小球 · 游动的龙鱼 · 小草摇曳效果 · 海面效果 ·  水晶效果 · 裂缝的冰面效果 · 自定义节点的用法及改造裂缝的冰块 · 云海效果 · 雨滴涟漪效果 · 卡通渲染 所需前置知识 安装好Unity即可

    729 人正在学习 去看看 郑洪智

转载:http://blog.csdn.net/oneRain88/article/details/19939181

 

游戏开发论坛:Hello Game

游戏开发群:201276069


之前曾经注意过Material中纹理的属性都有TilingOffset,但没有深究过其用途,今天才知道竟然可以利用Offsetuv动画,从而完成各种有趣的动画,比如流光效果!

流过效果即通常一条高光光在物体上划过,模拟高光移动照射物体的效果,之前是使用Shader每帧传递一个Offset值,修改高光纹理采样的uv,从而达到其效果。这样的敝处在于需要自己实现Shader,简单的同一速度移动是很容易实现的,如果希望移动随度是变化的,则需要自己实现对速度曲线的解析(并传递给Shader)达到此目的。

没想到一直用来作位移动作,骨骼动作的Animation竟也有此功能!

下图中即为Animation对于物体的渲染方面可以做的操作(Unity 4.3版本和4.2略有不同

 

 

Shader部分,有两张纹理,分别是底图和高光图,这里需要注意的是如果要移动uv,则必须声明其ST属性,这样才可以通过内置方法TRANSFORM_TEX()计算uv偏移了Shader如下


 

这里只使用了一种很简单的算法计算最终的颜色值,即将高光覆盖底图颜色增加高光alpha倍,可根据需求设计计算方法!

 

在动画的关键帧中,根据美术需求设计曲线,如图

 

 


运行效果如图

 


注意此方法不能应用于NGUI,因为NGUI其组织顶点方式与普通物体不同!

附件下载

没有更多推荐了,返回首页