u3d27-shader-镜面反射

u3d27-shader-镜面反射

ID:40576666

大小:104.00 KB

页数:9页

时间:2019-08-04

u3d27-shader-镜面反射_第1页
u3d27-shader-镜面反射_第2页
u3d27-shader-镜面反射_第3页
u3d27-shader-镜面反射_第4页
u3d27-shader-镜面反射_第5页
资源描述:

《u3d27-shader-镜面反射》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、u3d27-shader-镜面反射说实话镜面反射很简单,难就难在实现镜面反射的代码困难,但是现在我们的代码都是集成好的所以直接使用就可以了!我们创建一个组件作为我们要变成镜面的工具(一般我们选择plane),之后创建一个材质,在其属性界面选择我们shader创建的方法把我们创建的材质赋给我们要做成镜面的组件(plane),把我们的代码与我们的组件绑定!Ok我们的镜面就做好了!共享一段JS代码。。。。可以让我们创建的组件自行旋转欧!functionUpdate(){transform.Rotate(0,Time.deltaT

2、ime*10,0);}把代码共享如下:Shader文件:Shader"FX/MirrorReflection"{Properties{_MainTex("Base(RGB)",2D)="white"{}_ReflectionTex("Reflection",2D)="white"{TexGenObjectLinear}}//twotexturecards:fullthingSubshader{Pass{SetTexture[_MainTex]{combinetexture}SetTexture[_ReflectionTex

3、]{matrix[_ProjMatrix]combinetexture*previous}}}//fallback:justmaintextureSubshader{Pass{SetTexture[_MainTex]{combinetexture}}}}Cs文件:usingUnityEngine;usingSystem.Collections;//实际上ThisisinfactjusttheWaterscriptfromProStandardAssets,//justwithrefractionstuffremoved.[

4、ExecuteInEditMode]//Makemirrorlive-updateevenwhennotinplaymodepublicclassMirrorReflection:MonoBehaviour{publicboolm_DisablePixelLights=true;publicintm_TextureSize=256;publicfloatm_ClipPlaneOffset=0.07f;publicLayerMaskm_ReflectLayers=-1;privateHashtablem_Reflection

5、Cameras=newHashtable();//Camera->CameratableprivateRenderTexturem_ReflectionTexture=null;privateintm_OldReflectionTextureSize=0;privatestaticbools_InsideRendering=false;//Thisiscalledwhenit'sknownthattheobjectwillberenderedbysome//camera.Werenderreflectionsanddoot

6、herupdateshere.//Becausethescriptexecutesineditmode,reflectionsforthesceneview//camerawilljustwork!publicvoidOnWillRenderObject(){if(!enabled

7、

8、!renderer

9、

10、!renderer.sharedMaterial

11、

12、!renderer.enabled)return;Cameracam=Camera.current;if(!cam)return;//Safeguardfromrecu

13、rsivereflections.if(s_InsideRendering)return;s_InsideRendering=true;CamerareflectionCamera;CreateMirrorObjects(cam,outreflectionCamera);//findoutthereflectionplane:positionandnormalinworldspaceVector3pos=transform.position;Vector3normal=transform.up;//Optionallydi

14、sablepixellightsforreflectionintoldPixelLightCount=QualitySettings.pixelLightCount;if(m_DisablePixelLights)QualitySettings.pixelLightCount=0;UpdateCamer

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。