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

正规的营销型网站建设搜索引擎优化内容包括哪些方面

正规的营销型网站建设,搜索引擎优化内容包括哪些方面,邢台网站设计厂家,扬州网站建设 天维在上一篇文章中#xff0c;我写了一些关于Unity中各个坐标空间及其转换矩阵是如何得到的#xff0c;说实在的#xff0c;我是那种“记忆需要依靠外部装置存储”类、如同《攻壳机动队》的电子脑一样的人#xff0c;每次遇到问题了再去对着笔记慢慢翻找才是我的风格#xff…在上一篇文章中我写了一些关于Unity中各个坐标空间及其转换矩阵是如何得到的说实在的我是那种“记忆需要依靠外部装置存储”类、如同《攻壳机动队》的电子脑一样的人每次遇到问题了再去对着笔记慢慢翻找才是我的风格破晓Unity中常用矩阵的推导​zhuanlan.zhihu.com在文章中我漏了一个本该提到的内容那就是切线空间。一般在法线贴图中颜色都是偏蓝的按照颜色空间和坐标空间的对应来看z值一般都很大大部分情况下都是接近垂直于物体表面的。如果是不需要法线贴图的情况下还好说用NORMAL语义可以直接从顶点获得模型空间下的法线如果要使用法线贴图那就需要切线空间了。常识告诉我们构建一个空间笛卡尔直角坐标系需要三个互相垂直的基向量而常识又告诉我们两个向量的叉乘结果垂直于这两个向量构成的平面故我们可以用两个向量完成切线空间的构建。一个就是法线Normal一个是切线Tangent其叉乘结果为副切线Bitangent或者副法线Binormal这两种叫法我都看到过。以Unity官方的Shader例子举例v2f vert (float4 vertex : POSITION, float3 normal : NORMAL, float4 tangent : TANGENT, float2 uv : TEXCOORD0) {v2f o;//...half3 wNormal UnityObjectToWorldNormal(normal);half3 wTangent UnityObjectToWorldDir(tangent.xyz);// 计算其方向half tangentSign tangent.w * unity_WorldTransformParams.w;// 用世界空间下的法线、切线做叉乘得到副法线half3 wBitangent cross(wNormal, wTangent) * tangentSign;// 得到转换矩阵o.tspace0 half3(wTangent.x, wBitangent.x, wNormal.x);o.tspace1 half3(wTangent.y, wBitangent.y, wNormal.y);o.tspace2 half3(wTangent.z, wBitangent.z, wNormal.z);//...return o; }fixed4 frag (v2f i) : SV_Target {// 从法线贴图里采样并解码法线half3 tnormal UnpackNormal(tex2D(_BumpMap, i.uv));// 从切线空间转换到世界空间half3 worldNormal;worldNormal.x dot(i.tspace0, tnormal);worldNormal.y dot(i.tspace1, tnormal);worldNormal.z dot(i.tspace2, tnormal);//... }众所周知两个向量的叉乘不支持交换律会因为顺序的不同而具备有两个方向的结果而很多时候模型可能被缩放过导致它是镜像的为了避免该问题使用这个Vector4向量unity_WorldTransformParams的w值来保证如果模型被镜像偶数次则w1反之则为-1。这个矩阵一般被简称TBN矩阵用于将切线空间向其他坐标空间转换它需要使用到其他坐标空间下的法线和切线进行计算。而Unity又在UnityCG.cginc里提供了这样一个宏// Declares 3x3 matrix rotation, filled with tangent space basis #define TANGENT_SPACE_ROTATION float3 binormal cross( normalize(v.normal), normalize(v.tangent.xyz) ) * v.tangent.w; float3x3 rotation float3x3( v.tangent.xyz, binormal, v.normal )这里居然直接用模型坐标空间的法线和切线在做叉乘莫慌看看其他地方都用它干了啥哦视差贴图啊那没事了……冯乐乐已经谈到过这件事情【常见问题】关于法线转换的问题以及在切线空间下计算法线纹理的问题 · Issue #45 · candycat1992/Unity_Shaders_Book​github.com这涉及到非标准缩放的问题——这是因为Unity 5之前如果我们对一个模型A进行了非统一缩放Unity内部会重新在内存中创建一个新的模型B模型B的大小和缩放后的A是一样的但是它的缩放系数是统一缩放。换句话说在Unity 5以前实际上我们在Shader中根本不需要考虑模型的非统一缩放问题因为在Shader阶段非统一缩放根本就不存在了。但从Unity 5以后我们就需要考虑非统一缩放的问题了。说了这么多介绍类的东西还没说正题那就是为什么左乘TBN矩阵可以把向量转换出去我们先把TBN矩阵的运算写一下这个形式相当于与形如 的向量做了点积而 就是世界空间的基向量在切线空间的表示因为 是 在世界空间下对 轴基向量的投影 反过来也可以认为是 轴基向量在切线空间基向量 轴上的投影同理 和 也是如此。 对 做点积就相当于把自己投影了过去三个分量就是在世界坐标三个基向量上的投影长度组合起来的新的向量就是 在世界坐标空间下的表示。谈到这个就不得不说我在头发渲染中犯下的问题了破晓使用Kajiya-Kay模型的头发渲染​zhuanlan.zhihu.com此处做一个勘误。当时我信誓旦旦地这么写一个是副切线的计算问题不能直接用世界空间下的法线和切线cross而是应当在模型空间cross好再转换o.tangent mul(unity_ObjectToWorld, v.tangent); o.normal mul(unity_ObjectToWorld, v.normal); o.bitangent mul(unity_ObjectToWorld, cross(v.normal, v.tangent)); //错误写法o.bitangent cross(o.normal, o.tangent);其实是错误的因为本文提到过叉乘结果是有两个方向的我这边叉乘的顺序恰好得到的是相反的副切线而当时数学不过关大脑萎缩一看副切线结果不同想当然以为是没转换空间正确的写法应是o.normal UnityObjectToWorldNormal(v.normal); o.tangent UnityObjectToWorldDir(v.tangent.xyz); o.bitangent cross(v.normal, v.tangent) * v.tangent.w * unity_WorldTransformParams.w;其次是使用副切线而不是切线的问题这个是在Unity里材质预览窗看到的效果在Preview窗口切成Plane并输出tangent可以看到是红色的是水平而非垂直方向的所以高光偏移时要传入垂直方向上的副切线。利用叉乘同样还能从高度图中反推法线图fixed4 frag (v2f i) : SV_Target {float2 uvx0 i.uv - float2(_MainTex_TexelSize.x, 0) * 0.5;float2 uvx1 i.uv float2(_MainTex_TexelSize.x, 0) * 0.5;float2 uvy0 i.uv - float2(0, _MainTex_TexelSize.y) * 0.5;float2 uvy1 i.uv float2(0, _MainTex_TexelSize.y) * 0.5;float3 dx float3(_MainTex_TexelSize.x,0,(1 - tex2D(_MainTex, uvx1).r) - (1 - tex2D(_MainTex, uvx0).r));float3 dy float3(0,_MainTex_TexelSize.y,(1 - tex2D(_MainTex, uvy1).r) - (1 - tex2D(_MainTex, uvy0).r));float3 n cross(dx, dy);n.z * 10;//这里可以控制法线收束于z轴的程度float3 normal normalize(n);normal normal * 0.5 0.5; return float4(normal, 1); }我们分别在UV的x和y方向上单独讨论以x方向为例我们可以得知在该点处的梯度向量形如 此处高度上的插值反映在z轴上因为切线空间又可以被认为是局部物体表面空间xy平面被认为是uv而z轴穿插入物体表面。使用x和y方向单独计算出来的梯度向量就能够得到法线方向了。但有一点需要注意的是计算出来的法线需要手动调整收束程度以适配项目使用。比如想要更平缓的法线图就需要收束法线到z轴上更多一点。
http://www.yutouwan.com/news/8392/

相关文章:

  • 宁海建设局网站网络营销研究背景及意义
  • 北京专业网站维护公司网页设计实训报告设计图
  • 做推送的网站长沙公司网页设计
  • 做网站提成浏览器下载安装2022最新版
  • 做拼多多代运营网站怎样自己免费建设一个网站
  • 宁波seo培训谷歌seo优化是什么
  • 哪里有网站开发技术网站关键词搜不到了
  • 保定网站建设制作树洞app开发公司
  • 网站用视频做背景音乐河南定制网站建设企业
  • 网站推广服务网阿里巴巴网站费用怎么做分录
  • 余干网站建设制作安阳做网站优化
  • 如何做网站定位智慧校园网络建设方案
  • 乐度网上购物网站建设方案阿里巴巴采购网
  • 怎么关键词优化网站益阳营销型网站建设
  • 网站主机英文wordpress能放视频教程
  • 宁波网站建设与设计开发国内室内设计
  • 济宁网架公司想做个卷帘门百度优化网站
  • 建设厅官方网站下载专区tap自助建站
  • 网站积分方案权重高的网站是几
  • 企业网站页面宽哪里设置网站建设和运维单位责任
  • 网站导航做外链建设银行短信带网站
  • 网站什么时候备案指数运算法则
  • 怎么提高网站加载速度建设网站的网络公司
  • 网站备案号在哪里看直播开放平台登录
  • Centos建网站必须域名网站推广指标
  • 怎么样让网站快速收录建设报名系统官网考试平台
  • 做电影下载网站还赚钱吗怎么免费制作网页
  • 一个企业网站如何能放到互联网上 vps微信有哪些不正经的公众号
  • 怎么找到网站后台外贸营销网站怎么建设
  • 珠海新盈科技 网站建设小程序商城图标素材