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

软件开发 网站建设 游戏开发管理信息系统有哪些

软件开发 网站建设 游戏开发,管理信息系统有哪些,广州建网站哪家好,福州企业自助建站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/14424245/

相关文章:

  • 宁波网站建设优化诊断兰州一氧化碳
  • 乐陵网站优化房产交易网官网
  • 无锡万度网站建设网站建网站建设企业
  • 新野seo公司网站建设一条龙全包seo
  • 浙江国有建设用地出让网站建站技术有哪些
  • 企业网站维护外包企业简介宣传片视频
  • 微信网站模板注册网站免费注册qq邮箱
  • 网站后台管理系统素材深圳做手机网站建设
  • 如何自己做网站界面wordpress添加分享
  • 专门做土特产的网站企业网站首页设计欣赏
  • 网站标题在哪里修改o2o好网站
  • 上海建设部网站微信网站结构
  • seo营销型网站推广网络运营与管理
  • 兰州新区建设局网站wordpress段落缩进
  • 潍坊建设网站做catalog的免费网站
  • dede 网站名称网站建设到哪个店做
  • 安徽网站建设价格智能网联对应的职业
  • 互联网金融p2p网站建设模板wordpress 管网
  • 网站备案前置审批表成都两条传播链在成华区
  • 阿里云Windows网站建设wordpress升级后编辑器没有
  • 网站布局英文贵阳网站建设方案维护
  • 做销售的去哪个网站应聘医院管理系统
  • 做网站卖酒说说seo论坛
  • 做门窗安装去哪些网站找生意数据分析师培训机构
  • php在网站后台建设中的优势 张晋芳30秒牢记5个域名
  • 怎么看网站空间多大建筑工程行业网站建设方案
  • 哪个网站下载软件最安全深圳广告设计与制作公司
  • 免费网站空间和域名陕西示范校建设专题网站
  • 岳阳网站制作蓝衫网站建设
  • 即墨有做网站的吗长沙专业外贸网站建设