【shaderforge学习笔记】 Parallax节点(视差节点)
shaderforge Parallax节点
一、官方说明
Parallax节点输出的uv是输入的uv经过视差偏移的得到结果,其中视差偏移程由[Hei]指定,[Hei]在计算偏移量时有两个相关参数:深度[Dep]和基准高度[Ref]。
高度图0(白色)对应的部位会凸出来。
高度图1(黑色)对应的部位会凹进去。
二、节点输入
1.UV
物体的uv坐标信息,shaderforge提供一个数据节点[UV Coord.]用于提供物体的uv信息
2.Hei
视差高度值
3. Dep
视差公式的参数之一,默认值为0.05
4. Ref
视差公式的参数之一,默认值为0.5
三、节点输出
1.UV
变换后的uv坐标信息
四、小应用-使用视差贴图实现凹凸效果
使用高度图的R通道值作为[Hei]的输入数据
高度图0(白色)对应的部位会凸出来。
高度图1(黑色)对应的部位会凹进去。
五、Unityshader实现Parallax节点
视差贴图,和法线贴图都是用于制作凹凸效果。与法线贴图不同,视差效果不依赖于光照。
写法:
Shader "Hidden/Parallax"
{Properties{_MainTex ("Texture", 2D) = "white" {}_GreyTex("GreyScale Texture", 2D) = "white" {}_Hei("Hei", Float) = 1.0_Dep("Dep", Float) = 0.05_Ref("Ref", Float) = 0.5//未选中时使用_Hei作为时差值, 选中时视差值从灰度图提取(_Hei失效)[Toggle]_USEGREYTEX("USE GreyScale?", INT) = 0}SubShader{Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#pragma shader_feature _USEGREYTEX_ON#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;float3 normal: NORMAL;float4 tangent: TANGENT;};struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;float3 normalDir : TEXCOORD1;float3 tangentDir : TEXCOORD2;float3 bitangentDir : TEXCOORD3;float4 posWorld : TEXCOORD4;};v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = v.uv;o.normalDir = UnityObjectToWorldNormal(v.normal);o.tangentDir = normalize(mul(unity_ObjectToWorld,float4(v.tangent.xyz,0.0)).xyz);o.bitangentDir = normalize(cross(o.normalDir,o.tangentDir)*v.tangent.w);o.posWorld = mul(unity_ObjectToWorld, v.vertex);return o;}sampler2D _MainTex;sampler2D _GreyTex;float _Hei;float _Dep;float _Ref;fixed4 frag (v2f i) : SV_Target{i.normalDir = normalize(i.normalDir);float3x3 tangentTransfrom = float3x3(i.tangentDir, i.bitangentDir, i.normalDir);float3 viewDirection = normalize(_WorldSpaceCameraPos.xyz - i.posWorld.xyz);float3 normalDirection = i.normalDir;#if _USEGREYTEX_ON_Hei = tex2D(_GreyTex,i.uv).r;#endiffloat2 uvNew = (_Dep*(_Hei-_Ref))*mul(tangentTransfrom, viewDirection).xy + i.uv;fixed4 col = tex2D(_MainTex, uvNew);return col;}ENDCG}}
}
效果展示
参考:
Parallax Mapping
【shaderforge学习笔记】 Parallax节点(视差节点)相关推荐
- .net学习笔记----WebConfig常用配置节点介绍
一.配置文件入门 .Net提供了一种保存项目配置信息的办法,就是利用配置文件,配置文件的后缀一般是.config.在WinForm程序中配置文件一般是App.config.在Asp.net中一般默认是 ...
- 【shaderforge学习笔记】 Rotator节点
ShaderForge Rotator节点 一.节点介绍 旋转器 输出的是输入的uv以[piv]为锚点旋转后[ang] (单位为弧度)的uv信息.如果ang没有连线,或者ang连线到time节点上,那 ...
- 【shaderforge学习笔记】 UVTile节点
shaderforge UVTile节点 一. 介绍 UVTile UVTile可以用来以uv坐标为基准在一个纹理中取到其中一块的贴图. [UV]是整个贴图的UV值 [Wid]指定沿tilemap的x ...
- 【shaderforge学习笔记】 Hue节点(色相节点)
shaderforge 色相节点 一.官方说明 根据Hue值输出RGB值,换句话说Hue节点的作用是,将Hue值转为相应的RGB值. 二.节点输入 Hue值 Hue节点输入值的[0,1]对应色相轮的[ ...
- The Things Network LoRaWAN Stack V3 学习笔记 2.5 LoRa节点配置接入
前言 网关接入之后,再让节点接入.本篇笔记重点记录一些小坑,注意跳过. 小能手这段时间在学习 The Things Network LoRaWAN Stack V3,从使用和代码等角度对该 Stack ...
- MySQL学习笔记-B站动力节点
文章目录 MySQL Day1 1.概述 2.sql.DB.DBMS分别是什么?他们之间的关系? 3.表 4.sql语句分类 5.导入数据 6.sql脚本 7.删除数据库命令 8.查看表结构 9.查看 ...
- JavaScript学习笔记-B站动力节点
文章目录 1.1.什么是JavaScript,有什么用? 1.2.HTML,CSS,JavaSript三者关系 2.在HTML中怎么嵌入JavaScript代码? 3.JS的标识符和关键字 4.关于J ...
- html学习笔记-B站动力节点
文章目录 1.系统结构介绍 2.软件环境准备 3.什么是HTML?怎么开发HTML?怎么运行HTML? 4.HTML是谁制定的? 5.我的第一个HTML 6.HTML的基本标签 7.HTML的实体符号 ...
- 数据结构学习笔记4.1--查找节点
有序数组的优点: 在有序数组中查找数据可以用二分查找法,用这个方法在查找时效率很高,所需时间是0(logN), 然而在插入或者删除数据时,需要平均移动N/2项数据,如果需要做很多的插入删除操作,就不应 ...
最新文章
- JDK 13 的最新垃圾回收器ZGC,你了解多少?
- 【零基础】Python的入门学习
- php 输入内容类型,实例解析php的数据类型
- java home not set_Error: JAVA_HOME is not set and could not be found.
- CF372D. Choosing Subtree is Fun
- python 字节码 优化_字节码优化
- 计算机网络实验报告西南科技大学,西南科技大学计算机网络-实验二.docx
- java基础面试题之:switch的参数类型
- 西昌学院计算机科学与技术好不好,西昌学院好不好评价怎么样
- Flask Flash
- 灵活强大的MySQL代理中间件ProxySQL应用实战(2)
- 首份“中国大数据的社会经济价值研究报告”发布
- 指定的網域的名稱或安全性識別碼(用磁碟映像檔部署的電腦無法加入AD網域 )...
- Report Service 为用户“NT AUTHORITY、NETWORK SERVICE”授予的权限不足,无法进行此操作。(rsAccessDenied)处理...
- 构建自己的不可替代性
- 电商后台管理系统(一)
- js正则表达式的创建、边界符、量词符
- matlab三踪示波器,3.2 示波器CSV数据导入MATLAB
- pygame笔记(更新中
- 【视野】解密腾讯完整前端技术体系
热门文章
- Spring Cloud底层原理以及项目实战分析
- 名帖308 梁诗正 行书《行书帖选》
- sum()函数和count()函数的区别
- DIL中基本数据类型
- 服务器重装系统鼠标没反应,重装系统鼠标键盘不能用怎么解决-重装系统鼠标键盘失灵的解决方法 - 河东软件园...
- activity串行多实例审批
- 【解题】核电站问题(SGOI)
- 我学ERP 之 金蝶ERP-K3_第4章 销售管理
- 计算机启动后桌面上什么都没有,电脑开机后,桌面上什么都没有了?我怎么处理?好着急啊...
- python ip动态代理_动态代理服务器