功能:实现一个模型在指定屏幕坐标中的渲染,不在的裁剪掉

效果:
GroudX和GroudY都为0时:

调整数值后:

原理,得到模型在屏幕中的坐标传入片面着色器时,判断下顶点坐标是否在指定区域内,不在的顶点直接裁剪掉
源码:

Shader "Unlit/NewUnlitShader"
{Properties{_MainTex ("Texture", 2D) = "white" {}_GroudX("GroudX",Range(0,0.5))=0    //X方向距离左右边框的百分比 在这之内的都会裁剪掉_GroudY("GroudY",Range(0,0.5))=0    //Y方向距离左右边框的百分比}SubShader{Tags { "RenderType"="Opaque" }LOD 100Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag// make fog work#pragma multi_compile_fog#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;UNITY_FOG_COORDS(1)float4 vertex : SV_POSITION;float4 screenPos : TEXCOORD1;};sampler2D _MainTex;float4 _MainTex_ST;float _GroudX;float _GroudY;v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = TRANSFORM_TEX(v.uv, _MainTex);UNITY_TRANSFER_FOG(o,o.vertex);o.screenPos=ComputeScreenPos (o.vertex);//得到屏幕坐标百分比return o;}fixed4 frag (v2f i) : SV_Target{fixed4 col = tex2D(_MainTex, i.uv);UNITY_APPLY_FOG(i.fogCoord, col);float2 screenPos =i.screenPos.xy/i.screenPos.w;if(screenPos.x>_GroudX&&screenPos.x<(1-_GroudX)&&screenPos.y>_GroudY&&screenPos.y<(1-_GroudY)){}else{discard;}return col;}ENDCG}}
}

吭吭唧唧写shader--实现一个模型在屏幕指定区域的渲染相关推荐

  1. unity 2020 怎么写shader使其接受光照?_如何在Unity中造一个PBR Shader轮子

    之前有业界大佬建议我去了解下Unity的PBR.说来惭愧,我查找了下资料才发现自己在这方面的知识居然是一片空白.经过几周的学习与尝试我对这一块算是有了初步的了解,于是写了这篇文章,一方面对自己学到的东 ...

  2. unity 2020 怎么写shader使其接受光照?_用Unity实现半条命Alyx中的液体物理效果

    干了两个月客户端的活终于能闲下来几天,有点空写个玩具了. 前段时间被半条命Alyx里的酒瓶刷屏了,这酒瓶里液体的的物理效果仅仅看录屏都能感受到十分棒,同时据说瓶子中液体的逻辑全部在shader的一个单 ...

  3. 自己写Shader—【shader的几种制作思路】

    制作二维效果时: 可以对UI组件(Image)上挂载新的shader材质来实现效果.注意:需要写shader时对UI做一些特殊支持[否则一些UI的特性会覆盖掉,例如mask遮挡无效等.] 可以提取un ...

  4. 太赞了!NumPy 手写所有主流 ML 模型,由普林斯顿博士后 David Bourgin打造的史上最强机器学习基石项目!...

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 用 NumPy 手写所有主流 ML 模型,普林斯顿博士后 David Bourgi ...

  5. NumPy 手写所有主流 ML 模型,由普林斯顿博士后 David Bourgin打造的史上最强机器学习基石项目!...

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 用 NumPy 手写所有主流 ML 模型,普林斯顿博士后 David Bourgi ...

  6. thonny python ide_学习用 Thonny 写代码:一个面向初学者的Python IDE

    原标题:学习用 Thonny 写代码:一个面向初学者的Python IDE 编译自: https://fedoramagazine.org/learn-code-thonny-python-ide-b ...

  7. wow修改人物模型_抖音爆款心法:一个模型+五组案例

    做抖音最悲伤的,莫过于用户刷到你的时候,瞟一眼就继续往下滑了.再好笑的段子,再精良的制作,用户直接往下滑,一点机会都不给你.虽然短视频只有15秒,但真正决定生死的是开头那 5 秒.3 秒,甚至 1 秒 ...

  8. 【圈外同学】Day01 一个模型,帮你找到真正热爱的

    本节学习收获 掌握冰山模型的用法,能够用它来分析自己跟工作的匹配度,从而做出正确的职业选择,并能精准找到自己喜欢并有成就感的工作. "我感觉目前的工作状态不是我想要的,做得也还行,但没有太多 ...

  9. 深度学习day04-MNIST手写数字识别与模型使用

    本文大概分为以下几个部分:手写数字识别原理(不强相关).具体代码实现(算上import和空行一共50行代码不到).训练出来的模型怎么使用. 目录 一.手写数字识别原理 二.具体代码实现 三.训练出来的 ...

最新文章

  1. 一文详解计算机视觉的广泛应用:网络压缩、视觉问答、可视化、风格迁移等
  2. 【图示,简单明了】HttpServlet中getAttribute和getParameter的区别——【javaweb系列学习笔记】
  3. oracle+查表物理块数,如何统计一段时间内 发生在某个表上的 物理读写的块数
  4. 反射xss 测试地址_使用反射进行测试
  5. python大纲图_Python课程大纲
  6. python的固定有没有固定字符_python每次处理固定个数的字符的方法总结
  7. 百练 05 切割回文
  8. Xcode 9中去除Block警告
  9. Response实现文件下载
  10. 在ruby使用终端启用外部程序
  11. 【TSP】基于matlab混合粒子群算法求解旅行商问题【含Matlab源码 397期】
  12. pdf分页分片预览,pdf截取,pdf转图片
  13. linux离线安装系统工具arping
  14. linux 命令行下的复制和黏贴
  15. SEBank银行项目第一个星期的进度安排
  16. DataFrame中实现int、float存储形式列之间的除法运算
  17. 怎么把录音变成文字?
  18. 联通GPRS上网设置
  19. EditPlus 5.0.651 中文版
  20. iOS KeyChain使用

热门文章

  1. servlet4.0.1与jsp2.3.3依赖包的导入
  2. webpack设置打包入口后运行时报错Invalid configuration object. Webpack has been initialized using a configuration
  3. U盘启动盘的制作方法
  4. Office Communicator 2007 with Polycom
  5. Python爬取表情包
  6. android媒体播放器课程设计,基于Android的多媒体播放器课程设计报告 ()
  7. android音乐播放器课程设计报告,基于android平台的音乐播放器的课程设计报告.docx...
  8. 【翻译】CEDEC2013 BANDAI NAMCO 了解游戏格斗动画中的身体运动结构和原理
  9. Xmind 2021--做思维导图的软件有哪些,免费又好用的那种
  10. UI自动化测试模型有哪些?我来告诉你