shader效果中存在“缝隙”:(最后的代码中已经注释的很清楚了)
出现缝隙的原因:因为UV坐标是不连续的,所以会有缝隙。。。(法线的T,B,是根据U和V生成的,所以用法线也会有裂缝,这里的法线和下面用作mask的用法是不一样的)

三平面映射的效果:图中的边界是有过渡和缓冲,如下图

基本展示:
世界空间XY平面效果:
世界空间XZ展示:

存在的问题(不可避免的问题):!!!!!!!!!

宏观思路 :
(1)


(2)法线遮罩效果 和 思路:


(3)
换成noise图看不出缝隙!!!!

Shader "Unlit/TriPlanar_Code"
{Properties{_MainTex ("Texture", 2D) = "white" {}_Tilling("Main Tilling",Vector) = (1,1,1,1)_Contrast("Contrast",Range(1,10)) = 5}SubShader{Tags { "RenderType"="Opaque" }LOD 100Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;float3 normal : NORMAL;};struct v2f{float2 uv : TEXCOORD0;   float4 vertex : SV_POSITION;float3 worldPos : TEXCOORD01;float3 worldPivot : TEXCOORD02;float3 worldNormal : TEXCOORD03;};sampler2D _MainTex;float4 _MainTex_ST;float4 _Tilling;float _Contrast;v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = TRANSFORM_TEX(v.uv, _MainTex);o.worldPos = mul(unity_ObjectToWorld, v.vertex).xyz;o.worldPivot = mul(unity_ObjectToWorld, float4(0,0,0,1)).xyz;o.worldNormal = UnityObjectToWorldNormal(v.normal);return o;}// 根据法线的 三个轴  , 生成遮罩float3 NormalMask(float3 wNormal){float3 tempNormal =  pow(abs(wNormal),_Contrast);float3 mask = tempNormal /(tempNormal.x + tempNormal.y + tempNormal.z);return mask;}float4 TriPlanar(float3 maskValue,float3 worldPos,float3 worldPivot){float3 tempPos = ((worldPos - worldPivot) * _Tilling.xyz).xyz;//  xy 平面的像素正常显示 但是  其他轴对应平面的值不正确,所以 乘以 maskValue.z,屏蔽掉其它轴面的值。float4 colorZ = tex2D(_MainTex,tempPos.xy) * maskValue.z;float4 colorY = tex2D(_MainTex,tempPos.xz) * maskValue.y;float4 colorX = tex2D(_MainTex,tempPos.yz) * maskValue.x;//  三个轴面的正确结果相加  ,  归一化return normalize(colorX + colorY + colorZ); }fixed4 frag (v2f i) : SV_Target{float3 maskValue = NormalMask(i.worldNormal);float4 triColor = TriPlanar(maskValue,i.worldPos,i.worldPivot);return triColor;}ENDCG}}
}

平面映射的延申

TriPlanar


通过 在3DMax中的 ”顶点色“ 来控制顶点的运动幅度。。。
顶点动画在播放 但是 眼睛不要动, 骨头的根部不要动。

三平面映射TriPlanar相关推荐

  1. [深度学习论文笔记]Brain tumour segmentation using a triplanar ensemble of U-Nets 基于Unet三平面集成的脑肿瘤分割

    Brain tumour segmentation using a triplanar ensemble of U-Nets 基于U网络三平面集成的脑肿瘤分割 Published: May 2021 ...

  2. C# dotnet 获取某个字符所在 Unicode 字符平面映射

    在 dotnet 里面可以通过安装 System.Text.Encodings.Web 库拿到 UnicodeRanges 这个包含了 Unicode 标准的平面映射.但是我还没有找到如何判断一个字符 ...

  3. 渲染TA实战:三方向映射 UE4

    大家好我是来自搜狐畅游引擎部TA组的小源小榞小圆,这次是分享关于三方向映射纹理的做法. 三方向映射在制作地形贴图,和一些需要在任意角度覆盖模型的材质会比较常用到.比如苔藓.污渍.锈迹.以及最常用到的地 ...

  4. 【camera】自动驾驶感知系统实现(车道线检测和拟合、目标检测与跟踪、道路可行驶区域分割、深度估计、图像视野到BEV空间映射、像平面到地平面映射)

    自动驾驶感知系统实现(车道线检测和拟合.目标检测与跟踪.道路可行驶区域分割.深度估计.图像视野到BEV空间映射.像平面到地平面映射) 项目下载地址:项目下载地址 推理引擎下载地址:推理引擎下载地址 支 ...

  5. flash位图技术研究篇 9 2D平面映射球体

    原文:http://www.codeproject.com/KB/graphics/Sphere_mapping.aspx?msg=2178656 昨晚在codeproject 里面无意当中看了一篇关 ...

  6. flash位图技术研究篇(9):2D平面映射球体

    原文:http://www.codeproject.com/KB/graphics/Sphere_mapping.aspx?msg=2178656 昨晚在codeproject 里面无意当中看了一篇关 ...

  7. Tri-Planar-Mapping[三面映射]

    为什么要用三面映射 首先说说为什么要用三面映射吧.在很多情况下会遇到uv不规范,甚至没有uv的模型(至少我遇到了没有uv的模型),在这种情况下,如果还需要使用纹理映射,就需要生成合适的uv. 另外的, ...

  8. matlab线性平面映射求通项_代数学发展史: 线性空间

    刚刚工作的时候, 一个学生问我: 哪一个概念最能体现高等代数的本质? 我当时的回答是矩阵的特征值. 现在再回答这个问题的话, 答案就不一样了. 在由线性方程组发展出来的理论体系中, 有一个概念始终占据 ...

  9. 增强现实与照相机模型(OpenGL,在平面映射3D模型)

    一.原理 1.1 针孔照相机模型 在相机模型中,针孔相机是相对简单而常用的模型,且具有足够的精确度.简单的说,针孔相机模型就是把相机简化成小孔成像,图一是从照相机中心前面画出图像平面的图解.f标注的距 ...

最新文章

  1. 使用服务器测量网站性能,使用服务器时序测量网站性能
  2. php nl2br() 函数
  3. [Java基础]判断字符串指定字符类型
  4. position定位说明
  5. python列表常用操作_Python列表(list)常用操作方法小结
  6. Linux性能调优、Linux集群与存储等
  7. 将apache的htaccess转换为nginx的重写规则
  8. 《当程序员的那些狗日日子》三
  9. 地面监视雷达系统的设计与试验
  10. 视差角计算公式及其推导
  11. java pandora_Pandora FMS监视简介
  12. Navicat生成的.psc格式文件数据库导入
  13. mysql优化 个人笔记 (mysql锁机制 ) 非礼勿扰 -m10
  14. 墙内电线漏电了怎么办
  15. 新版盲盒商城V4.0完整系统源码+亲测可用
  16. 如何相对高效解决代码测评、训练过程中遇到的 Bug
  17. windows下使用vscode连接ubuntu服务器,使用xming将Ubuntu服务器端的图形界面转发到windows下
  18. 有没有一种文件系统可以支持所有的操作系统(Win+Linux+Mac)而且支持大文件而且不需要辅助软件呢?
  19. 时空幻境的体验分析:基于机制
  20. [转]孝心无价--毕淑敏

热门文章

  1. 2021-08-07 Gabor滤波器简介以及简单应用
  2. 决策树-离散连续值如何构造决策树
  3. 第一道火灾防线-手动报警按钮
  4. 故障转移之starwind共享存储篇
  5. WAIDC | 自然语言处理如何为行业应用赋能
  6. 一个在台积电工作3年的工程师写给学弟学妹们的信[转]
  7. 6/7/8/9/10/11代主板刷bios跳过校验方法刷修改bios自制bios方法
  8. 作为同班同学,我不得不说!华为,我们鄙视你!
  9. 纵横字谜算法_查找字谜的算法
  10. 神舟g7 ct7vk 显卡性能大幅下降的问题