Unity 制作汽车后视镜
起因是,公司做一个汽车相关的东西,然后要做一个后视镜,然后吧,我又很菜,不会写shader,就百度了一个B站的做后视镜的视频,然后照着视频一点点把shader敲了出来。
然后,重点来了!!!
有同事发现,后视镜外面有黑色的去除不掉。如下图:
这就麻烦了啊,本来我就不会shader,网上抄的又不能直接用,我又不会改,直接麻瓜。
不过还好功夫不负有心人,让我找到一个能直接用的shader,哈哈哈,和网上抄的那个shader用法一样。
**
上Shader
**
Shader "Custom/Mask" {Properties {_MainTex ("Base (RGB)", 2D) = "white" {}//目标图片,即需要被遮罩的图片_MaskLayer("Culling Mask",2D) = "white"{}//混合的图片,设置为白色的图片,任何颜色与白色混合,其颜色不变_Cutoff("Alpha cutoff",Range(0,1)) = 0}SubShader {Tags { "Queue"="Transparent" }//渲染队列设置为 以从后往前的顺序渲染透明物体Lighting off //关闭光照ZWrite off //关闭深度缓存Blend off //关闭混合AlphaTest GEqual[_Cutoff] //启用alpha测试Pass{SetTexture[_MaskLayer]{combine texture}//混合贴图//混合贴图,previous为放置在前一序列这样在进行AlphaTest的时候会以这个图片为主来进行混合SetTexture[_MainTex]{combine texture,previous}} }
}
一个主图片,一个遮罩图片。
**
效果成品
**
注意:如果发现后视镜和模型近的时候,Render Texture看不到内容, 把Shader里面的深度缓存注释掉。
以上内容只是把不该显示的内容过滤掉了,但是内容方向还是不对,如果要做后视镜还得把内容反转一下。
用下面这个shader,之前也是没有注意。。。 现在再补个shader
Shader "Custom/ImageMask"
{Properties{_MainTex ("MainTex", 2D) = "white" {}_MaskTex ("MaskTex", 2D) = "white" {}[HideInInspector]_Cutoff ("Alpha cutoff", Range(0,1)) = 0.5_StencilComp ("Stencil Comparison", Float) = 8_Stencil ("Stencil ID", Float) = 0_StencilOp ("Stencil Operation", Float) = 0_StencilWriteMask ("Stencil Write Mask", Float) = 255_StencilReadMask ("Stencil Read Mask", Float) = 255_ColorMask ("Color Mask", Float) = 15}SubShader{Tags {"IgnoreProjector"="True""Queue"="Transparent""RenderType"="Transparent"}ColorMask [_ColorMask]Stencil{Ref [_Stencil]Comp [_StencilComp]Pass [_StencilOp]ReadMask [_StencilReadMask]WriteMask [_StencilWriteMask]}Pass{Name "FORWARD"Tags {"LightMode"="ForwardBase"}Blend SrcAlpha OneMinusSrcAlphaCGPROGRAM#pragma vertex vert#pragma fragment frag#define UNITY_PASS_FORWARDBASE#include "UnityCG.cginc"#pragma multi_compile_fwdbase#pragma only_renderers d3d9 d3d11 glcore gles#pragma target 3.0uniform sampler2D _MainTex;uniform sampler2D _MaskTex;uniform float4 _MainTex_ST;uniform float4 _MaskTex_ST;struct a2v{float4 pos : POSITION;float2 uv : TEXCOORD0;};struct v2f{float4 svpos : SV_POSITION;float2 svuv : TEXCOORD0;};v2f vert(a2v i){v2f o;o.svpos = UnityObjectToClipPos(i.pos);o.svuv = i.uv;return o;}float4 frag(v2f i) : COLOR{float2 offset = i.svuv;offset.x = 1 - i.svuv.x;float4 _MainTex_var = tex2D(_MainTex,TRANSFORM_TEX(offset,_MainTex));float3 finalColor = _MainTex_var.rgb;float4 _MaskTex_var = tex2D(_MaskTex,TRANSFORM_TEX(i.svuv,_MaskTex));return fixed4(finalColor,_MaskTex_var.a);}ENDCG}}FallBack "Diffuse"
}
用这个shader刚好可以满足后视镜的需求。
最终效果图:
Unity 制作汽车后视镜相关推荐
- Unity制作2D动作平台游戏视频教程
Metroidvania工具包:打造统一的2D行动平台 流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确 ...
- Unity制作游戏中的场景
Unity制作游戏中的场景 1.2.3 场景 在Unity中,场景(Scene)就是游戏开发者制作游戏时,所使用的游戏场景.它是一个三维空间,对应的三维坐标轴分别是X轴.Y轴和Z轴本文选自Unity ...
- arkit unity_凯蒂猫! 如何使用ARKit和Unity制作增强现实应用程序。
arkit unity by Francesco Pallotta 由Francesco Pallotta 凯蒂猫! 如何使用ARKit和Unity制作增强现实应用程序. (Hello, Kitty! ...
- unity 制作书本 翻页效果
unity 制作书籍翻页效果 unity C# 翻书效果 2D 真实翻页 不使用插件 自制 实现思路: 将书本分为两边,一边一个翻页实现: 下图为书本的右面,以OA为分界线,△OAB是下一面的如上图的 ...
- Unity 制作简单的任务动画
Unity 制作简单的任务动画 1.添加人物模型到unity 我使用的是unity store中的免费模型: https://assetstore.unity.com/packages/3d/char ...
- Unity 制作萌系live2d桌宠:屏幕自适应+交互
目录 准备工作 使用unity显示live2d人物 全屏+背景透明+点击穿透+置顶 屏幕自适应 交互 本文在之前的博客如何使用unity制作萌萌的live2d桌宠的基础上对项目继续改进,解决了屏幕自适 ...
- Unity制作格斗游戏核心思路总结
http://anchorart9.com/2016/05/22/unity%E5%88%B6%E4%BD%9C%E6%A0%BC%E6%96%97%E6%B8%B8%E6%88%8F%E6%A0%B ...
- 用 Wwise 和 Unity 制作 DLC 使用 Wwise 文件包(File Package)
用 Wwise 和 Unity 制作 DLC 使用 Wwise 文件包(File Package) https://www.audiokinetic.com/zh/library/edge/?sour ...
- unity 制作的app发布到andriod手机
一,unity 制作一个简单的动画. 1.场景中添加一个立方体. 2.立方体上面添加一个胶囊形状,胶囊形状添加重力属性,运行的时候往下落. 3.制作完成,保存工程,名字为"t1". ...
最新文章
- Grunt插件之LiveReload 实现页面自动刷新,所见即所得编辑
- gl.getAttribLocation P41 获取name参数指定的attribute变量存储地址
- Coursera吴恩达《卷积神经网络》课程笔记(4)-- 人脸识别与神经风格迁移
- 丑数 Humble Numbers
- python输入两个正整数m和n用for循环求其最大公约数_输入两个正整数,m和n,求其最大公约数和最小公倍数。...
- laravel数据库相关操作
- 数据挖掘肿瘤预测_喜欢临床预测模型|SEER数据挖掘的期刊有哪些
- jQuery formValidator表单验证插件4.1.1提供下载
- Android 性能优化探究
- Asp.net 2.0在Windows 2003 Server 上配置Microsoft Excel、Microsoft Word应用程序权限时 error: 8000401a 的解决方法!...
- spring注解原理
- 【Multisim】认识与使用
- python爬虫国内外研究现状
- html a标签 alt,A标签、IMG标签、ALT属性详解
- android 程序到手机,安卓手机怎么从电脑安装应用到手机
- uniapp API 第三方服务
- [PS视频][ps从入门到精通82课][mp4/327M]
- 129.精读《React Conf 2019 - Day2》
- 职业发展--优势和性格测试
- java利用jacob实现word,ppt,excel,jpg转pdf