Unity Shader 热力图
Unity Shader 热力图
分享一下自己写的unity热力图shader,感觉有帮助的话请点赞。
可调节热点位置,传热衰变和传热半径 。
也可叠加多个热点
Shader "Zxj/热力图" {Properties{_CaiLiao("材料传热", Float) = 7_Radius("半径",Range(-1,1)) = 0_X("位置x", Float) = 0_Y("位置y", Float) = 0_Z("位置z", Float) = 0}SubShader{Pass {CGPROGRAM#pragma vertex vert#pragma fragment fraguniform float _CaiLiao;uniform float _Radius;uniform float _X;uniform float _Y;uniform float _Z;struct a2v {float4 vertex : POSITION;};struct v2f {float4 pos : SV_POSITION;float4 modelPos : TEXCOORD0;};v2f vert(a2v v) {v2f o;o.modelPos = v.vertex;o.pos = UnityObjectToClipPos(v.vertex);o.uv = v.texcoord;return o;}float drawCircle(float3 modelPos, float a, float b, float c) //用来画出一个球体{float D = distance(modelPos.xyz, float3(a,b,c)) * (1-_Radius);float Col =1 - D;return max(0,Col);}float3 colStep(float Col) //将包含在球体内的片段进行光谱着色{float3 finCol = float3(0, 0, 0);if (Col < 1 / _CaiLiao){finCol = float3(1, 0, 1);}else if (Col >= 1 / _CaiLiao, Col < 2 / _CaiLiao){finCol += float3(1 - (Col - 1 / _CaiLiao) * _CaiLiao, 0, 1);}else if (Col >= 2 / _CaiLiao, Col < 3 / _CaiLiao){finCol += float3(0, (Col - 2 / _CaiLiao) * _CaiLiao, 1);}else if (Col >= 3 / _CaiLiao, Col < 4 / _CaiLiao){finCol += float3(0, 1, 1 - (Col - 3 / _CaiLiao) * _CaiLiao);}else if (Col > 4 / _CaiLiao, Col < 5 / _CaiLiao){finCol += float3((Col - 4 / _CaiLiao) * _CaiLiao, 1, 0);}else{finCol += float3(1, 1 - (Col - 5 / _CaiLiao) * _CaiLiao, 0);}return finCol;}fixed4 frag(v2f i) : SV_Target {float Point = drawCircle(i.modelPos, _X, _Y, _Z);//Point += drawCircle(i.modelPos, 0, 0, .5);//这里可以添加热点float3 finCol = colStep(Point);return float4(finCol, 1.0);}ENDCG}}
}
Unity Shader 热力图相关推荐
- Unity Shader 阴影
最近在看Unity shader开发实战详解,刚开始看阴影部分,稍微有了点思路.在这里写点笔记,算是小结吧. .阴影实现方法 一种是通过模拟光照的原理,用向量的方法 找到被光线照射的点 映射到平面的位 ...
- Unity Shader入门精要学习笔记 - 第6章 开始 Unity 中的基础光照
转自冯乐乐的<Unity Shader入门精要> 通常来讲,我们要模拟真实的光照环境来生成一张图像,需要考虑3种物理现象. 首先,光线从光源中被发射出来. 然后,光线和场景中的一些物体相交 ...
- Unity shader学习之屏幕后期处理效果之高斯模糊
高斯模糊,见 百度百科. 也使用卷积来实现,每个卷积元素的公式为: 其中б是标准方差,一般取值为1. x和y分别对应当前位置到卷积中心的整数距离. 由于需要对高斯核中的权重进行归一化,即使所有权重相加 ...
- Unity Shader着色器优化
对游戏开发者而言,着色器长久以来就是游戏开发中的重要部分,在Unity中编写并实现着色器的过程直观且高效,优秀的着色器还可以创造非常精美的游戏画面,同时保证极高的性能.今天将由Unity的技术工程师张 ...
- vs unity shader插件_一些Shader资料
[Unity Shader] 常用的数值类型和语义 unity shader编辑器语法高亮插件 Unity Shader-法线贴图(Normal)及其原理 Unity 提供的CG/HLSL语义 (se ...
- Unity Shader 序列帧动画
shader中的序列帧动画属于纹理动画中的一种,主要原理是将给定的纹理进行等分,再根据时间的变化循环播放等分中的一部分. Unity Shader 内置时间变量 名称 类型 描述 _Time floa ...
- qnetworkreply 获取状态_谈谈Unity Shader中的采样器状态和(Texture Filtering)纹理滤波方式
参考文章: 使用采样器状态 - Unity 手册docs.unity3d.comhttps://blog.csdn.net/chenjinxian_3D/article/details/518169 ...
- Unity Shader 之 透明效果
本文引用 Unity Shader入门精要 开启透明混合后,一个物体被渲染到屏幕上时,每个片元除了颜色值和深度值外,还有--透明度.透明度为1,则完全不透明,透明度为0,则完全不会显示. 在Unity ...
- unity shader入门精要_Unity Shader 入门(一):渲染流水线
一.参考与说明(需要写在开始东西): 1.1 Unity Shader 入门紧要学习 candycat1992/Unity_Shaders_Bookgithub.com 1.2 还有一些图形学的历史 ...
最新文章
- Android应用开发基础篇(9)-----SharedPreferences
- asp.net mysql 事务_ASP.NET里的事务处理(ado.net 数据库应用)
- C语言字符串库函数api
- 初学者应该如何开启自己的编程生涯?,nginx架构图
- ack过来服务器未响应,DHCP服务器问题:抓不到ACK包
- CSS-Box模型--理解与整理
- BZOJ.2595.[WC2008]游览计划(DP 斯坦纳树)
- 传感器原理与应用复习—电阻式应变传感器部分
- Rational Rose 7.0安装及科学使用教程
- Word删除指定一页的页码
- 【上电即上华为云】华为云openCPU智联模组_wifi_HF-LPX70_RISC-V_CoAP
- FPGA 学习笔记(十一) VGA驱动的实现
- docker ADD命令的用法
- 消息队列之kafka在虚拟机安装使用与整合springboot详解教程
- 2020蚂蚁森林自动收能量-保持更新
- android recovery分区内刷镜像,Android手机Recovery模式取证方法研究.pdf
- 画论20 郭熙《林泉高致集》
- 小说 · 凉生,我们可不可以不忧伤
- JQuery | JQuery语言 | JQuery基础 | JQuery语言基础
- 软件测试:保障软件质量的关键性关口——记中国工商银行软件开发中心北京研发_manok_新浪博客...