Unity3D中简单地应用玻璃材质

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

最近在学习Unity3D。发现Unity3D中的玻璃效果要用到Shader才能实现。虽然简单学习了一下能看懂Shader的结构了,但要自己写一个实现自己想要的效果的Shader暂时还无能为力。这个要么需要十足的经验,要么具有相当的抽象思维。(可惜这两个我都没有…………)

随后在网上找了一个可以可以实现玻璃材质的shader。

源博客是在:http://www.cnblogs.com/yb_lin/archive/2011/04/21/2023475.html

首先新建一个shader,代码如下:

Shader "Glass"
{ 
	Properties
	{
		_MainTex ("Main Texture", 2D) = "white" {}
	}
	Subshader 
	{
		Tags { "Queue" = "Transparent" }
		Pass 
		{
			Cull Off 
			ColorMask RGB
			Blend SrcAlpha OneMinusSrcAlpha 
			CGPROGRAM
			#pragma vertex vert 
			#pragma fragment frag
			#include "UnityCG.cginc" 


			uniform sampler2D _MainTex;
			uniform float _ReflectValue;
			struct vertInput
			{
				float4 vertex : POSITION;
				float3 normal : NORMAL;
				float2 texcoord : TEXCOORD0;
			};
			struct vertOutput 
			{
				float4 pos : POSITION; 
				float2 texcoord : TEXCOORD0;
				float3 reflectVec : TEXCOORD1;
			};  
			vertOutput vert(vertInput i)
			{
				vertOutput o;
<span style="white-space:pre">				</span>//Set position.
				o.pos = mul (UNITY_MATRIX_MVP, i.vertex);  
<span style="white-space:pre">				</span>//Set texcoord.
				o.texcoord = i.texcoord;
<span style="white-space:pre">				</span>//Calculate normal and position in camera space.
				float3 normWorld = normalize( mul((float3x3)UNITY_MATRIX_IT_MV, i.normal));
				float3 posWorld = mul(UNITY_MATRIX_MV, i.vertex).xyz;
<span style="white-space:pre">				</span>//Set vector used in cubeMap reflection.
				o.reflectVec = reflect(posWorld, normWorld);
				return o;
			}
			half4 frag( vertOutput i ) : COLOR
			{
<span style="white-space:pre">				</span>//Get colors of MainTexture and AlphaTexture.
				half4 colorTex = tex2D(_MainTex, i.texcoord);
				return colorTex;
			}
			ENDCG
		}
	}
	SubShader {
		Tags { "Queue" = "Transparent" }
		Pass {
			Cull Off 
			ColorMask RGB
			Blend SrcAlpha OneMinusSrcAlpha 
			SetTexture [_MainTex] { combine texture }
		}
	}
}

然后新建一个材质



之后在材质的地方选择




Glass也就是之前Shader中第一行显示的名字

然后在PS中创建一个半透明的纹理。



保存为psd或者png格式都可以。之后在Unity3D中选择Texture,选择刚才创建的图片。



然后就能实现一个基本的玻璃效果了:



更高级的玻璃效果诸如加入反射啊,折射啊,还需要以后慢慢来学习。不过一步一个脚印,总有学会的一天~

URP实现毛玻璃效果一 首先URP官方已经给了很详细的实现方案,知乎参考链接:https://zhuanlan.zhihu.com/p/248903320 原理就是在渲染所有3D和UI之后通过URP的Cbuffer shader进行屏幕抓取,然后再对抓到的图进行高斯模糊,然后映射到指定的毛玻璃效果的图上。 URP设置 ![在这里插入图片描述](https://img-blog.csdnimg.cn/b199a39254ee4dc8bb231e19685df08d.png?x-oss-process=image/watermark, 阅读详情

相关推荐

Unity3D Shader】利用GrabPass模拟玻璃效果

本文将介绍和实现Unity Shader中的玻璃效果。实现效果如下:一、效果分析和实现原理    试想下生活中的玻璃杯,它能反射周围的环境,同时如果我们将一颗小放入杯中,我们能够透过玻璃杯看到小,而且如果玻璃杯表面凹凸不平的话,我们还会看到小好像被扭曲了,这便是光线在玻璃表面反射和折射的效果。    反射/折射    下面来讲讲在Unity Shader中反射和折射的实现:    反射/折射...

GDIves 8617

unity实现玻璃效果

本文实例为大家分享了unity实现玻璃效果的具体代码,供大家参考,具体内容如下 一、使用Cubemap,做一个假反射 shader代码如下: Shader "Custom/glassShader" { Properties { _MainColor("Main Color",Color)=(1,1,1,1) _MainTex ("Base (RGB)", 2D) = "white" {} _Cube("Cube",CUBE)=""{} } SubShader { Tags {"RenderType"="Opaque"} LOD 200 //cull off CGPROG

Unity3d基础知识之Texture纹理、Shader着色器、Material材质、Rendering Mode

学习Unity3d基础知识之Texture纹理、Shader着色器、Material材质、Rendering Mode

lolly114的博客 3577

unity URP玻璃shader(unitypackage)

unity URP玻璃shader(unitypackage) unity URP玻璃shader,内含demo场景,不会用的可以参考,有其他问题可以留言

【Unity 玻璃效果插件】URP - Glass Shaders 轻松实现真实的玻璃材质效果,适用于各种需要玻璃表现的场景,如窗户、玻璃墙、液体和水晶等

URP - Glass Shaders 插件是专为 Unity 的 Universal Render Pipeline (URP) 设计的一款强大工具,旨在帮助开发者轻松创建高质量的玻璃效果。通过该插件,用户能够在项目中实现透明、反射、折射等真实的玻璃材质效果,适用于各种需要玻璃表现的场景,如窗户、玻璃墙、液体和水晶等。

2403_88403568的博客 1300

UnityShader入门精要-渲染纹理 镜子 玻璃 效果

UnityShader入门精要-渲染纹理 镜子 玻璃 效果

weixin_58624886的博客 2140

Unity3D玻璃、金属材质制作

1.首先创建一个材质Glass 2.将材质Inspector窗口中的Rendering Mode选为Transprent,这个选项可以使物体改变透明属性,并且带有反射。 3。接下来更改Metallic和Smoothness值,Metallic值越大金属光泽越明显,Smoothness值越大反射率就越大 所以如果需要玻璃材质则如下图设置: 但是这时候发现,玻璃反射的光并不是周围的物体...

weixin_43778515的博客 3万+

Unity Shader学习:玻璃材质

Unity Shader学习:玻璃材质 主要是通过反射和折射来达到透明的效果,用菲涅尔来混叠。 shader部分: Shader "Unlit/Crystal" { Properties { _Cube("Skybox",Cube)=""{} //折射角度 _EtaRatio("EtaRatio", Range(0, 1)) = 0 //菲涅尔系数 _FresnelBia...

咪咪博客 4319

Unity3D硬表面材质Shader技术实战课程

Unity3D作为广受欢迎的游戏开发引擎,其Shader编程是图形渲染的核心。从简单的颜色渲染到复杂的物理效果,Shader在塑造游戏世界的真实感和动态效果方面扮演着至关重要的角色。本章将从Unity3D Shader的基础概念讲起,逐步过渡到图形渲染的技术细节。图形渲染涉及将三维模型转换为二维图像的过程,这包括多种技术,如光照计算、纹理映射、阴影生成等。本章将介绍渲染管线的基础知识,包括顶点处理、光栅化和像素处理等关键步骤,并解释它们如何结合ShaderUnity3D中实现惊人的视觉效果。

weixin_42596214的博客 946

Unity3D双面材质包实战应用指南

在3D建模中,一个三角形由三个顶点组成,其面的朝向由这三个顶点的顺序决定。根据右手定则,顶点顺序决定了面的法线方向:顺时针顺序:法线指向观察者(正面)逆时针顺序:法线背离观察者(背面)Unity默认使用逆时针顺序定义正面,这意味着背面将被剔除(即不渲染)。// Unity Shader中定义正面方向的Cull指令Cull Back // 默认剔除背面法线方向不仅决定了是否渲染,还影响光照计算。

weixin_42509513的博客 1193

CSDN不让删除资源啊

CSDN不让删除资源啊

【免费下载】 Unity3D材质大全合集

Unity3D材质大全合集 【下载地址】Unity3D材质大全合集 本仓库提供了一个丰富的Unity3D材质合集,包含了数百种不同类型的材质,适用于各种场景和项目需求。无论你是初学者还是经验丰富的开发者,这些材质都能帮助你快速创建高质量的3D模型和场景。 ...

gitblog_09738的博客 1869

Unity3D 玻璃材质Shader资源下载

Unity3D 玻璃材质Shader资源下载 去发现同类优质开源项目:https://gitcode.com/ 这里提供了Unity3D环境下各种玻璃材质Shader资源。这些Shader能够帮助开发者轻松实现丰富多样的玻璃效果,包括门窗彩色贴花等细致装饰。通过本资源,您将能够提升作品中的视觉效果,实现更加真实和美观的玻璃材质表现。 去发现同类优质开源项目:https://gitcode.co...

gitblog_06778的博客 387

unity3d显示c4d材质_C4D 野教程,你会使用C4D制作玻璃试管文字海报吗,快快收藏吧...

嗨,我是爱踢汪。来吧,今天我们就用C4D来制作一下玻璃试管的海报吧!打开C4D,新建一个圆柱:将圆柱调整到合适的大小,并在封顶里把圆角打上勾,参数大家看着来:新建材质,把透明通道勾选上,折射率预设直接选择有机玻璃就好,然后把它赋予圆柱:再新建一个材质,颜色通道里先更改颜色:勾选Alpha通道,纹理里添加渐变,调整渐变的位置去控制颜色显示的区域。这里建议可以把交互式区域渲染打开,看着效果来:再新...

weixin_39790504的博客 831

unity和ue4里面的玻璃材质笔记

总结测试后发现玻璃材质都有些要注意的问题 首先就是两个相同材质的物体不能相互重叠,否则在旋转观察角度的时候,两个半透明物体会因为排序而突然出现在另一个的前面,ue4带透明和unity的一样,所以对于简单玻璃材质注意玻璃物体模型摆放 其次就是高光问题,周围尽量不要超过4个灯,这个也差不多,普通deferred模式下透明物体老问题,所以引擎貌似都会把这个物体转到forward模式下处理

shenmifangke的专栏 1万+

Unity3d 车身、玻璃材质

玻璃shader: Shader "Reflective/Glass" { Properties { _Color ("Main Color", Color) = (1,1,1,1) _SpecColor ("Specular Color", Color) = (0.5, 0.5, 0.5, 1) _Shininess ("Shininess", Range (0.0

994

Unity灯光、烘焙小结(三)Unity3D PBR 物理材质

****************Unity3D PBR 物理材质*************** https://www.bilibili.com/video/av54353015?p=10 1、substance designer(3d66.com下载) Unity中需要安装substance in unity插件 2、color space设置为linear更加适合PBR材质 ...

wangyihero8的专栏 1432

Unity3D通透材质Shader实战:次表面散射技术详解

Shader是GPU执行的程序,负责顶点变换、光照计算与像素着色,在Unity渲染流程中处于关键位置。它通过ShaderLab语法定义结构,并嵌入CG/HLSL代码实现具体算法:PropertiesSubShaderPassCGPROGRAMreturn o;ENDCG该示例展示了一个最基础的无光照纹理渲染Shader,体现了从属性声明到顶点-片元函数的完整结构。

weixin_30600615的博客 805

Unity3D shader(15)——材质玻璃

如有更多问题,请qq254033230咨询。 有了前面的基础,就可以随意用Unity Fragement Shader来实现自己想要的效果。 这里就主要以玻璃为例。 首先实现玻璃的透明的特性; 里面的Tags { "Queue" = "Transparent" }是为了实现透明的效果。Blend SrcAlpha OneMinusSrcAlpha为了显示透明的物体不改变后面的物体的显示效果

niuge8905的博客 1万+
上一篇: 看不见的空格
下一篇: Unity3D中的对齐
haelang
博客等级 码龄15年 21粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值