原标题:干货 | UnityShader Demo01之冰块材质

原理——使用法线贴图扭曲透明颜色贴图的uv值。

代码如下:

Shader"PengLu/normal/iceTrans" {

Properties {

_Color ("Main Color", Color) = (1,1,1,1)

_MainTex ("BaseTex ", 2D) = "white" {}

_BumpMap ("Normalmap", 2D) = "bump" {}

_BumpAmt ("Distortion", range (0,2)) = 0.1

}

SubShader {

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

ZWrite off

CGPROGRAM

#pragma surface surfLambert nolightmap nodirlightmap alpha:blend

sampler2D _BumpMap;

sampler2D _MainTex;

float4 _Color;

float _BumpAmt;

struct Input {

float2 uv_MainTex;

float2 uv_BumpMap;

};

void surf (Input IN,inout SurfaceOutput o) {

fixed3 nor = UnpackNormal (tex2D(_BumpMap, IN.uv_BumpMap));

fixed4 trans =tex2D(_MainTex,IN.uv_MainTex+nor.xy*_BumpAmt)*_Color;

o.Albedo = trans.rgb;

o.Alpha =trans.a;

o.Emission = trans;

}

ENDCG

}

FallBack"Transparent/VertexLit"

}

surface版本 shader代码:

Shader "PengLu/Custom/iceRefrationSurf" {

Properties {

_Color ("Main Color", Color) = (1,1,1,1)

_MainTex ("BaseTex", 2D) = "white" {}

_BumpMap ("Normalmap", 2D) = "bump" {}

_BumpAmt ("Distortion", range (0,1)) = 0.12

}

SubShader {

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

ZWrite off

Lighting off

GrabPass {

Name "BASE"

Tags { "LightMode" = "Always" }

}

CGPROGRAM

#pragma surface surf Lambert nolightmap nodirlightmap

#pragma target 3.0

#pragma debug

float4 _Color;

sampler2D _MainTex;

sampler2D _BumpMap;

sampler2D _GrabTexture;

float _BumpAmt;

struct Input {

float2 uv_MainTex;

float2 uv_BumpMap;

float4 screenPos;

};void surf (Input IN, inout SurfaceOutput o) {

fixed3 nor = UnpackNormal (tex2D(_BumpMap, IN.uv_BumpMap));

fixed4 col = tex2D(_MainTex,IN.uv_MainTex);

float4 screenUV2 = IN.screenPos;

screenUV2.xy = screenUV2.xy / screenUV2.w;

screenUV2.xy += nor.xy * _BumpAmt;

fixed4 trans = tex2D(_GrabTexture,screenUV2.xy)*_Color;

trans*=col;

o.Albedo = trans.rgb;

o.Emission = trans.rgb;}

ENDCG

}

FallBack "Transparent/VertexLit"

}

surface版本目前还有问题,在编辑视图里面结果是对的,但是再camera显示不正确。暂时能力不够没找到方法修改。

责任编辑:

冰shader_干货 | UnityShader Demo01之冰块材质相关推荐

  1. Unityshader实例01:冰块材质

    简单版本 效果如下 原理 使用法线贴图扭曲透明颜色贴图的uv值 Shader 代码1 Shader"PengLu/normal/iceTrans" { Properties {_C ...

  2. maya 阿诺德水晶材质_MAYA阿诺德基础材质(冰块材质)MAYA学习笔记

    冰块材质是透明的,有很高的高光.有折射.有一定的焦散. 创建一个阿诺德基础材质球. 冰块材质是透明的.没有颜色,所以没有表面颜色.,在漫反射(diffuse)里把颜色(color)设置成黑色. 在高光 ...

  3. maya 阿诺德水晶材质_阿诺德基础材质(冰块材质)

    环境球背景取消:primary visibility 着色器:shader 环境球亮度调节:intensity FEVTE编注:更多MAYA渲染教程讨论交流和MAYA相关知识学习请进入飞特网MAYA教 ...

  4. 如何用UE4制作假透明冰块材质

    冰块是大家生活中必不可少的东西,但是要在引擎中还原出冰块的质感和物理属性却是比较困难的,我这边也只是用了些简单的方法进行模拟,下面就给大家讲下制作流程.先给大家看几张近距离的图片. 较为透明的冰 透明 ...

  5. 卡通冰材质的简单实现

    卡通冰材质的简单实现 参考示例: 崩坏三冰律Boss中的冰块效果 塞尔达荒野之息中的冰材质 实现效果 实现思路 材质-1: 查看动图可以发现材质是半透材质然后由两层闪烁的亮部(一层较亮,一层较暗).一 ...

  6. 【C4D】材质+渲染自学宝典(纯干货)

    C4D渲染百度搜索[渲染101] 1.金属材质制造 C4D OC 高级金属材质教程 https://www.bilibili.com/video/BV1Gb411T74U?from=search&am ...

  7. 《惢客创业日记》2019.01.08(周二)四个小孩在砸冰

    今天中午,我去路边的饭店吃炒刀削面,走到村口,看见四个刚下学的小学生在路边玩.由于这几天特别的冷,在村口的马路边有一摊水结成了冰.路过的人还都怕滑倒而绕开,而这四个小学生则绕有兴趣的用砖头砸冰玩,本来 ...

  8. UnityShader实例17:屏幕特效之碎屏特效

    碎屏特效 概述        在前公司,由于工作项目的原因,需要在unity实现一个类似狂野飙车8 ,撞车翻车后的碎屏效果(如下图),从图可以看出,该特效除了碎屏的效果外还有个降低饱和度的操作,接下来 ...

  9. UE5——材质学习笔记(1)

    前言:本系列笔记记录UE上各种常见材质的制作方法: 文章目录 1.失真(水流扰动)材质 说明 分析 texCoord节点 2.动画材质 说明 分析 flipbook节点 frac节点 floor节点 ...

最新文章

  1. oracle数据库 export,转:Oracle数据库的备份方法——使用export作为备份
  2. ida so 不root_十字符病毒,杀不死的小强,一次云服务器沦陷实录
  3. 让Exchange 2010 (2007适用)可以收发外部邮件
  4. yii2 gradview 输出当前时间和图片
  5. bzoj 3224 Tyvj 1728 普通平衡树
  6. UML中关联,聚合,组合的区别及C++实现
  7. python-day2
  8. 卡内基·梅隆大学新提出AdaScale:自适应缩放实现视频对象实时检测算法
  9. 8g ubuntu 树莓派4b_树莓派4B如何安装ubuntu20.04
  10. Python学习路线汇总,必看
  11. 你家的猫也能来段东北话了:快手快影一键「智能配音」,三种方言随意换,还能配出《舌尖》风...
  12. STM32L051测试 (四、Flash和EEPROM的读写)
  13. silvaco器件仿真bug整理
  14. 银行系统数据流图-盒图-软件结构图对应一例
  15. centos 删除服务器文件夹,centos彻底删除文件夹、文件命令
  16. 无线传感器部署的连接性架构和协议选项
  17. word论文封面下划线对齐
  18. 给儿子讲美国独立战争
  19. gmap实现地图的旋转
  20. 简述多媒体计算机的关键技术及其主要应用领域,多媒体复习题

热门文章

  1. Linux 配置 SVN自动发送邮件
  2. 周期性定时备份及邮件通知管理员
  3. KKB: 数据表的操作
  4. org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to localhost:9876 failed
  5. vue-router3 源码注释系列 /src/util/scroll.js
  6. Android防微信表情功能
  7. WebStudy-CSS学习2
  8. 园区定位导航系统——提供人员路线指引,打造信息化新型园区
  9. excel公式单元格注释_如何在Excel中隐藏注释,公式,溢出文本和网格线
  10. java中的特殊文件、日志技术、多线程入门