unity3d材质_unity3d材质不透明 - CSDN
  • Unity3D基础3:贴图与材质

    万次阅读 多人点赞 2019-02-02 17:38:00
    前文:https://blog.csdn.net/Jaihk662/article/details/86746464(Unity3D基础模型) 一、贴图与材质材质(Material):物体的质地,物体看起来是什么做的 贴图(Texture):普通的材质图片  + =  贴图 + ...

     

    前文:https://blog.csdn.net/Jaihk662/article/details/86746464(Unity3D基础模型)

    一、贴图与材质球

    材质(Material):物体的质地,物体看起来是什么做的

    贴图(Texture):普通的材质图片

      +      =   

    贴图 + 着色器(Shader) = 材质球

    所谓着色器(Shader)实际上就是一小段程序,它负责将输入的网格(Mesh)以指定的方式和输入的贴图或者颜色等组合作用,然后输出,着色器是一种可以精确控制材质球的工具,通过贴图和着色器的配合开发人员可以创造出非常逼真的模型

    Shader是个非常复杂的东西,学习Unity中的Shader编程,最好是之前对OpenGL或Direct3D的渲染状态等相关知识有一个基本的了解,所以可以暂时使用默认的Shader,以后再进行了解/学习

    材质球文件后缀:.mat

     

    二、创建与使用材质球

    一个网上分享的贴图资源:https://pan.baidu.com/s/1hrPKck8

    下载后会得到一个.unitypackage的文件,先直接将其拖到Project中,也可以使用其它任意贴图

    之后在Assets中建立“Materials”和“Textures”文件夹,用于存放材质球和贴图(为了方便管理)

    然后就可以在“Materials”文件夹中新建材质球了,如下:

      →  

    编辑材质球:

    使用材质球就非常简单了,直接将材质球往物体上托即可

    效果如下:

     

    tiling缩放:表示贴图在UV坐标的缩放倍数,直接举例子:

    将其由(1,1)改为(2,2)后变化如下:

      →  

     

    展开全文
  • unity3D 材质

    2020-07-22 23:32:54
    非常牛B的unity 各种Shader 欢迎下载。
  • Unity3D shader(15)——材质(玻璃)

    千次阅读 2017-08-19 23:03:12
    有了前面的基础,就可以随意用Unity Fragement Shader来实现自己想要的效果。 这里就主要以玻璃为例。 首先实现玻璃的透明的特性; 里面的Tags { "Queue" = "Transparent" }是为了实现透明的效果。Blend SrcAlpha...

    如有更多问题,请qq254033230咨询。

    有了前面的基础,就可以随意用Unity Fragement Shader来实现自己想要的效果。

    这里就主要以玻璃为例。

    首先实现玻璃的透明的特性;

    里面的Tags { "Queue" = "Transparent" }是为了实现透明的效果。Blend SrcAlpha OneMinusSrcAlpha为了显示透明的物体不改变后面的物体的显示效果。最后,颜色是一个思维数组,透明度是颜色的最后一个元素,所以用col[3]来表示透明度。_AlphaVal控制透明度。如果想实现彩色玻璃的效果,只需要改变_MainTint和_AlphaVal的值。

    Shader "Custom/FragmentShader" {
    properties{
            _MainTint("Main Color", Color) = (1, 1, 1, 1)
            _AlphaVal("Alpha", Range(0, 1)) = 0.1
    }
    	SubShader {
    	    Tags { "Queue" = "Transparent" }
    
    		PASS{
    
    		Blend SrcAlpha OneMinusSrcAlpha
    				
    		CGPROGRAM
    		#pragma vertex vert  
            #pragma fragment frag
    
            #include "UnityCG.cginc"
            #include "Lighting.cginc"
    
    
            float4 _MainTint;
            float _AlphaVal;
    
    
            struct v2f{
            float4 pos:POSITION;
            float4 col:texcoord0;
            };  
    
            v2f vert(appdata_base v){
            v2f o;
            o.pos=UnityObjectToClipPos(v.vertex);
            return o;
            }
    
            float4 frag(v2f IN):COLOR{
            float4 col;
            col=_LightColor0*_MainTint;
            col[3]*=_AlphaVal;
            return col;
            }
    		ENDCG
    		}
    	}
    	FallBack "Diffuse"
    
    }


    如果想玻璃效果更逼真,带上漫反射的光,加上环境光,以及自身的颜色的组合。

    Shader "Custom/FragmentShader" {
    properties{
            _MainTint("Main Color", Color) = (1, 1, 1, 1)
            _AlphaVal("Alpha", Range(0, 1)) = 0.1
    }
    	SubShader {
    	    Tags { "Queue" = "Transparent" }
    
    		PASS{
    
    		Blend SrcAlpha OneMinusSrcAlpha
    				
    		CGPROGRAM
    		#pragma vertex vert  
            #pragma fragment frag
    
            #include "UnityCG.cginc"
            #include "Lighting.cginc"
    
    
            float4 _MainTint;
            float _AlphaVal;
    
    
            struct v2f{
            float4 pos:POSITION;
            float3 normal1:texcoord1;
            float4 vertex1:texcoord2;
            float4 col:texcoord0;
            };  
    
            v2f vert(appdata_base v){
            v2f o;
            o.pos=UnityObjectToClipPos(v.vertex);
            o.normal1=v.normal;
            o.vertex1=v.vertex;
            return o;
            }
    
            float4 frag(v2f IN):COLOR{
            float4 col= UNITY_LIGHTMODEL_AMBIENT;  
            float3 N=UnityObjectToWorldNormal(IN.normal1);  
            float3 L=normalize(WorldSpaceLightDir(IN.vertex1));  
            float diffuseScale=saturate(dot(N,L));
            col+=_LightColor0*diffuseScale+_MainTint; 
            col[3]*=_AlphaVal;
            return col;
            }
    		ENDCG
    		}
    	}
    	FallBack "Diffuse"
    
    }

    如果想呈现周围景色,那么需要加上立方体贴图。用上立方体贴图,造成反射的假象。

    Shader "Custom/FragmentShader" {
    properties{
            _MainTint("Main Color", Color) = (1, 1, 1, 1)
            _AlphaVal("Alpha", Range(0, 1)) = 0.1
            _CubeMap("CubeMap",CUBE)=""{}
    }
    	SubShader {
    	    Tags { "Queue" = "Transparent" }
    
    		PASS{
    
    		Blend SrcAlpha OneMinusSrcAlpha
    				
    		CGPROGRAM
    		#pragma vertex vert  
            #pragma fragment frag
    
            #include "UnityCG.cginc"
            #include "Lighting.cginc"
    
            samplerCUBE _CubeMap;
            float4 _MainTint;
            float _AlphaVal;
    
    
            struct v2f{
            float4 pos:POSITION;
            float3 normal1:texcoord1;
            float4 vertex1:texcoord2;
            float3 R:texcoord3;
            float4 col:texcoord0;
    
            };  
    
            v2f vert(appdata_base v){
            v2f o;
            o.pos=UnityObjectToClipPos(v.vertex);
            o.normal1=v.normal;
            o.vertex1=v.vertex;
            return o;
            }
    
            float4 frag(v2f IN):COLOR{
            float4 col= UNITY_LIGHTMODEL_AMBIENT;  
            float3 N=UnityObjectToWorldNormal(IN.normal1);  
            float3 L=normalize(WorldSpaceLightDir(IN.vertex1));  
            float diffuseScale=saturate(dot(N,L));
            col+=_LightColor0*diffuseScale+_MainTint;
    
            float3 N2=normalize(mul(IN.normal1,(float3x3)_World2Object));
            float3 V= -WorldSpaceViewDir(IN.vertex1);
            col+=texCUBE(_CubeMap,reflect(V,N2));
    
            col[3]*=_AlphaVal;
            return col;
            }
    		ENDCG
    		}
    	}
    	FallBack "Diffuse"
    
    }








    展开全文
  • 初学Unity3D——材质

    万次阅读 2014-11-21 14:44:39
    Kathy邀请您访问狗刨学习网-Unity3D培训&学习社区 http://unity.gopedu.com/?fromuser=Kathy

    材质球(Material)的设置:
    左键单击Assets-Create-Material(可直接把材质球拖拽给物体)

    示例:设置颜色

    设置贴图

    材质球 Shader->Bumped Diffuse 法线视图

    不要直接把图片拖拽到游戏对象上,否则会直接生成一个材质
         所谓预设体(Prefab)就是把一个对象设置好需要的属性,脚本等,然后拖拽到提前创建好的文件夹。好处就是每次在需要它的时候直接使用就可以了,不用在重新创建,省时省力。预设体的使用一般都需要代码实现

    PS:随着添加的东西越来越的,我们要对其进行分类,把同一类的放在一个文件夹,方便以后查找

    先导入Light Flares 耀斑资源包。

    在场景中选择主摄像机,调整摄像机位置和角度,使其面对平行光源,在Game窗口中就能看到耀斑的效果了。
    产生耀斑的两个条件:
    摄像机添加了FlareLayer组件,把耀斑资源拖给平行光“Flare”属性中。产生耀斑的太阳光需要在摄像机的范围内。
    PS:耀斑效果只能被碰撞盒遮挡,对于实体模型无法遮挡这种效果。

    随时更新,还不完善~想跟着一起学习U3D的可以关注我

    展开全文
  • Unity3D 材质球学习

    万次阅读 2018-06-01 11:52:39
    类型: FX: Lighting and glass effects.( 灯光、玻璃) GUI and UI: For user interface graphics.(用于用户界面图形) Mobile: Simplified high-performance shader for mobile devices.(针对移动设备的简化的高...

    类型:

           FX: Lighting and glass effects.( 灯光、玻璃)
           GUI and UI: For user interface graphics.(用于用户界面图形)
           Mobile: Simplified high-performance shader for mobile devices.(针对移动设备的简化的高性能着色器)
           Nature: For trees and terrain.(适用于树木和地形)
           Particles: Particle system effects.(粒子系统特效)
           Skybox: For rendering background environments behind all geometry(用于渲染所有几何背后的背景环境)
           Sprites: For use with the 2D sprite system(用于2D精灵系统)
           Toon: Cartoon-style rendering.(卡通 风格 渲染)
           Unlit: For rendering that entirely bypasses all light & shadowing(渲染完全绕过所有光影)

          Legacy: The large collection of older shaders which were superseded by the Standard Shader(被标准着色器取代的大型着色器集合)

    Standard:“metallic”指出材料是否是金属材质。在金属材料的情况下,Albedo 颜色控制镜面反射的颜色,而大部分光纤将反射未镜面反射。非金属材料将具有与入射光线相同的颜色的镜面反射,并在表面时几乎不会反射。

    Standard(Specilar setup): 为经典方法选择 此着色器。镜面反射颜色用于控制材料中镜面单摄的颜色和强度。例如:这使得有可能具有漫反射不同的颜色的镜面反射。

    Rendering Mode:

       Opaque:是默认设置,适用于没有透明区域的普通固体物体
       Cutout:允许您创建在不透明区域和透明区域之间具有坚硬边缘的透明效果。在这种模式下,没有半透明区域,纹理是100%不透明或不可见的。当使用透明度来创建材质的形状(例如树叶或带孔洞和布块的布料)时,此功能非常有用
       Transparent:适用于渲染逼真的透明材料,如透明塑料或玻璃。在这种模式下,材质本身会采用透明度值(基于纹理的alpha通道和色调的alpha),但反射和照明高光将以完全清晰的方式保持可见状态,就像真正的透明材质一样
       Fade:允许透明度值完全淡出对象,包括任何高光反射或可能有的反射。如果您想要将对象淡入或淡出,则此模式非常有用。它不适合渲染逼真的透明材料,如透明塑料或玻璃,因为反射和高光也会消失

    Stanard(Specular setup): Specular参数中的RGB颜色控制镜面反射率的强度和颜色色调;这包括来自光源的光芒和来自环境的反射,smoothness 参数控制的镜面效果的清晰度。如果光滑度值较低,则即使是强烈的镜面反射也会变得模糊不清。具有高光滑度值,镜面反射更清晰和清晰。

    将纹理(Texture)分配给Specular参数时,Specular参数和Smoothness滑块均消失。相反,材质的镜面反射水平由纹理本身的红色,绿色和蓝色通道中的值控制,而光滑度材质的等级由相同纹理的Alpha通道控制。这里,镜面反射和平滑度由颜色和平滑度滑块定义。

    注意:黑色镜面颜色(0,0,0)会导致镜面效果无效(A black specular color (0,0,0) results in nulling out the specular effect)。镜面可以采取(1.0,1.0,1.0)

    金属模式:纹理(Texture) Metallic 分配参数时,Metallic和smoothness 滑块将消失, 材质的金属级别由纹理的红色通道中的值控制(通道一般由 黑、白、灰构成,偏白反射越高),材质的smoothness级别由纹理的Alpha通道控制.(这以为这 绿色 和 蓝色 通道 被忽略)

    Specular/Metallic Alpha:曲面每个点的平滑度都是单个值,因此数据只需要图像纹理的单个通道。因此。平滑度数据被假定存储在用于Metallic或specular纹理贴图的相同图像纹理的Alpha通道中

    Albedo Alpha: 减少纹理的总数,也可以使用不同分辨率的纹理进行Smoothness和Specular/Metallic

    HeightMap:高度映射图;灰度图。白色区域代表纹理的高区域,黑色代表低区域。白色的部分纹理偏移大。

    OcclussionMap: 遮挡贴图. 提供模型的哪些区域接收 高或低 间接光照的信息。OcclussionMap 是灰度图像. 白色表示应该接受完全间接照明的区域,而黑色表示没有间接照明。

    Emission:发光,控制从表面发射的光的颜色和强度。如果分配给了纹理贴图,则 纹理的全色值将用于发射颜色和亮度。Emission数字之字段仍然存在,可以将其用作乘数来提高或降低材料的整体发光水平。 该处纹理 贴图 必须 背景色是黑色,前景色是非黑色(充满 R,G,B)的才会叠加到Aledo的图片上。None:对象将显示为发射型,但附近物体的照明不受影响 。RealTime:来自此材质的发射光将被添加到场景的实时全局照明计算中,因此附近物体(甚至移动物体)的照明将受到发射光线的影响。 baked:来自这种材料的发射光将被烘焙成场景的静态光照贴图,因此其他附近的静态物体将显示为被该材料点亮,但动态物体不会受到影响。

     DetailMaps:在Aledo纹理贴图上增添细节贴图;DetailMask:给DetailMaps 添加遮罩,限制细节的显示位置  。      

    控制 Albedo 纹理贴图的偏移

     控制 Detail Albedo 纹理的 偏移

    展开全文
  • unity3d材质包700种材质球,种类齐全,可用于日常学习用途
  • Unity 纹理、贴图和材质【转载】

    万次阅读 2018-08-03 12:02:40
    Unity中,我们可以这样理解:Material(材质)包含Map(贴图),Map包含Texture(纹理)。 首先在工程中创建一个Terrain(地形)和一个Cube(立方体),然后我们基于这两个物体来深入学习什么是纹理、贴图和材质...
  • unity3d游戏开发所需要的素材,包裹墙体地面这些材质球共700个
  • unity3d材质球大全合集

    2020-07-30 23:32:03
    数百种u3d材质球,包括金属,玻璃,陶瓷,塑料等,内含实例
  • 涵盖了地表、墙面、大自然、天空、运动、水、建筑、有机体、瓦片、瓷砖、石头、砖头、科幻、纸、织物、路面、金属、食品等,可以傻瓜式按照。 里面附有图片和说明,此文件版本较早
  • Unity3D给力材质

    千次下载 热门讨论 2020-07-30 23:32:36
    Unity3D材质包,内含例子,主要有玻璃,金属,陶瓷,塑料等一些材质,找不到相关材质的兄弟可以下个哈:)
  • Unity3D材质丢失的解决办法

    万次阅读 2013-10-31 23:27:47
    Win7 Unity3D 4.2.0f4 同事给我一些Fbx格式的角色动画,包括几个图片文件夹,和一...但我在导入Unity3D时,但主角的材质却丢失。 解决办法是把Materials文件夹删掉,然后那个文件夹上右键选择reimport,即可解决问题。
  • unity 3d 材质

    2020-09-10 16:04:40
    unity 3d 材质unity 3d 材质unity 3d 材质unity 3d 材质unity 3d 材质
  • Unity3D超700+材质球&贴图Unity3D超700+材质球&贴图Unity3D超700+材质球&贴图Unity3D超700+材质球&贴图
  •   要设置shader里有下划线的属性名,而不是后面字符串的属性名。   Color tmp = new Color(1,1,1,alpha); mat.SetColor("_Color", tmp);  
  • Unity3D 材质丢失

    千次阅读 2015-09-07 18:41:10
    1. 如果想给场景中一个GameObject进行贴图,那么直接把一张Texture拖到这个GameObject上,这是会产生新的材质文件,并赋值到这个GameObject中,如果这个GameObject本来就已经有材质的话,就会把原来的那个材质进行...
  • Unity3d 镜面材质

    2020-07-28 23:33:34
    Unity3d 镜面材质
  • Unity3D中玻璃、金属材质制作

    千次阅读 2019-05-16 20:38:53
    1.首先创建一个材质球Glass 2.将材质球Inspector窗口中的Rendering Mode选为Transprent,这个选项可以使物体改变透明属性,并且带有反射。 3。接下来更改Metallic和Smoothness值,Metallic值越大金属光泽越明显,...
  • unity3d常用材质球,包括多种不同草坪贴图材质 / unity3d游戏开发常用材质
  • Unity3D - 发光材质(Emissive Materials)

    万次阅读 2017-08-11 23:07:23
    Emissive Materials
1 2 3 4 5 ... 20
收藏数 13,227
精华内容 5,290
关键字:

unity3d材质