当前位置: 首页 > news >正文

建设网站建设哪家便宜培训班报名

建设网站建设哪家便宜,培训班报名,wordpress 主题目录注册,网站字体一般大小Unity引擎制作假室内效果 大家好#xff0c;我是阿赵。   这次来介绍一种使用CubeMap做假室内效果的方式。这种技术名叫InteriorCubeMap#xff0c;是UE引擎自带的节点效果。我这里是在Unity引擎里面的实现。 一、效果展示 这个假室内效果#xff0c;要动态看才能看出效… Unity引擎制作假室内效果 大家好我是阿赵。   这次来介绍一种使用CubeMap做假室内效果的方式。这种技术名叫InteriorCubeMap是UE引擎自带的节点效果。我这里是在Unity引擎里面的实现。 一、效果展示 这个假室内效果要动态看才能看出效果各位可以看看上面的视频 简单来说从不同的角度看这个面片看到的里面的内容会随着视角的变化而变化感觉好像从窗外观看室内的效果。 二、原理分析 实际上并没有什么室内效果那些都是一个一个的面片来的。 面片所显示的内容其实是CubeMap贴图。   CubeMap贴图的用法之前在写天空盒变化的文章里面介绍过各位可以去看看   https://blog.csdn.net/liweizhao/article/details/129603219   当时的CubeMap采样时通过计算世界空间的ViewDir和世界空间的法线方向来做的 float3 worldViewDir UnityWorldSpaceViewDir(i.worldPos); worldViewDir normalize(worldViewDir); float3 worldReflect reflect(worldViewDir,i.worldNormal); float4 col texCUBE(_SkyTex1, worldReflect)所以如果使用在一个面片上面也能做到里面的内容跟随这视角变化而变化但由于面片的法线方向都是朝着同一个方向的所以显示在上面的CubeMap是一个平面的效果。 但这个InteriorCubeMap的计算采样CubeMap的UV的方式比较特别它会模拟成一个方形来采样CubeMap。   我把这个InteriorCubeMap节点的代码模拟成一个方法求出一个采样的UV float3 InteriorCubeMap(float3 worldPosition, float3 worldTangent,float3 worldNormal,float3 worldBitangent,float2 uv) {float3 tanToWorld0 float3(worldTangent.x, worldBitangent.x, worldNormal.x);float3 tanToWorld1 float3(worldTangent.y, worldBitangent.y, worldNormal.y);float3 tanToWorld2 float3(worldTangent.z, worldBitangent.z, worldNormal.z);float3 worldViewDir UnityWorldSpaceViewDir(worldPosition);worldViewDir normalize(worldViewDir);float3 tanViewDir tanToWorld0 * worldViewDir.x tanToWorld1 * worldViewDir.y tanToWorld2 * worldViewDir.z;tanViewDir Unity_SafeNormalize(tanViewDir);float3 step1Val (float3(-1, -1, 1) * tanViewDir);float3 step2Val (1.0 / step1Val);float3 step3Val (float3(((frac(((uv * float2(1, -1)) * (_Tilling).xx)) * float2(2, -2)) - float2(1, -1)), -1.0*_Depth));float3 step4Val (abs(step2Val) - (step2Val * step3Val));float3 step5Val ((min(min(step4Val.x, step4Val.y), step4Val.z) * step1Val) step3Val);return (float3(step5Val.z, step5Val.x, step5Val.y)); }通过调节Depth参数可以模拟不同深度的室内效果。 通过调节Tilling平铺次数可以模拟多个相同的房间放在一起的效果。 三、代码 Shader azhao/InteriorCubeMapTest {Properties{_Tilling(Tilling, Vector) (1,1,1,1)_CubeTex(Texture Sample 0, CUBE) white {}_Depth(Depth,Range(0,5)) 1}SubShader{Tags { RenderType Opaque }LOD 100Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include UnityCG.cginc#include UnityStandardBRDF.cgincstruct appdata{float4 vertex : POSITION;float4 color : COLOR;float4 tangent : TANGENT;float3 normal : NORMAL;float2 uv : TEXCOORD0;};struct v2f{float4 vertex : SV_POSITION;float2 uv : TEXCOORD0;float3 worldPos : TEXCOORD1;float3 worldTangent : TEXCOORD2;float3 worldNormal : TEXCOORD3;float3 worldBitangent : TEXCOORD4;};samplerCUBE _CubeTex;float2 _Tilling;float _Depth;float3 InteriorCubeMap(float3 worldPosition, float3 worldTangent,float3 worldNormal,float3 worldBitangent,float2 uv){float3 tanToWorld0 float3(worldTangent.x, worldBitangent.x, worldNormal.x);float3 tanToWorld1 float3(worldTangent.y, worldBitangent.y, worldNormal.y);float3 tanToWorld2 float3(worldTangent.z, worldBitangent.z, worldNormal.z);float3 worldViewDir UnityWorldSpaceViewDir(worldPosition);worldViewDir normalize(worldViewDir);float3 tanViewDir tanToWorld0 * worldViewDir.x tanToWorld1 * worldViewDir.y tanToWorld2 * worldViewDir.z;tanViewDir Unity_SafeNormalize(tanViewDir);float3 step1Val (float3(-1, -1, 1) * tanViewDir);float3 step2Val (1.0 / step1Val);float3 step3Val (float3(((frac(((uv * float2(1, -1)) * (_Tilling).xy)) * float2(2, -2)) - float2(1, -1)), -1.0*_Depth));float3 step4Val (abs(step2Val) - (step2Val * step3Val));float3 step5Val ((min(min(step4Val.x, step4Val.y), step4Val.z) * step1Val) step3Val);return (float3(step5Val.z, step5Val.x, step5Val.y));}v2f vert(appdata v){v2f o;o.worldTangent UnityObjectToWorldDir(v.tangent);o.worldNormal UnityObjectToWorldNormal(v.normal);float vertexTangentSign v.tangent.w * unity_WorldTransformParams.w;float3 worldBitangent cross(o.worldNormal, o.worldTangent) * vertexTangentSign;o.worldBitangent.xyz worldBitangent;o.uv v.uv;o.vertex UnityObjectToClipPos(v.vertex);o.worldPos mul(unity_ObjectToWorld, v.vertex).xyz;return o;}half4 frag(v2f i) : SV_Target {float3 cubeUV InteriorCubeMap(i.worldPos,i.worldTangent, i.worldNormal, i.worldBitangent, i.uv);half4 finalColor texCUBE(_CubeTex, cubeUV);return finalColor;}ENDCG}}}
http://www.hkea.cn/news/14589409/

相关文章:

  • 之梦系统怎么修改网站标头图片东莞网络推广公司电话
  • 怎么检查网站有没有做跳转如何设置多个首页wordpress
  • 学校网站怎么建设wordpress自定义筛选
  • wordpress 图片站模板抖音seo工具
  • 百度搜索网站优化怎样开设网站
  • 百度竞价 十一 pc网站 手机网站建设公司网站标题
  • wordpress友情链接直接留空白代码杭州网站运营十年乐云seo
  • 网站模块是指什么地方wordpress查询数据库结构
  • 即墨网站优化事业单位网站登录模板
  • 郑州网站优化公司平台全自动推广引流软件免费
  • 关闭网站需要多久做网站比较大的公司
  • 网站建设案例算命网站怎么免费搭建属于自己的网站
  • 太湖县住房和城乡建设局网站文本网站代码空两格怎么做
  • 企业网站制作托管装修公司网站用的织梦
  • 深圳市企业网站seo营销工具wordpress 留言页面
  • 用易语言做网站网站建设咨询服务
  • 合肥网站建设方案做网站济南西
  • 网站建设客户开发方法关键词排名优化方法
  • 汕尾网站建设apache wordpress 伪静态
  • 免费企业网站注册游戏开发师
  • 佛山专业网站制作公司网站图片设置链接
  • 做全景的h5网站互联网推广专员做什么的
  • 金坛网站建设云端网站建设
  • 做网站需要学什么专业网站为什么不被收录
  • oa系统网站建设建站开发工具
  • 涉及部署未备案网站比wordpress好用
  • 建设企业官方网站佛山网站优化好
  • vs做网站链接sqlwordpress地址站点地址
  • 万年县建设银行网站拼音全称用微信登陆 wordpress
  • 北京企业网站推广价格wordpress飘花特效