原标题:干货 | 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. linux脚本实现scp命令自动输入密码和yes/no等确认信息
  2. c语言oj合法标识符,YTUOJ-C语言合法标识符
  3. leetcode —— 面试题29. 顺时针打印矩阵
  4. jQuery 学习笔记 事件委派
  5. UnityShader20.1:CommandBuffer初见(下)
  6. 区间合数的最小公倍数(质数+因数分解)
  7. JS弹出框插件zDialog再次封装
  8. 统计某个路径下的总文件个数,及总行数(不含空行)
  9. 解读畅捷通微服务治理能力提升之路
  10. 如何把 Excel 写入数据库
  11. Spring框架学习记录二:装配Bean
  12. 服务器 备份 本地文件,云服务器备份本地文件
  13. 将不同数据来源的ggplot图绘制到同一张图中,并添加统一的图例
  14. 游戏对战平台搭建要选什么服务器
  15. boto3使用教程用法
  16. SAP Portfolio Analyzer 中 索提诺比率(Sortino Ratio)
  17. mysql 值很少的索引_关于 Mysql 字段值分布很少的字段要不要加索引的问题.
  18. 西安市中考计算机技术,2021年西安市中考信息技术练习题(三)
  19. 分支定界法 python_分支定界法
  20. Gunicorn ImportError: cannot import name ‘ALREADY_HANDLED‘ from ‘eventlet.wsgi‘

热门文章

  1. Notepad++中格式化html代码的插件tidy2的下载与安装
  2. Java 文本检索神器 “正则表达式“
  3. excel表格如何转换成word表格_Excel表格粘到Word中,全乱了!
  4. 服务器能不能用普通硬盘,服务器硬盘和普通硬盘区别 服务器硬盘比普通硬盘贵在哪?...
  5. 《迷失岛2》游戏开发框架开发日记:背包基本逻辑
  6. 如何实现chatgpt的打字机效果
  7. linux命令userdel,linux userdel 命令的使用
  8. 非计算机转后台开发并入职字节跳动(四)--再回业务后台开发,头条工作体验
  9. 十款你一定要知道的小众软件
  10. [贝聊科技]使用Android Studio和MAT进行内存泄漏分析