Unity开发_通用材质

需求:我们的建模人员(3dmax的)在渲染比较大的建筑场景时,会花费比较多的时间,比如一个电厂的主厂房(4个机组) 需要一周的时间,另外,对于基于BIM的模型,需要设置材质。需要一个通用的材质库。

虽然可以安排人员自己通过创建材质(贴图、参数),但是公司没有专门的Unity美术.....

我的通用材质指的是 一个材质库 ,大部分场景,建模完成后,可以在Unity中进行材质的添加设置,最终生成效果还不错的场景。

场景需求是 办公楼、工厂、电厂、机房

基本模型是 园区路面、园区草坪、水体;地板、天花板、墙壁、柱子、钢筋结构、门窗、水管。

基本材质需求是 水泥路、草地;玻璃、塑料;瓷砖、大理石、花岗岩、石灰墙;木板、木地板;钢铁、铝以及其他各种金属

对于 石头、沙土材质没有需求,完全用不到。

 

基本思路就是去找各种Material嘛,淘宝啊,AssetStore上找。

但是接下来我们的项目要更新到URP/HDRP中,需要能支持URP/HDRP的材质的。

一.Substance的PBR材质

SubstanceDesigner/Painter的材质

需要插件支持 Substance In Unity(https://assetstore.unity.com/packages/tools/utilities/substance-in-unity-110555)

材质库是Substance Database:https://s.taobao.com/search?q=Substance+Database&imgfile=&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20200811&ie=utf8

视频:https://www.bilibili.com/video/BV1Gp411d7fW

 

二.Real Material材质

HDRP/URP/标准 都支持,这个是一大优点

免费的部分:

https://assetstore.unity.com/packages/2d/textures-materials/real-materials-complete-92257

收费的部分:

https://assetstore.unity.com/packages/2d/textures-materials/real-materials-complete-92257

三、HDRP材质

https://github.com/Unity-Technologies/MeasuredMaterialLibraryHDRP

四、ShaderGraph材质

https://github.com/UnityTechnologies/ShaderGraph_ExampleLibrary

HDRP下有问题

五.其他资源

能找到一些老的免费资源,效果都一般。

1.700多种材质

https://detail.tmall.com/item.htm?spm=a230r.1.14.6.823b69c3zwuykX&id=553425449007&cm_id=140105335569ed55e27b&abbucket=13

CSDN上就有资源可以下载的:https://download.csdn.net/download/jframe_java/10519584?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159713071219724843340854%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=159713071219724843340854&biz_id=1&utm_medium=distribute.pc_search_result.none-task-download-2~all~first_rank_ecpm_v3~pc_rank_v2-3-10519584.first_rank_ecpm_v3_pc_rank_v2&utm_term=unity+%E6%9D%90%E8%B4%A8&spm=1018.2118.3001.4187

2.800个材质

https://download.csdn.net/download/u011428080/10321456?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159713071219725211953324%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=159713071219725211953324&biz_id=1&utm_medium=distribute.pc_search_result.none-task-download-2~all~first_rank_ecpm_v3~pc_rank_v2-8-10321456.first_rank_ecpm_v3_pc_rank_v2&utm_term=unity+%E6%9D%90%E8%B4%A8&spm=1018.2118.3001.4187

3.4K贴图

https://texturehaven.com/textures/?c=floor

只有贴图,需要自己设置材质,能达到基本的效果。

4.一些砖墙

https://item.taobao.com/item.htm?spm=a230r.1.14.208.1c697d723xEjNh&id=581028189573&ns=1&abbucket=13#detail

5.64种PBR材质

https://item.taobao.com/item.htm?spm=a230r.1.14.174.1c697d723xEjNh&id=585663053209&ns=1&abbucket=13#detail

 

代码在文件 Properties { _Color ("Main Color", Color) = (1,1,1,1) _MainTex ("Diffuse (RGB) Alpha (A)", 2D) = "white" {} _SpecularTex ("Specular (R) Gloss (G) Anisotropic Mask (B)", 2D) = "gray" {} _BumpMap ("Normal (Normal)", 2D) = "bump" {} _AnisoTex ("Anisotropic Direction (RGB)", 2D) = "bump" {} _AnisoOffset ("Anisotropic Highlight Offset", Range(-1,1)) = -0.2 _Cutoff ("Alpha Cut-Off Threshold", Range(0,1)) = 0.5 } SubShader{ Tags { "RenderType" = "Opaque" } CGPROGRAM struct SurfaceOutputAniso { fixed3 Albedo; fixed3 Normal; fixed4 AnisoDir; fixed3 Emission; half Specular; fixed Gloss; fixed Alpha; }; float _AnisoOffset, _Cutoff; inline fixed4 LightingAniso (SurfaceOutputAniso s, fixed3 lightDir, fixed3 viewDir, fixed atten) { fixed3 h = normalize(normalize(lightDir) + normalize(viewDir)); float NdotL = saturate(dot(s.Normal, lightDir)); fixed HdotA = dot(normalize(s.Normal + s.AnisoDir.rgb), h); float aniso = max(0, sin(radians((HdotA + _AnisoOffset) * 180))); float spec = saturate(dot(s.Normal, h)); spec = saturate(pow(lerp(spec, aniso, s.AnisoDir.a), s.Gloss * 128) * s.Specular); fixed4 c; c.rgb = ((s.Albedo * _LightColor0.rgb * NdotL) + (_LightColor0.rgb * spec)) * (atten * 2); c.a = 1; clip(s.Alpha - _Cutoff); return c; } #pragma surface surf Aniso #pragma target 3.0 struct Input { float2 uv_MainTex; float2 uv_AnisoTex; }; sampler2D _MainTex, _SpecularTex, _BumpMap, _AnisoTex; void surf (Input IN, inout SurfaceOutputAniso o) { fixed4 albedo = tex2D(_MainTex, IN.uv_MainTex); o.Albedo = albedo.rgb; o.Alpha = albedo.a; o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_MainTex)); fixed3 spec = tex2D(_SpecularTex, IN.uv_MainTex).rgb; o.Specular = spec.r; o.Gloss = spec.g; o.AnisoDir = fixed4(tex2D(_AnisoTex, IN.uv_AnisoTex).rgb, spec.b); } ENDCG } FallBack "Transparent/Cutout/VertexLit" }[/code]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值