冰shader_干货 | UnityShader Demo01之冰块材质
原标题:干货 | 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之冰块材质相关推荐
- Unityshader实例01:冰块材质
简单版本 效果如下 原理 使用法线贴图扭曲透明颜色贴图的uv值 Shader 代码1 Shader"PengLu/normal/iceTrans" { Properties {_C ...
- maya 阿诺德水晶材质_MAYA阿诺德基础材质(冰块材质)MAYA学习笔记
冰块材质是透明的,有很高的高光.有折射.有一定的焦散. 创建一个阿诺德基础材质球. 冰块材质是透明的.没有颜色,所以没有表面颜色.,在漫反射(diffuse)里把颜色(color)设置成黑色. 在高光 ...
- maya 阿诺德水晶材质_阿诺德基础材质(冰块材质)
环境球背景取消:primary visibility 着色器:shader 环境球亮度调节:intensity FEVTE编注:更多MAYA渲染教程讨论交流和MAYA相关知识学习请进入飞特网MAYA教 ...
- 如何用UE4制作假透明冰块材质
冰块是大家生活中必不可少的东西,但是要在引擎中还原出冰块的质感和物理属性却是比较困难的,我这边也只是用了些简单的方法进行模拟,下面就给大家讲下制作流程.先给大家看几张近距离的图片. 较为透明的冰 透明 ...
- 卡通冰材质的简单实现
卡通冰材质的简单实现 参考示例: 崩坏三冰律Boss中的冰块效果 塞尔达荒野之息中的冰材质 实现效果 实现思路 材质-1: 查看动图可以发现材质是半透材质然后由两层闪烁的亮部(一层较亮,一层较暗).一 ...
- 【C4D】材质+渲染自学宝典(纯干货)
C4D渲染百度搜索[渲染101] 1.金属材质制造 C4D OC 高级金属材质教程 https://www.bilibili.com/video/BV1Gb411T74U?from=search&am ...
- 《惢客创业日记》2019.01.08(周二)四个小孩在砸冰
今天中午,我去路边的饭店吃炒刀削面,走到村口,看见四个刚下学的小学生在路边玩.由于这几天特别的冷,在村口的马路边有一摊水结成了冰.路过的人还都怕滑倒而绕开,而这四个小学生则绕有兴趣的用砖头砸冰玩,本来 ...
- UnityShader实例17:屏幕特效之碎屏特效
碎屏特效 概述 在前公司,由于工作项目的原因,需要在unity实现一个类似狂野飙车8 ,撞车翻车后的碎屏效果(如下图),从图可以看出,该特效除了碎屏的效果外还有个降低饱和度的操作,接下来 ...
- UE5——材质学习笔记(1)
前言:本系列笔记记录UE上各种常见材质的制作方法: 文章目录 1.失真(水流扰动)材质 说明 分析 texCoord节点 2.动画材质 说明 分析 flipbook节点 frac节点 floor节点 ...
最新文章
- linux脚本实现scp命令自动输入密码和yes/no等确认信息
- c语言oj合法标识符,YTUOJ-C语言合法标识符
- leetcode —— 面试题29. 顺时针打印矩阵
- jQuery 学习笔记 事件委派
- UnityShader20.1:CommandBuffer初见(下)
- 区间合数的最小公倍数(质数+因数分解)
- JS弹出框插件zDialog再次封装
- 统计某个路径下的总文件个数,及总行数(不含空行)
- 解读畅捷通微服务治理能力提升之路
- 如何把 Excel 写入数据库
- Spring框架学习记录二:装配Bean
- 服务器 备份 本地文件,云服务器备份本地文件
- 将不同数据来源的ggplot图绘制到同一张图中,并添加统一的图例
- 游戏对战平台搭建要选什么服务器
- boto3使用教程用法
- SAP Portfolio Analyzer 中 索提诺比率(Sortino Ratio)
- mysql 值很少的索引_关于 Mysql 字段值分布很少的字段要不要加索引的问题.
- 西安市中考计算机技术,2021年西安市中考信息技术练习题(三)
- 分支定界法 python_分支定界法
- Gunicorn ImportError: cannot import name ‘ALREADY_HANDLED‘ from ‘eventlet.wsgi‘
热门文章
- Notepad++中格式化html代码的插件tidy2的下载与安装
- Java 文本检索神器 “正则表达式“
- excel表格如何转换成word表格_Excel表格粘到Word中,全乱了!
- 服务器能不能用普通硬盘,服务器硬盘和普通硬盘区别 服务器硬盘比普通硬盘贵在哪?...
- 《迷失岛2》游戏开发框架开发日记:背包基本逻辑
- 如何实现chatgpt的打字机效果
- linux命令userdel,linux userdel 命令的使用
- 非计算机转后台开发并入职字节跳动(四)--再回业务后台开发,头条工作体验
- 十款你一定要知道的小众软件
- [贝聊科技]使用Android Studio和MAT进行内存泄漏分析