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 热力图相关推荐

  1. Unity Shader 阴影

    最近在看Unity shader开发实战详解,刚开始看阴影部分,稍微有了点思路.在这里写点笔记,算是小结吧. .阴影实现方法 一种是通过模拟光照的原理,用向量的方法 找到被光线照射的点 映射到平面的位 ...

  2. Unity Shader入门精要学习笔记 - 第6章 开始 Unity 中的基础光照

    转自冯乐乐的<Unity Shader入门精要> 通常来讲,我们要模拟真实的光照环境来生成一张图像,需要考虑3种物理现象. 首先,光线从光源中被发射出来. 然后,光线和场景中的一些物体相交 ...

  3. Unity shader学习之屏幕后期处理效果之高斯模糊

    高斯模糊,见 百度百科. 也使用卷积来实现,每个卷积元素的公式为: 其中б是标准方差,一般取值为1. x和y分别对应当前位置到卷积中心的整数距离. 由于需要对高斯核中的权重进行归一化,即使所有权重相加 ...

  4. Unity Shader着色器优化

    对游戏开发者而言,着色器长久以来就是游戏开发中的重要部分,在Unity中编写并实现着色器的过程直观且高效,优秀的着色器还可以创造非常精美的游戏画面,同时保证极高的性能.今天将由Unity的技术工程师张 ...

  5. vs unity shader插件_一些Shader资料

    [Unity Shader] 常用的数值类型和语义 unity shader编辑器语法高亮插件 Unity Shader-法线贴图(Normal)及其原理 Unity 提供的CG/HLSL语义 (se ...

  6. Unity Shader 序列帧动画

    shader中的序列帧动画属于纹理动画中的一种,主要原理是将给定的纹理进行等分,再根据时间的变化循环播放等分中的一部分. Unity Shader 内置时间变量 名称 类型 描述 _Time floa ...

  7. qnetworkreply 获取状态_谈谈Unity Shader中的采样器状态和(Texture Filtering)纹理滤波方式

    参考文章: 使用采样器状态 - Unity 手册​docs.unity3d.comhttps://blog.csdn.net/chenjinxian_3D/article/details/518169 ...

  8. Unity Shader 之 透明效果

    本文引用 Unity Shader入门精要 开启透明混合后,一个物体被渲染到屏幕上时,每个片元除了颜色值和深度值外,还有--透明度.透明度为1,则完全不透明,透明度为0,则完全不会显示. 在Unity ...

  9. unity shader入门精要_Unity Shader 入门(一):渲染流水线

    一.参考与说明(需要写在开始东西): 1.1 Unity Shader 入门紧要学习 candycat1992/Unity_Shaders_Book​github.com 1.2 还有一些图形学的历史 ...

最新文章

  1. Android应用开发基础篇(9)-----SharedPreferences
  2. asp.net mysql 事务_ASP.NET里的事务处理(ado.net 数据库应用)
  3. C语言字符串库函数api
  4. 初学者应该如何开启自己的编程生涯?,nginx架构图
  5. ack过来服务器未响应,DHCP服务器问题:抓不到ACK包
  6. CSS-Box模型--理解与整理
  7. BZOJ.2595.[WC2008]游览计划(DP 斯坦纳树)
  8. 传感器原理与应用复习—电阻式应变传感器部分
  9. Rational Rose 7.0安装及科学使用教程
  10. Word删除指定一页的页码
  11. 【上电即上华为云】华为云openCPU智联模组_wifi_HF-LPX70_RISC-V_CoAP
  12. FPGA 学习笔记(十一) VGA驱动的实现
  13. docker ADD命令的用法
  14. 消息队列之kafka在虚拟机安装使用与整合springboot详解教程
  15. 2020蚂蚁森林自动收能量-保持更新
  16. android recovery分区内刷镜像,Android手机Recovery模式取证方法研究.pdf
  17. 画论20 郭熙《林泉高致集》
  18. 小说 · 凉生,我们可不可以不忧伤
  19. JQuery | JQuery语言 | JQuery基础 | JQuery语言基础
  20. 软件测试:保障软件质量的关键性关口——记中国工商银行软件开发中心北京研发_manok_新浪博客...

热门文章

  1. SIFT特征提取+匹配
  2. sift特征提取python
  3. snort mysql 优点_配置snort
  4. 安装ubuntu出现花屏_ubuntu安装成功,开机花屏问题
  5. 无规矩不成方圆,代码规范到底有多重要?(附字节跳动必问的HashMap源码总结)
  6. getline的使用
  7. CenterNet:Objects as Points论文阅读笔记
  8. java 解析MP4文件
  9. thinkphp重大漏洞_经过许多重大的改进计划,关键基础设施仍然存在漏洞
  10. win8计算机背景黑色,Win8电脑桌面背景突然变黑的解决方法