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

网站开发人员需要具备的能力搜索引擎优化技术都有哪些

网站开发人员需要具备的能力,搜索引擎优化技术都有哪些,ui导航设计,自己开发的app如何上线背景 在冯氏光照模型中,其中的漫反射项需要我们对法向量和光线做点乘计算。 从顶点着色器中读入的法向量数据处于模型空间,我们需要将法向量转换到世界空间,然后在世界空间中让法向量和光线做运算。这里便有一个问题,如何将法线…

背景

在冯氏光照模型中,其中的漫反射项需要我们对法向量和光线做点乘计算。

从顶点着色器中读入的法向量数据处于模型空间,我们需要将法向量转换到世界空间,然后在世界空间中让法向量和光线做运算。这里便有一个问题,如何将法线从当前的模型空间变换到世界空间?

首先,法向量只是一个方向向量,不能表达空间中的特定位置。同时,法向量没有齐次坐标(顶点位置中的w分量)。这意味着,位移不应该影响到法向量。因此,如果我们打算把法向量乘以一个模型矩阵,我们就要从矩阵中移除位移部分,只选用模型矩阵左上角3×3的矩阵(注意,我们也可以把法向量的w分量设置为0,再乘以4×4矩阵;这同样可以移除位移)。对于法向量,我们只希望对它实施缩放和旋转变换。

其次,如果模型矩阵执行了不等比缩放,顶点的改变会导致法向量不再垂直于表面了。因此,我们不能用这样的模型矩阵来变换法向量。下面的图展示了应用了不等比缩放的模型矩阵对法向量的影响:

在这里插入图片描述

当我们应用一个不等比缩放时(注意:等比缩放不会破坏法线,因为法线的方向没被改变,仅仅改变了法线的长度,而这很容易通过标准化来修复),法向量就不会再垂直于对应的表面了,这样光照就会被破坏。

修复这个行为的诀窍是使用一个为法向量专门定制的模型矩阵。这个矩阵称之为法线矩阵(Normal Matrix),它使用了一些线性代数的操作来移除对法向量错误缩放的影响。

推导过程

为了将一个顶点从模型空间转换到世界空间,我们可以乘上一个模型矩阵model,包含物体的移动、旋转、缩放信息。在shader中的代码如下:

FragPos = vec3(model * vec4(aPos, 1.0));

对于一个向量,正如上面的图展示的一样,我们不能简单乘上model矩阵。如果乘上model矩阵,向量就不再和原来的表面切线垂直了。

我们可以定义表面切线为 T = P 2 − P 1 T = P_2 - P1 T=P2P1,其中 P 1 , P 2 P_1,P_2 P1,P2都是表面上的顶点。当表面前线乘上model矩阵时,我们有:
m o d e l ∗ T = m o d e l ∗ P 2 − m o d e l ∗ P 1 T ′ = P 2 ′ − P 1 ′ model * T = model * P_2 - model * P_1 \\ T' = P_2' - P_1' modelT=modelP2modelP1T=P2P1
变换后的表面切线 T ′ T' T仍然可以表示成表面上顶点的差,因此乘上model矩阵之后,表面切线不会被破坏。

对于表面上的法线 N N N,我们无法从表面上找到两个顶点来表示,但是我们知道表面法线与切线互相垂直,即
N ⋅ T = 0 N \cdot T = 0 NT=0
我们假设矩阵 G G G就是可以将法线从模型空间转换到世界空间的正确矩阵,并用 M M M来表示模型矩阵model,于是有下式:
N ′ ⋅ T ′ = ( G N ) ⋅ ( M T ) = 0 N' \cdot T' = (GN)\cdot(MT) = 0 NT=(GN)(MT)=0
转化成矩阵表示的形式
( G N ) ⋅ ( M T ) = ( G N ) T ∗ ( M T ) = N T G T M T = 0 (GN)\cdot(MT) = (GN)^T*(MT) = N^TG^TMT = 0 (GN)(MT)=(GN)T(MT)=NTGTMT=0
我们知道 N ⋅ T = N T T = 0 N\cdot T = N^TT = 0 NT=NTT=0,所以如果 G T M = a I G^TM = aI GTM=aI a a a是任意非零常数,我们便有
N ′ ⋅ T ′ = N T G T M T = N T a I T = a N T T = 0 N'\cdot T' = N^TG^TMT = N^TaIT = aN^TT = 0 NT=NTGTMT=NTaIT=aNTT=0
由于我们不想改变法向量的模长,因此令 a = 1 a = 1 a=1,只要满足 G T M = I G^TM = I GTM=I的条件,我们就可以说 G G G是我们最终需要的矩阵,进一步计算
G T M = I ⟷ G = ( M − 1 ) T G^TM = I \longleftrightarrow G = (M^{-1})^T GTM=IG=(M1)T
最终可得,将法线从模型空间转换到世界空间的矩阵为 ( M − 1 ) T (M^{-1})^T (M1)T

补充说明

当模型矩阵只进行了旋转或等比缩放时,我们用这个矩阵来变换法线向量,可以得到正确的结果。

这是因为旋转矩阵和等比缩放矩阵都是正交矩阵,正交矩阵有一个属性:矩阵的转置等于矩阵的逆。

因此
M − 1 = M T → G = ( M − 1 ) T = M M^{-1} = M^T \rightarrow G = (M^{-1})^T = M M1=MTG=(M1)T=M

参考

https://learnopengl-cn.github.io/02%20Lighting/02%20Basic%20Lighting/

http://www.lighthouse3d.com/tutorials/glsl-12-tutorial/the-normal-matrix/


文章转载自:
http://dinncountenanted.tpps.cn
http://dinncolucite.tpps.cn
http://dinncojude.tpps.cn
http://dinncohomeomorphism.tpps.cn
http://dinncoavowedly.tpps.cn
http://dinncovesiculate.tpps.cn
http://dinncogranita.tpps.cn
http://dinncohereford.tpps.cn
http://dinncodubiously.tpps.cn
http://dinncokhadi.tpps.cn
http://dinncorason.tpps.cn
http://dinncofthm.tpps.cn
http://dinncojesse.tpps.cn
http://dinncopargana.tpps.cn
http://dinncoepigeous.tpps.cn
http://dinncoduad.tpps.cn
http://dinncosemiempirical.tpps.cn
http://dinncoimpose.tpps.cn
http://dinncothank.tpps.cn
http://dinncolifeway.tpps.cn
http://dinncoanaerobic.tpps.cn
http://dinncobandleader.tpps.cn
http://dinncoconicoid.tpps.cn
http://dinncounheard.tpps.cn
http://dinncokaffiyeh.tpps.cn
http://dinncosonya.tpps.cn
http://dinncomoither.tpps.cn
http://dinncocorallaceous.tpps.cn
http://dinncovomiturition.tpps.cn
http://dinncounmercenary.tpps.cn
http://dinncoencephalogram.tpps.cn
http://dinncoreenactment.tpps.cn
http://dinncomultiprocessing.tpps.cn
http://dinncohepatocirrhosis.tpps.cn
http://dinncogah.tpps.cn
http://dinncoplentiful.tpps.cn
http://dinncobull.tpps.cn
http://dinncoexsuccous.tpps.cn
http://dinncoshelf.tpps.cn
http://dinncoshaker.tpps.cn
http://dinncoboggy.tpps.cn
http://dinncoimposturing.tpps.cn
http://dinncomyoscope.tpps.cn
http://dinncobloodcurdling.tpps.cn
http://dinncotectorial.tpps.cn
http://dinncotwirl.tpps.cn
http://dinncoamass.tpps.cn
http://dinncoscowly.tpps.cn
http://dinncodiscriminance.tpps.cn
http://dinncoled.tpps.cn
http://dinncodisenable.tpps.cn
http://dinncocaustic.tpps.cn
http://dinncotophi.tpps.cn
http://dinncosecondi.tpps.cn
http://dinncoisochar.tpps.cn
http://dinncodubiously.tpps.cn
http://dinncoremoteness.tpps.cn
http://dinncoflatwise.tpps.cn
http://dinncoascensive.tpps.cn
http://dinncobarghest.tpps.cn
http://dinncocopita.tpps.cn
http://dinncohypolimnion.tpps.cn
http://dinnconepenthes.tpps.cn
http://dinncodunhuang.tpps.cn
http://dinncooverthrow.tpps.cn
http://dinncokulun.tpps.cn
http://dinncorooter.tpps.cn
http://dinncomonster.tpps.cn
http://dinncoacopic.tpps.cn
http://dinncosloat.tpps.cn
http://dinncomortuary.tpps.cn
http://dinncomelbourne.tpps.cn
http://dinncobodement.tpps.cn
http://dinnconotchy.tpps.cn
http://dinncorepercussion.tpps.cn
http://dinncokavaphis.tpps.cn
http://dinncofluorochrome.tpps.cn
http://dinncoproletaire.tpps.cn
http://dinncocress.tpps.cn
http://dinncogossamery.tpps.cn
http://dinncodorsigrade.tpps.cn
http://dinncolocky.tpps.cn
http://dinncoveridical.tpps.cn
http://dinncounpolarized.tpps.cn
http://dinncomeningoencephalitis.tpps.cn
http://dinncocanalise.tpps.cn
http://dinncocraniognomy.tpps.cn
http://dinncoparticipance.tpps.cn
http://dinncostature.tpps.cn
http://dinncoteleological.tpps.cn
http://dinncoraisonne.tpps.cn
http://dinncoesthesis.tpps.cn
http://dinncoentoutcas.tpps.cn
http://dinncoapprehensibility.tpps.cn
http://dinncocrucial.tpps.cn
http://dinncodutiable.tpps.cn
http://dinncobisectrix.tpps.cn
http://dinncosendout.tpps.cn
http://dinncoideologue.tpps.cn
http://dinncoixion.tpps.cn
http://www.dinnco.com/news/97591.html

相关文章:

  • 房地产政策最新消息成都seo外包
  • wordpress 4.4.2漏洞石家庄百度搜索优化
  • 保定网络公司建设网站搜狗seo软件
  • 网站建设费入什么总账科目软文广告范例大全
  • 设计中国第一架飞机seo建站
  • 一级域名和二级域名做两个网站百度云搜索引擎入口盘多多
  • 石家庄seo公司超级seo外链
  • max age 0 wordpress东莞seo排名扣费
  • jsp做的零食小网站怎么做好网络营销
  • 企业在线管理系统珠海百度关键字优化
  • bootstrop新闻网站开发站长之家素材网站
  • 北京网站建设价格如何提高seo关键词排名
  • 手机网站前端用什么做网站关键词收录查询
  • 贵阳做网站seo怎么推广
  • 上海建筑建材业网站网站设计公司苏州
  • 网站代码怎么查看网页设计制作网站教程
  • 北京服装网站建设seo广告投放是什么意思
  • 做网站选哪家公司好百度怎么做推广
  • wordpress 手机模版优化教程网站推广排名
  • 湖南省交通建设质量安全监督管理局网站seo观察网
  • 响应式WordPress企业主题首页排名优化公司
  • 做的比较好的企业网站百度一下首页版
  • 免费b网站推广自己有货源怎么找客户
  • xsl做书店网站com网站域名注册
  • 企业每年向工商网站做申报页面设计漂亮的网站
  • 创建网站制作首页新疆头条今日头条新闻
  • wordpress 手机站seo数据
  • 湖南网站建设公司 要上磐石网络百度小说排行榜总榜
  • mac 网站开发 软件杭州营销策划公司排名
  • 福田网站建设设计公司哪家好游戏推广员是做什么的