unity shader forge1.27版为什么没有unity双面显示shader渲染

给我们留言
地址:福建省晋江市青阳街道洪山路国际工业设计园纳金网
电话: 400-067-3919
(周一到周五, 周六周日休息)
设计师入口
查看: 1446|回复: 5
最后登录注册时间阅读权限90积分6855
高级设计师, 积分 6855, 距离下一级还需 3145 积分
纳金币2139 精华0
Shader Forge可视化 Shader编辑器二-基础着色器通过本教程,你将学会创建一个基础shader,支持颜色,漫反射,法线贴图。
一、整体节点图与效果,Rukawa_Base.shader下载
二、详细步骤
1.打开Unity,通过Window-&Shader Forge打开Shader Forge编辑器2.Shader Forge启动界面3.创建一个新的Shader,保存在Assets-&Shaders目录,并取名Rukawa_Base.shader4.Shader Forge编辑界面,Shader Settings设置Path为Rukase/Base5.在编辑界面,点击右键,选择Properties-&Textrue 2D,创建2D贴图Diffuse节点与2D贴图Normal节点(勾选Normal map)6.在编辑界面,点击右键,选择Properties-&Color,创建一个颜色节点
7.在编辑界面,点击右键,选择Arithmetic-&Multiply,创建一个乘法节点
三、参考资料原文地址:/index.php?s=/home/article/detail/id/33.html下载Shader Forge 1.03:/Uploads/Attachment/Shader/Shader_Forge_1.03.unitypackage官方地址:/shaderforge/交流QQ:
最后登录注册时间阅读权限90积分5676
高级设计师, 积分 5676, 距离下一级还需 4324 积分
纳金币7264 精华0
Thanks for sharing this one !
最后登录注册时间阅读权限90积分25638
资深设计师, 积分 25638, 距离下一级还需 24362 积分
纳金币359 精华0
其实讲者东西一点用处没有,淡然不是说你了,是说这个教程,&&如果想使用节点式的shader,还得需要本人会shader才可以,如果连shader都不会,即使拖拽出来也不知道是什么东西的。
最后登录注册时间阅读权限90积分40069
资深设计师, 积分 40069, 距离下一级还需 9931 积分
纳金币25470 精华16
libufan 发表于
其实讲者东西一点用处没有,淡然不是说你了,是说这个教程,&&如果想使用节点式的shader,还得需要本人会sh ...
哈哈不凡说的有道理啊
最后登录注册时间阅读权限70积分3050
中级设计师, 积分 3050, 距离下一级还需 1950 积分
纳金币0 精华0
Thanks for sharing this one !
最后登录注册时间阅读权限30积分867
初级设计师, 积分 867, 距离下一级还需 133 积分
纳金币185 精华0
Thanks for sharing this one !
站长推荐 /1
纳金名模第147期装饰画3d模型:数量98个,大小为350MB。完全免费下载哦!这样的福利我和我的小伙伴们都惊呆了!!下载地址:
Powered by - X2.5
Narkii Inc.后使用快捷导航没有帐号?
只需一步,快速开始
&加载中...
查看: 593|回复: 52
给大家分享一个shaderforge的教程~
TA的其他好贴
马上注册,加入CGJOY,让你轻松玩转CGJOY。
才可以下载或查看,没有帐号?
本帖最后由 chenglinliu 于
11:29 编辑
img_ba6e.jpg (50.64 KB, 下载次数: 0)
18:42 上传
img_c22.png (174.86 KB, 下载次数: 0)
18:42 上传
QQ截图45.png (16.75 KB, 下载次数: 1)
18:42 上传
/23574.html
讲的非常仔细 很多算法的原理也都告诉你了
/s/1kV4b3If&&密码swzc 解压8779
后面两个版本是收肺的 有点贵 想一起买一起看的可以留言大家拼一下单
在线观看地址
/video/play31583.html
现在已经有四个人了
声明一下 拼单只为学习用 严禁拿去售卖!
可以联系我QQ
很好的资源!必须打赏以示感谢!
如何勾引别人关注你?
谢谢分享!!!!!!
本楼回复(<span id="dp_count_)
如何勾引别人关注你?
谢谢楼主分享~
本楼回复(<span id="dp_count_)
如何勾引别人关注你?
谢谢分享!
本楼回复(<span id="dp_count_)
如何勾引别人关注你?
感谢楼主发布如此优秀的资源
本楼回复(<span id="dp_count_)
如何勾引别人关注你?
拼单的加我 六个人了!
本楼回复(<span id="dp_count_)
如何勾引别人关注你?
牛逼啊的啊的 爱的啊发
本楼回复(<span id="dp_count_)
如何勾引别人关注你?
谢谢楼主分享~
本楼回复(<span id="dp_count_)
如何勾引别人关注你?
真的吗?是视频还是文字教程,感谢。
本楼回复(<span id="dp_count_)
如何勾引别人关注你?
本楼回复(<span id="dp_count_)
如何勾引别人关注你?
上海总部地址:联航路
Powered byshader forge问题_unity3d吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:68,880贴子:
shader forge问题收藏
给outline加了个值,为啥轮廓有断裂?怎么让他们连起来?
令所有人蒙羞!自学UI半个月,竟强过老司机?
额不懂帮顶
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或后使用快捷导航没有帐号?
只需一步,快速开始
&加载中...
查看: 344|回复: 1
Unity 5.3.4f1 shaderforge究竟用那个版本?
TA的其他好贴
Unity 5.3.4f1 shaderforge究竟用那个版本?
我在论坛里找到的资源都下载了,但都不能导入,这究竟是怎样弄?
如何勾引别人关注你?
论坛里的名字用了【】,导致u3d不能读取,晕死
本楼回复(<span id="dp_count_)
如何勾引别人关注你?
上海总部地址:联航路
Powered byunity(93)
Unity内置的Shader,都是单面效果,想必导入Mesh的同学都碰到过这样的痛苦,布料飘起的背面部分看起来是空气,汽车透过车窗看到是路面...各种蛋疼。
有些文章教导大家 把模型做出厚度来吧,这种做法实在太那个啥了......
其实用改写Shader的方法可以很方便的实现双面材质。
Unity里有3种Shader方式:
1.Fixed Function Shaders
2.Vertex and Fragment Shaders
3. Surface Shaders
关于这部分的详细介绍,请参考官方的教程。
这三种方式里,都可以通过直接在Shader代码头部添加一个Cull off 语句,实现强制双面渲染。
但是直接用Cull off的方式 有个重大的缺陷,这材质从两面看无论贴图、颜色、反光、照明情况,都是一模一样的,这并不符合大多数实际情况的常识。
在第1和第2种Shader里,是可以通过在一个渲染子程序里用两个渲染Pass来实现双面不同效果的,这部分网上的资料也很多,写起来也很简单直接。
这里主要讨论的是第三种也是最常用的Surface Shader的双面不同效果的实现。
Surface Shader是不能写在Pass里的,所以要实现它的双面不同效果就要用其他变通的办法。
首先去Unity官方网站下载一个内置Shader的代码包,链接如下:
/download_unity/builtin_shaders.zip
打开后看见一堆.shader文件,可以用任何文本编辑器打开。可以看见系统内建的Shader基本都是Surface方式。
这里随便打开一个Normal-BumpSpec.Shader 这是普通的高光-凹凸贴图材质
&&&&&&& 1.&&&&&&& Shader &Bumped Specular& {
&&&&&&& 2.&&&&&&& Properties {
&&&&&&& 3.&&&&&&&&&&& _Color (&Main Color&, Color) = (1,1,1,1)
4. _SpecColor (&Specular Color&, Color) = (0.5, 0.5, 0.5, 1)
&&&&&&& 5.&&&&&&&&&&& _Shininess (&Shininess&, Range (0.03, 1)) = 0.078125
&&&&&&& 6.&&&&&&&&&&& _MainTex (&Base (RGB) Gloss (A)&, 2D) = &white& {}
&&&&&&& 7.&&&&&&&&&&& _BumpMap (&Normalmap&, 2D) = &bump& {}
&&&&&&& 8.&&&&&&& }
&&&&&&& 9.&&&&&&& SubShader {
&&&&&&& 10.&&&&&&&&&&& Tags { &RenderType&=&Opaque& }
&&&&&&& 11.&&&&&&&&&&& LOD 400
&&&&&&& 12.&&&&&&&&&&&
&&&&&&& 13.&&&&&&& CGPROGRAM
&&&&&&& 14.&&&&&&& #pragma surface surf BlinnPhong
&&&&&&& 15.&&&&&&&
&&&&&&& 16.&&&&&&&
&&&&&&& 17.&&&&&&& sampler2D _MainT
&&&&&&& 18.&&&&&&& sampler2D _BumpM
&&&&&&& 19.&&&&&&& fixed4 _C
&&&&&&& 20.&&&&&&& half _S
&&&&&&& 21.&&&&&&&
&&&&&&& 22.&&&&&&& struct Input {
&&&&&&& 23.&&&&&&&&&&& float2 uv_MainT
&&&&&&& 24.&&&&&&&&&&& float2 uv_BumpM
&&&&&&& 25.&&&&&&& };
&&&&&&& 26.&&&&&&&
&&&&&&& 27.&&&&&&& void surf (Input IN, inout SurfaceOutput o) {
&&&&&&& 28.&&&&&&&&&&& fixed4 tex = tex2D(_MainTex, IN.uv_MainTex);
&&&&&&& 29.&&&&&&&&&&& o.Albedo = tex.rgb * _Color.
&&&&&&& 30.&&&&&&&&&&& o.Gloss = tex.a;
&&&&&&& 31.&&&&&&&&&&& o.Alpha = tex.a * _Color.a;
&&&&&&& 32.&&&&&&&&&&& o.Specular = _S
&&&&&&& 33.&&&&&&&&&&& o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));
&&&&&&& 34.&&&&&&& }
&&&&&&& 35.&&&&&&& ENDCG
&&&&&&& 36.&&&&&&& }
&&&&&&& 37.&&&&&&& FallBack &Specular&
&&&&&&& 38.&&&&&&& }
简单解说一下几个关键行:
第一行Shader &Bumped Specular& 指定了这个shader出现在Unity系统Shader菜单里的名字,如果要修改系统内建Shader的源代码,最好把这个名字改掉,否则和系统内建Shader重名啦。我是这样写的: Shader &Hog's shaders/BumpSpec_Twoside& ,这个shader会出现在Hog's shaders组里,系统会自动完成这个加载。
第二行Properties后面的一组以下划线开头的变量表示了这个渲染器需要设置的参数。对于一个高光-凹凸材质来说,需要材质颜色、反光颜色、反光率、材质贴图和法线贴图,这5个变量就对应这5个东西啦,详细请参考系统手册。
在第11行LOD 400 后面加上一行:Cull off,这个材质就会自动双面渲染了 Cull off表示双面都渲染,不写默认是Cull back,不渲染背面。你也可以写上Cull front,不渲染正面。
改完这行 ,把第一行改成你希望的名字,把这个shader文件拷贝到工程的assets目录底下,系统就能自动加载啦。
效果如图:
双面是双面了,但是哪有两面是一样亮、一样高光区域的....,全透光的砖墙,这种双面很少会用到吧。
如何做到双面不同效果呢?
前面说了Surface shader是不能写两个pass渲染不同面的,但其实surface方式可以写多个渲染过程,根本不需要pass的概念,Surface Shader可以这样写:
渲染正面的代码
Call front
渲染反面的代码
就可以实现双面不同的控制了。
根据这个原理,其实我们只要把系统内建shader的源代码复制一份,就能实现另一面不同效果了。以下供参考:
&&&&&&& 1.&&&&&&& Shader &Hog's shaders/BumpSpec_Twoside& {
&&&&&&& 2.&&&&&&& Properties {
&&&&&&& 3.&&&&&&& //正面5个参数
&&&&&&& 4.&&&&&&&&&&& _Color (&Main Color&, Color) = (1,1,1,1)
&&&&&&& 5.&&&&&&&&&&& _SpecColor (&Specular Color&, Color) = (0.5, 0.5, 0.5, 1)
&&&&&&& 6.&&&&&&&&&&& _Shininess (&Shininess&, Range (0.03, 1)) = 0.078125
&&&&&&& 7.&&&&&&&&&&& _MainTex (&Base (RGB) Gloss (A)&, 2D) = &white& {}
&&&&&&& 8.&&&&&&&&&&& _BumpMap (&Normalmap&, 2D) = &bump& {}
&&&&&&& 9.&&&&&&& //反面拷贝 改名 也是5个
&&&&&&& 10.&&&&&&&&&&& _BackColor (&Back Main Color&, Color) = (1,1,1,1)
&&&&&&& 11.&&&&&&&&&&& _BackSpecColor (&Back Specular Color&, Color) = (0.5, 0.5, 0.5, 1)
&&&&&&& 12.&&&&&&&&&&& _BackShininess (&Back Shininess&, Range (0.03, 1)) = 0.078125
&&&&&&& 13.&&&&&&&&&&& _BackMainTex (&Back Base (RGB) Gloss (A)&, 2D) = &white& {}
&&&&&&& 14.&&&&&&&&&&& _BackBumpMap (&Back Normalmap&, 2D) = &bump& {}
&&&&&&& 15.&&&&&&& }
&&&&&&& 16.&&&&&&& SubShader {
&&&&&&& 17.&&&&&&& Tags { &RenderType&=&Opaque& }
&&&&&&& 18.&&&&&&&&&&& LOD 400
&&&&&&& 19.&&&&&&&&&&& Cull back
&&&&&&& 20.&&&&&&& //开始渲染正面&&&
&&&&&&& 21.&&&&&&& CGPROGRAM
&&&&&&& 22.&&&&&&& //表明是surface渲染方式 主渲染程序是surf 光照模型是BLinnPhong
&&&&&&& 23.&&&&&&& #pragma surface surf BlinnPhong&
&&&&&&& 24.&&&&&&&
&&&&&&& 25.&&&&&&&
&&&&&&& 26.&&&&&&& sampler2D _MainT
&&&&&&& 27.&&&&&&& sampler2D _BumpM
&&&&&&& 28.&&&&&&& fixed4 _C
&&&&&&& 29.&&&&&&& half _S
&&&&&&& 30.&&&&&&&
&&&&&&& 31.&&&&&&& struct Input {
&&&&&&& 32.&&&&&&&&&&& float2 uv_MainT
&&&&&&& 33.&&&&&&&&&&& float2 uv_BumpM
&&&&&&& 34.&&&&&&& };
&&&&&&& 35.&&&&&&&
&&&&&&& 36.&&&&&&& void surf (Input IN, inout SurfaceOutput o) {
&&&&&&& 37.&&&&&&&&&&& fixed4 tex = tex2D(_MainTex, IN.uv_MainTex);
&&&&&&& 38.&&&&&&&&&&& o.Albedo = tex.rgb * _Color.
&&&&&&& 39.&&&&&&&&&&& o.Gloss = tex.a;
&&&&&&& 40.&&&&&&&&&&& o.Alpha = tex.a * _Color.a;
&&&&&&& 41.&&&&&&&&&&& o.Specular = _S
&&&&&&& 42.&&&&&&&&&&& o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));}
&&&&&&& 43.&&&&&&& ENDCG
&&&&&&& 44.&&&&&&&
&&&&&&& 45.&&&&&&&
&&&&&&& 46.&&&&&&&&&&& Cull front
&&&&&&& 47.&&&&&&& //开始渲染反面 其实和就是拷贝了一份正面渲染的代码 除了变量名要改&&&
&&&&&&& 48.&&&&&&& CGPROGRAM
&&&&&&& 49.&&&&&&& #pragma surface surf BlinnPhong
&&&&&&& 50.&&&&&&&
&&&&&&& 51.&&&&&&& sampler2D _BackMainT
&&&&&&& 52.&&&&&&& sampler2D _BackBumpM
&&&&&&& 53.&&&&&&& fixed4 _BackC
&&&&&&& 54.&&&&&&& half _BackS
&&&&&&& 55.&&&&&&&
&&&&&&& 56.&&&&&&& struct Input {
&&&&&&& 57.&&&&&&&&&&& float2 uv_BackMainT
&&&&&&& 58.&&&&&&&&&&& float2 uv_BackBumpM
&&&&&&& 59.&&&&&&& };
&&&&&&& 60.&&&&&&&
&&&&&&& 61.&&&&&&& void surf (Input IN, inout SurfaceOutput o) {
&&&&&&& 62.&&&&&&&&&&& fixed4 tex = tex2D(_BackMainTex, IN.uv_BackMainTex);
&&&&&&& 63.&&&&&&&&&&& o.Albedo = tex.rgb * _BackColor.
&&&&&&& 64.&&&&&&&&&&& o.Gloss = tex.a;
&&&&&&& 65.&&&&&&&&&&& o.Alpha = tex.a * _BackColor.a;
&&&&&&& 66.&&&&&&&&&&& o.Specular = _BackS
&&&&&&& 67.&&&&&&&&&&& o.Normal = UnpackNormal(tex2D(_BackBumpMap, IN.uv_BackBumpMap));}
&&&&&&& 68.&&&&&&& ENDCG
&&&&&&& 69.&&&&&&& }
&&&&&&& 70.&&&&&&& FallBack &Specular&
&&&&&&& 71.&&&&&&& }
这是个双面可以分别指定的高光-凹凸材质,注意几个要点:
properties部分只能出现一次,所以这是不能直接拷贝的。因为要为双面指定不同的参数,双面的参数变量名肯定不能一样,这个论坛里都是程序猿,没必要多解释了。我简单的把用于正面的5个参数前面都加上了一个Back用于反面。
在CG代码内部也要对应的应用相应的参数,反面的渲染代码就用刚才全部加了Back的那5个参数。
正面代码段用Cull back 开始 反面的代码用Cull front开始
以下是渲染效果:
一面是砖墙一面是木板。。蛋疼了没
这个模式下,双面也完全可以指定不同的材质,基本上你不用学习很多内建Shader和CG语法,通过简单的copy-paste就能组合出无穷的双面材质来了。
再提升一下,其实我们常用的双面效果,除了透明的材质以外,无非是两种:
一是反面和正面同样纹理,但是不需要高光、反射,只需要一个相对黯淡的被环境光照亮的材质,比如砖墙木盒衣服什么的
二是反面显示为单身或其他纹理,但也不需要高光、反射,只需要被环境光照亮,比如汽车内部 建筑物内部等等。
第一种情况,反面可以沿用正面纹理,但是以普通的Diffuse方式着色
第二种情况,反面不指定或者单独指定纹理,也以普通的Diffuse方式着色
两种情况,反面的渲染都可以借用系统内建Shader的Diffuse渲染代码来实现,方式一的代码:
&&&&&&& 1.&&&&&&& Shader &Hog's shaders/BumpSpec_Twoside1& {
&&&&&&& 2.&&&&&&& Properties {
&&&&&&& 3.&&&&&&&&&&& _Color (&Main Color&, Color) = (1,1,1,1)
&&&&&&& 4.&&&&&&&&&&& _SpecColor (&Specular Color&, Color) = (0.5, 0.5, 0.5, 1)
&&&&&&& 5.&&&&&&&&&&& _Shininess (&Shininess&, Range (0.03, 1)) = 0.078125
&&&&&&& 6.&&&&&&&&&&& _MainTex (&Base (RGB) Gloss (A)&, 2D) = &white& {}
&&&&&&& 7.&&&&&&&&&&& _BumpMap (&Normalmap&, 2D) = &bump& {}
&&&&&&& 8.&&&&&&&&&&& _BackColor (&Back Main Color&, Color) = (1,1,1,1)
&&&&&&& 9.&&&&&&& }
&&&&&&& 10.&&&&&&& SubShader {
&&&&&&& 11.&&&&&&&&&&& Tags { &RenderType&=&Opaque& }
&&&&&&& 12.&&&&&&&&&&& LOD 400
&&&&&&& 13.&&&&&&&&&&& Cull back
&&&&&&& 14.&&&&&&&&&&&
&&&&&&& 15.&&&&&&& CGPROGRAM
&&&&&&& 16.&&&&&&& #pragma surface surf BlinnPhong
&&&&&&& 17.&&&&&&&
&&&&&&& 18.&&&&&&&
&&&&&&& 19.&&&&&&& sampler2D _MainT
&&&&&&& 20.&&&&&&& sampler2D _BumpM
&&&&&&& 21.&&&&&&& fixed4 _C
&&&&&&& 22.&&&&&&& half _S
&&&&&&& 23.&&&&&&&
&&&&&&& 24.&&&&&&& struct Input {
&&&&&&& 25.&&&&&&&&&&& float2 uv_MainT
&&&&&&& 26.&&&&&&&&&&& float2 uv_BumpM
&&&&&&& 27.&&&&&&& };
&&&&&&& 28.&&&&&&&
&&&&&&& 29.&&&&&&& void surf (Input IN, inout SurfaceOutput o) {
&&&&&&& 30.&&&&&&&&&&& fixed4 tex = tex2D(_MainTex, IN.uv_MainTex);
&&&&&&& 31.&&&&&&&&&&& o.Albedo = tex.rgb * _Color.
&&&&&&& 32.&&&&&&&&&&& o.Gloss = tex.a;
&&&&&&& 33.&&&&&&&&&&& o.Alpha = tex.a * _Color.a;
&&&&&&& 34.&&&&&&&&&&& o.Specular = _S
&&&&&&& 35.&&&&&&&&&&& o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));}
&&&&&&& 36.&&&&&&& ENDCG
&&&&&&& 37.&&&&&&&
&&&&&&& 38.&&&&&&&&&&& Cull front
&&&&&&& 39.&&&&&&&&&&&
&&&&&&& 40.&&&&&&& CGPROGRAM
&&&&&&& 41.&&&&&&& #pragma surface surf Lambert
&&&&&&& 42.&&&&&&&
&&&&&&& 43.&&&&&&& sampler2D _MainT
&&&&&&& 44.&&&&&&& fixed4 _BackC
&&&&&&& 45.&&&&&&&
&&&&&&& 46.&&&&&&& struct Input {
&&&&&&& 47.&&&&&&&&&&& float2 uv_MainT
&&&&&&& 48.&&&&&&& };
&&&&&&& 49.&&&&&&&
&&&&&&& 50.&&&&&&& void surf (Input IN, inout SurfaceOutput o) {
&&&&&&& 51.&&&&&&&&&&& fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _BackC
&&&&&&& 52.&&&&&&&&&&& o.Albedo = c.
&&&&&&& 53.&&&&&&&&&&& o.Alpha = c.a;
&&&&&&& 54.&&&&&&& }
&&&&&&& 55.&&&&&&& ENDCG
&&&&&&& 56.&&&&&&& }
&&&&&&& 57.&&&&&&& FallBack &Specular&
&&&&&&& 58.&&&&&&& }
反面渲染的运算就直接借用了系统的Diffuse Shader,只不过纹理是沿用正面的纹理,只增加了一个反面的颜色变量用来模拟环境光亮度,与纹理混合实现反面效果。渲染效果如下:
方式二代码:
&&&&&&& 1.&&&&&&& Shader &Hog's shaders/BumpSpec_Twoside2& {
&&&&&&& 2.&&&&&&& Properties {
&&&&&&& 3.&&&&&&&&&&& _Color (&Main Color&, Color) = (1,1,1,1)
&&&&&&& 4.&&&&&&&&&&& _SpecColor (&Specular Color&, Color) = (0.5, 0.5, 0.5, 1)
&&&&&&& 5.&&&&&&&&&&& _Shininess (&Shininess&, Range (0.03, 1)) = 0.078125
&&&&&&& 6.&&&&&&&&&&& _MainTex (&Base (RGB) Gloss (A)&, 2D) = &white& {}
&&&&&&& 7.&&&&&&&&&&& _BumpMap (&Normalmap&, 2D) = &bump& {}
&&&&&&& 8.&&&&&&&&&&& _BackColor (&Back Main Color&, Color) = (1,1,1,1)
&&&&&&& 9.&&&&&&&&&&& _BackMainTex (&Back Base (RGB) Gloss (A)&, 2D) = &white& {}
&&&&&&& 10.&&&&&&& }
&&&&&&& 11.&&&&&&& SubShader {
&&&&&&& 12.&&&&&&&&&&& Tags { &RenderType&=&Opaque& }
&&&&&&& 13.&&&&&&&&&&& LOD 400
&&&&&&& 14.&&&&&&&&&&& Cull back
&&&&&&& 15.&&&&&&&&&&&
&&&&&&& 16.&&&&&&& CGPROGRAM
&&&&&&& 17.&&&&&&& #pragma surface surf BlinnPhong
&&&&&&& 18.&&&&&&&
&&&&&&& 19.&&&&&&&
&&&&&&& 20.&&&&&&& sampler2D _MainT
&&&&&&& 21.&&&&&&& sampler2D _BumpM
&&&&&&& 22.&&&&&&& fixed4 _C
&&&&&&& 23.&&&&&&& half _S
&&&&&&& 24.&&&&&&&
&&&&&&& 25.&&&&&&& struct Input {
&&&&&&& 26.&&&&&&&&&&& float2 uv_MainT
&&&&&&& 27.&&&&&&&&&&& float2 uv_BumpM
&&&&&&& 28.&&&&&&& };
&&&&&&& 29.&&&&&&&
&&&&&&& 30.&&&&&&& void surf (Input IN, inout SurfaceOutput o) {
&&&&&&& 31.&&&&&&&&&&& fixed4 tex = tex2D(_MainTex, IN.uv_MainTex);
&&&&&&& 32.&&&&&&&&&&& o.Albedo = tex.rgb * _Color.
&&&&&&& 33.&&&&&&&&&&& o.Gloss = tex.a;
&&&&&&& 34.&&&&&&&&&&& o.Alpha = tex.a * _Color.a;
&&&&&&& 35.&&&&&&&&&&& o.Specular = _S
&&&&&&& 36.&&&&&&&&&&& o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));}
&&&&&&& 37.&&&&&&& ENDCG
&&&&&&& 38.&&&&&&&
&&&&&&& 39.&&&&&&&&&&& Cull front
&&&&&&& 40.&&&&&&&&&&&
&&&&&&& 41.&&&&&&& CGPROGRAM
&&&&&&& 42.&&&&&&& #pragma surface surf Lambert
&&&&&&& 43.&&&&&&&
&&&&&&& 44.&&&&&&& sampler2D _BackMainT
&&&&&&& 45.&&&&&&& fixed4 _BackC
&&&&&&& 46.&&&&&&&
&&&&&&& 47.&&&&&&& struct Input {
&&&&&&& 48.&&&&&&&&&&& float2 uv_BackMainT
&&&&&&& 49.&&&&&&& };
&&&&&&& 50.&&&&&&&
&&&&&&& 51.&&&&&&& void surf (Input IN, inout SurfaceOutput o) {
&&&&&&& 52.&&&&&&&&&&& fixed4 c = tex2D(_BackMainTex, IN.uv_BackMainTex) * _BackC
&&&&&&& 53.&&&&&&&&&&& o.Albedo = c.
&&&&&&& 54.&&&&&&&&&&& o.Alpha = c.a;
&&&&&&& 55.&&&&&&& }
&&&&&&& 56.&&&&&&& ENDCG
&&&&&&& 57.&&&&&&& }
&&&&&&& 58.&&&&&&& FallBack &Specular&
&&&&&&& 59.&&&&&&& }
此方式下反面可以单独指定纹理,不指定就直接显示指定的反面颜色,渲染效果如下
以上只是介绍一个基本思想,在这个基础上能应该能衍生出无穷的变化。对自定义shader有兴趣的可以参考系统手册和Nvidia的CG教学手册。
不过千万不要动不动就使用双面材质,因为会增加系统负荷,应该只用在需要的地方。
把以上代码起个名字另存为.shader文件,导入工程assets,就能直接使用。
&&&&&&&&&&&&&&&&&&&&&&& ____________摘自盛典里的一位大神
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:92483次
积分:1265
积分:1265
排名:千里之外
原创:13篇
转载:124篇
评论:11条
(1)(1)(1)(3)(1)(8)(7)(8)(7)(5)(1)(1)(3)(1)(1)(3)(4)(10)(2)(10)(2)(2)(2)(2)(10)(36)(4)(3)

我要回帖

更多关于 shader forge1.27 的文章

 

随机推荐