• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            月下的博客

              C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
              34 Posts :: 0 Stories :: 59 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(5)

            我參與的團(tuán)隊(duì)

            搜索

            •  

            最新評(píng)論

            • 1.?re: 五年感想
            • 5年一轉(zhuǎn)眼,我已經(jīng)進(jìn)入工作的第9個(gè)年頭了,缺少的是思考,一直安于現(xiàn)狀,也該反思了
            • --liquanhai
            • 2.?re: 五年感想
            • 認(rèn)為是設(shè)計(jì)-》現(xiàn)在轉(zhuǎn)變?yōu)槿?!
            • --linda
            • 3.?re: 五年感想
            • 決定游戲成功的因素
            • --linda
            • 4.?re: 五年感想
            • 果真人會(huì)沉淀是真的
            • --張恒
            • 5.?re: 五年感想
            • 樓主 最近股市大漲
              希望你能再接再厲
              再創(chuàng)輝煌
            • --ccsdu2009

            閱讀排行榜

            評(píng)論排行榜

               這兩天在準(zhǔn)備面試,然后復(fù)習(xí)了下數(shù)學(xué)的東西,好多東西以前基礎(chǔ)不好,就是走馬觀花的看一下,過了一段時(shí)間立馬就忘記了,索性記下來的好。這里的3D空間都是右手坐標(biāo)系,向量為列為主
            一,法線變換乘WorldView矩陣的逆的轉(zhuǎn)置
            肯定不是直接乘worldView矩陣了,推導(dǎo)其實(shí)很簡(jiǎn)單,(像我這樣腦子不行的只能看完了感慨了)設(shè)原mesh上一個(gè)頂點(diǎn)為v,其法線為n,WorldViewMatrix為Mwv,那么在object space里,滿足v dot n == 0,以此我們可以換個(gè)形式表示,也就是(v)T * n == 0, (1x4和4x1的矩陣相乘實(shí)際就是點(diǎn)乘了),那么在變換之后,設(shè)變化后的頂點(diǎn)為v',變換后的法線為n',那么同樣也需要滿足這個(gè)條件,
            (v')T * n' == 0, 而v' = Mwv * v,
            代入=> (Mwv * v)T * n' == 0 =>  vT * MwvT * n'  == 0,  而n'等于Mn * n(我們要求的),
            =>vT * (MwvT * Mn )* n == 0 ,而(v)T * n == 0, 那么中間的(MwvT * Mn )== I => Mn = (MwvT)-1,而因?yàn)榉疥嚕ó?dāng)然得有逆的情況。。)的逆的轉(zhuǎn)置等于轉(zhuǎn)置的逆,所以就能證明出來咯~。我剛想了下,應(yīng)該行為主的結(jié)果也是一樣的,這里錯(cuò)了話,望糾正。


            二,判斷點(diǎn)是否在三角形內(nèi)準(zhǔn)備筆試的時(shí)候正好看到這道題,以前在ogre代碼里也看到過,但原理沒深究過,google中文搜了下,貌似沒什么講的很好的,英文一搜就搜到了很多非常詳細(xì)的。這里就做個(gè)整理吧,省得和我一樣的搜兩次了~~。設(shè)三角形ABC,點(diǎn)為P,(向量我就寫成行形式了~)
            1,面積法,基本上是最直接低效的,點(diǎn)P如果在三角形內(nèi),則分割的三個(gè)三角形面積和等于ABC面積,這個(gè)不說了。
            2,網(wǎng)上最常見的,所謂的2D叉乘法,實(shí)際上叉乘是不存在于2D空間的,只存在于3D和7D(!。。這個(gè)沒細(xì)看。反正wiki還是哪里看到的),但2D空間里我們可以用一點(diǎn)小技巧,就是假設(shè)一個(gè)垂直于xy平面的z軸,那么2D平面的z值則一直為0,設(shè) 向量B-A為V1(x1,y1,z1),向量P-A為V2(x2,y2,z2),根據(jù)3D叉乘公式,(x1,y1,z1)  X (x2,y2,z2) = (y1z2 - y2z1, x1z2-x2z1, x1y2-x2y1),由于z為0,那么x,y則為0,所以實(shí)際2d叉乘值就是z值,其實(shí)我們得到的還是一個(gè)向量,它垂直于我們2d空間的xy平面,不管是順時(shí)針還是逆時(shí)針,我們只要按一個(gè)方向同樣再對(duì)另外兩邊做同樣的叉乘,只要得到的這三個(gè)值符號(hào)一致,這就說明點(diǎn)P在三角形三邊的同一側(cè),也就是在三角形內(nèi)了,其實(shí)再想想,只需要確定在兩條邊的同側(cè),那么就是在三角形內(nèi)了。
            3,重心法,從二維空間上看,我們可以把p當(dāng)乘以以三角形一個(gè)頂點(diǎn)的兩條邊向量乘以兩個(gè)標(biāo)量權(quán)重的和,設(shè)這兩個(gè)權(quán)重為u,v,只要u,v大于0,且和小于1,那么P就在三角形內(nèi),所以我們下來就是求出u,v了:
            =>P = A +  u * (C - A)+ v * (B - A), u,v這也就是三角形的重心坐標(biāo)系坐標(biāo),這就是個(gè)二元一次方程,這里我們化簡(jiǎn)下,設(shè)P-A為v2, C - A為v0,B - A為v1,
             =>v2 = u * v0 + v*v1, 乘v0,v1我們就能得到兩個(gè)方程
            =>v2 * v0 = (u * v0 + v*v1)* v0, (1)
                v2 * v1 = (u * v0 + v*v1)* v1, (2)
            略化簡(jiǎn)。。
            =>u = ((v1 * v1)(v2 * v0) - (v1 * v0)(v2 * v1))/(((v0 * v0)(v1 * v1) - (v0 * v1)(v1 * v0))
            v = ((v0 * v0)(v2 * v1) - (v0 * v1)(v2 * v0))/(((v0 * v0)(v1 * v1) - (v0 * v1)(v1 * v0))
            posted on 2011-04-03 20:26 月下圓舞曲 閱讀(508) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 開發(fā)
            99久久免费国产特黄| 精品伊人久久久| 精品国产综合区久久久久久| 日本欧美国产精品第一页久久| 超级97碰碰碰碰久久久久最新| 久久99精品国产自在现线小黄鸭| 国内精品久久久久久久涩爱| 伊人久久综合精品无码AV专区| 品成人欧美大片久久国产欧美...| 99久久做夜夜爱天天做精品| 777米奇久久最新地址| 精品久久久中文字幕人妻| 2021国产成人精品久久| 亚洲午夜无码久久久久| 久久最新免费视频| 国产精品免费久久久久影院| 久久精品国产精品亚洲毛片 | 欧美午夜精品久久久久久浪潮| 久久久SS麻豆欧美国产日韩| 久久久国产一区二区三区| 99久久国语露脸精品国产| 亚洲伊人久久精品影院| 2019久久久高清456| 久久久综合香蕉尹人综合网| 久久99热狠狠色精品一区| 久久99国产综合精品| 久久亚洲美女精品国产精品| 久久久无码精品亚洲日韩蜜臀浪潮| 久久九色综合九色99伊人| 国产精品成人久久久久久久| 日本道色综合久久影院| 国产AⅤ精品一区二区三区久久| 97久久精品国产精品青草| 久久久精品人妻一区二区三区四| 久久AV高潮AV无码AV| 久久精品青青草原伊人| 一本一道久久综合狠狠老| 久久久久99精品成人片试看| 久久国产免费观看精品3| 国产精品久久国产精麻豆99网站| 久久国产精品成人免费|