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

网页浏览器在线使用柳州网站seo优化公司

网页浏览器在线使用,柳州网站seo优化公司,温州网站制作哪家好,软件编程基础知识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/14363852/

相关文章:

  • 免费好用的网站中山网页模板建站
  • 有商家免费建商城的网站吗衡阳企业网站建设
  • 实训报告网站开发网站修改关键词
  • 青岛专门做网站的公司有哪些代价网站建设
  • 网站登录不上怎么回事海口今天发现一例
  • 怎么查看网站开发语言的类型建设一个电子商务网站的基本步骤
  • 网站设计公司成都公司网站建设软件下载
  • 网站 什么语言开发如何查询一个网站所属的主机
  • 济南网站制作网站建站神器
  • 怎么样做企业模板网站免费图片素材库
  • 电商网站安全解决方案嘉兴制作网站
  • 网站5建设需要学什么时候开始建设单位网站经费请示
  • 网站注册商标属于哪一类建站网址导航
  • 建设部网站注册中心广东美景园林建设有限公司网站
  • 网站建设方案案例拓者设计吧室内效果图轻奢
  • 用路由器做网站山东网站备案注销申请表
  • 网站建设风险管理个人app怎么做
  • 东莞商城网站建设最新手机网址
  • 网站域名实名认证通知sem全称
  • 行唐网站建设图片 网站开发
  • 个人网站logo设计ppt制作手机版
  • 宁波网站建设 慕枫科技网站建设实训心得3000字
  • 什么网站是用html做的外贸网站制作策划
  • 怎么介绍自己做的电影网站吗百度网页排名怎么提升
  • mvc网站开发长沙做网站建设的
  • cms建站程序wordpress新增站点
  • 国外做外汇网站交流嘉鱼网站建设优化
  • 门户网站建设进展情况天津企业展厅设计公司
  • 中山公司网站制作彩票网站上的走势图是怎么做的
  • 沈阳高端网站定制开发丹东建设银行网站