青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

麒麟子

~~

導(dǎo)航

<2009年4月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

統(tǒng)計(jì)

常用鏈接

留言簿(12)

隨筆分類

隨筆檔案

Friends

WebSites

積分與排名

最新隨筆

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

per-pixel lighting 紋理空間坐標(biāo)基的計(jì)算方法

 

 

文章來(lái)源:http://www.freegames.com.cn/school/383/2007/27685.html
Nemesis2k
per-pixel lighting 紋理空間坐標(biāo)基的計(jì)算方法

我知道的幾種方法:

1. 對(duì)于參數(shù)化的表面,設(shè)其方程為 P = P (u, v),其中 P 為向量,
三個(gè)分量分別為 x, y z。也可以表示為:
Px = Px (u ,v)
Py = Py (u ,v)
Pz = Pz (u ,v)
那在任意一個(gè)頂點(diǎn)
T = {dPx/du, dPy/du, dPz/du}
B = {dPx/dv, dPy/dv, dPz/dv}
N = T X B
然后把 T, B, N 歸一化就行了。
這里的偏導(dǎo)數(shù)可以用差分計(jì)算。
這樣計(jì)算出來(lái)的切空間是在每一個(gè)頂點(diǎn)的切空間。

2。對(duì)于由三角形面片組成的網(wǎng)格,在 MSDN 上的 Per-pixel lighting
文章里介紹了一種方法。
設(shè)三角形的三個(gè)頂點(diǎn)是 P0, P1, P2,其中每個(gè)頂點(diǎn)都有位置,法向量
和 2-D 紋理坐標(biāo)。
Pi : {x, y, z}, {nx, ny, nz}, {s, t}
現(xiàn)在我們要計(jì)算在 P0 點(diǎn)的切空間。
這里要分辨兩個(gè)切空間:
1)頂點(diǎn)上的切空間
2)三角形面片上的切空間
兩個(gè)切空間是相同的嗎?我覺(jué)得是不同的。方法 2 和方法 3 計(jì)算出來(lái)的
實(shí)際上都是三角形面片的切空間,頂點(diǎn)的切空間還要通過(guò)平均頂點(diǎn)所在
各個(gè)三角形面片的切空間基向量來(lái)計(jì)算。(是這樣的嗎?高手指教一下!)

設(shè)三角形面片所在的切空間的基向量為 T, B, N,坐標(biāo)原點(diǎn)在 P0。
那么三角形面片中的任意向量應(yīng)該可以表示為:
Vec = x*T + y*B
因此,如果我們找到了兩個(gè)向量 Vec1, Vec2 以及它們?cè)?T, B 上的
分量,那么自然就可以解出 T, B 了。
令:
Vec1 = P1 - P0
Vec2 = P2 - P0
dS1 = P1.s - P0.s
dS2 = P2.s - P0.s
dT1 = P1.t - P0.t
dT2 = P2.t - p0.t
那么我們有
Vec1 = dS1*T + dT1*B (1)
Vec2 = dS2*T + dT2*B (2)
聯(lián)立 (1), (2) 就可以解出
B*(dS2*dT1 - dS1*dT2) = (dS2*Vec1 - dS1*Vec2)
所以:
(dS2*dT1 - dS1*dT2) 是一個(gè)常數(shù),反正我們之后要對(duì) B 歸一化,
可以不用管它。于是:
B = normalize(dS2*Vec1 - dS1*Vec2) 這就是 MSDN 里那篇文章里的方法。
B 可以通過(guò)解方程獲得,但是 T 就不行了,因?yàn)檫@樣解出來(lái)的 T 和
B 不一定垂直。怎么處理呢?
MSDN 中的方法是,利用頂點(diǎn)的 N 來(lái)求 T:
T = B X N
然后再求 N
N = T X B
但是這樣可以嗎?這里的 N 是頂點(diǎn) P0 的 N,而不是三角形面片的 N。
是不是這樣求出來(lái)的 T, N, B 恰好是頂點(diǎn) P0 的切空間的坐標(biāo)基,不需要
再平均了?(高手指教!)
我想的處理方法是這樣的:
同樣解出 T 來(lái):
T = normalize(dT2*Vec1 - dT1*Vec2)
然后 N = T X B。這個(gè) N 是三角形面片的 N。
然后 T = B X N。這樣 T, N, B 構(gòu)成正交基,而且是三角形面片的。
要計(jì)算 P0 頂點(diǎn)的切空間基,還需要平均多個(gè)面片。
這種方法到是比較復(fù)雜。

一個(gè)問(wèn)題是,為什么有
Vec1 = dS1*T + dT1*B (1)
Vec2 = dS2*T + dT2*B (2)
這兩個(gè)公式!
我想是因?yàn)樵谟?jì)算頂點(diǎn)的紋理坐標(biāo)時(shí),因?yàn)槭菑钠矫嬗成涞狡矫妫晕覀兪褂昧?br>仿射變換:
s = as*x + bs*y + cs
t = as*x + bs*y + cs
反過(guò)來(lái)我們有
x = ax*s + bx*t + cx (3)
y = ay*s + by*t + cy (4)
z = az*s + bz*t + cz (5)
于是
Vec1.x = P1.x - P0.x = ax*(P1.s - P0.s) + bx*(P1.t - P0.t)
Vec1.y = P1.y - P0.y = ay*(P1.s - P0.s) + by*(P1.t - P0.t)
Vec1.z = P1.z - P0.z = az*(P1.s - P0.s) + bz*(P1.t - P0.t)
于是
Vec1 = {ax, ay, az}*dS1 + {bx, by, bz}*dT1
這和 (1) 已經(jīng)很象了,那么 {ax, ay, az} 就是 T 嗎?
答案是是的!事實(shí)上 (3), (4), (5) 就是三角形面片的參數(shù)表示,那么
T = {dx/ds, dy/ds, dz/ds} = {ax, ay, az}
B = {dx/dt, dy/dt, dz/dt} = {bx, by, bz}
也就是說(shuō),如果我們能直接把 ax, ay, az, bx, by, bz 求出來(lái),T 和 B 就求出來(lái)了

(當(dāng)然要把他們正交歸一化)

3 nVidia 網(wǎng)站上的方法。
我們可以假設(shè)
x = ax*s + bx*t + cx
y = ay*s + by*t + cy
z = az*s + bz*t + cz
如何求解 (3) ?這里有 3 個(gè)未知數(shù),那我們需要 3 個(gè)方程。
將 3 個(gè)頂點(diǎn)的屬性 {x, y ,z}, {s, t} 帶入,剛好有三個(gè)方程:
P0.x = ax*P0.s + bx*P0.t + cx (1)
P1.x = ax*P1.s + bx*P1.t + cx (2)
P2.x = ax*P2.s + bx*P2.t + cx (3)
解出來(lái)就得到 ax, bx, cx 了。
同理可得: ay, by, cy, az, bz, cz。
T = {ax, ay, az}
B = {bx, by, bz}
N = T X B
T = B X N
然后都?xì)w一化即可。

nVidia 網(wǎng)站上的方法呢,是建立三個(gè)平面方程
Ax*x + Bx*s + Cx*t + Dx = 0 (4)
Ay*y + By*s + Cy*t + Dy = 0 (5)
Az*z + Bz*s + Cz*t + Dz = 0 (6)

并且指出,三角形面片上的所有點(diǎn)的 (x, s, t) 都在
方程 (4) 定義的平面中。那么
dx/ds = -Bx/Ax
dx/dt = -Cx/Ax

同理
dy/ds = -By/Ay
dy/dt = -Cy/Ay

dz/ds = -Bz/Az
dz/dt = -Cz/Az

那么這些 Ax, Ay, Az, Bx, By, Bz, Cx, Cy, Cz 怎么求呢?
容易知道,{Ax, Bx, Cx} 其實(shí)是平面的法向量,那么可以
選平面中的三個(gè)點(diǎn),計(jì)算出兩個(gè)向量,然后叉乘。

{Ax, Bx, Cx} = {P1.x - P0.x, P1.s - P0.s, P1.t - P0.t} X
{P2.x - P0.x, P2.s - P0.s, P2.t - P0.t}

這兩種方法是等價(jià)的。

posted on 2009-04-17 21:45 麒麟子 閱讀(578) 評(píng)論(0)  編輯 收藏 引用 所屬分類: GPU and Graphic

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久久蜜臀国产一区二区| 美女视频一区免费观看| 国产精品亚发布| 欧美日韩一区二| 欧美精品一区二区三区四区 | 久久裸体艺术| 美女日韩欧美| 欧美精品一区二| 国产精品第一页第二页第三页| 国产精品久久久久aaaa樱花| 国产欧美日本在线| 狠狠色狠狠色综合人人| 91久久精品国产91久久| 亚洲一区二区三区四区五区黄| 欧美在线播放高清精品| 免费h精品视频在线播放| 亚洲精品欧美激情| 午夜精品久久久久久久蜜桃app | 蜜臀av在线播放一区二区三区| 久久久久久久波多野高潮日日| 韩国精品久久久999| 亚洲风情亚aⅴ在线发布| 在线中文字幕一区| 久久精品国产亚洲5555| 亚洲国产专区校园欧美| 一区二区三区黄色| 久久夜色精品国产| 欧美午夜宅男影院在线观看| 在线不卡亚洲| 欧美一区二区三区久久精品| 欧美激情一区二区三区全黄| 亚洲欧美久久久| 欧美国产精品日韩| 国产三级欧美三级| 亚洲小说春色综合另类电影| 欧美成人午夜视频| 欧美在线观看网址综合| 欧美日本一区二区视频在线观看| 国产日韩欧美黄色| 一区二区免费在线播放| 女女同性女同一区二区三区91| 亚洲四色影视在线观看| 模特精品在线| 伊人婷婷欧美激情| 欧美淫片网站| 在线视频你懂得一区二区三区| 蜜臀va亚洲va欧美va天堂| 国产亚洲二区| 久久国产精品电影| 亚洲在线电影| 国产精品麻豆va在线播放| 日韩视频在线免费观看| 欧美高清免费| 麻豆国产va免费精品高清在线| 狠狠综合久久av一区二区老牛| 久久精品国产久精国产思思| 亚洲欧美日韩国产另类专区| 国产精品毛片| 国内视频精品| 欧美精品九九| 欧美午夜激情小视频| 亚洲人成绝费网站色www| 母乳一区在线观看| 久久久久成人网| 在线成人av| 欧美高清视频| 欧美激情女人20p| 亚洲精品少妇| 亚洲美女av黄| 国产精品久线观看视频| 亚洲一区bb| 亚洲欧美日韩一区二区在线| 国产欧美日本在线| 久久最新视频| 免费亚洲婷婷| 亚洲午夜高清视频| 亚洲男人第一av网站| 亚洲制服丝袜在线| 亚洲欧美影院| 午夜精品久久久久久久99水蜜桃| 国产日韩欧美成人| 老司机凹凸av亚洲导航| 欧美成人一区在线| 亚洲视频观看| 欧美一级久久久| 亚洲福利视频专区| 亚洲精品综合在线| 国产欧美亚洲一区| 欧美激情免费观看| 国产精品jizz在线观看美国| 久久精品国产第一区二区三区最新章节 | 亚洲电影免费观看高清完整版 | 久久精品九九| 亚洲开发第一视频在线播放| 中文亚洲欧美| 黄色成人精品网站| 亚洲美女av在线播放| 国内精品久久久久久久果冻传媒| 亚洲国产精品国自产拍av秋霞| 国产精品美女久久久浪潮软件| 久久综合国产精品| 欧美日韩伊人| 欧美激情一二三区| 国产精品视频久久一区| 亚洲第一久久影院| 国产一区二区三区奇米久涩 | 亚洲一区二区三区四区五区黄| 欧美一区二区国产| 一个色综合av| 久久青青草综合| 香蕉成人久久| 欧美揉bbbbb揉bbbbb| 免费观看日韩| 国产日韩精品一区| 亚洲美女在线国产| 亚洲国产精品高清久久久| 亚洲欧美国产毛片在线| 99视频精品在线| 美女亚洲精品| 老司机免费视频一区二区三区 | 中文在线一区| 美女视频黄 久久| 久久视频国产精品免费视频在线| 欧美视频在线观看一区| 欧美黄色日本| 在线成人激情| 久久精品二区三区| 久久国产99| 国产欧美成人| 香蕉久久久久久久av网站| 亚洲影视在线播放| 欧美精品一区三区| 亚洲精品一区二| 亚洲中无吗在线| 99v久久综合狠狠综合久久| 亚洲国产欧美日韩另类综合| 一区二区在线观看av| 久久国产精品72免费观看| 午夜在线电影亚洲一区| 国产精品国色综合久久| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 一区二区三区在线免费观看| 欧美一区二区三区视频在线| 亚洲欧美大片| 国产精品三上| 亚洲男女自偷自拍| 久久精品夜夜夜夜久久| 国产嫩草一区二区三区在线观看 | 亚洲精品一区二区网址| 老司机成人网| 亚洲精品久久久久| 亚洲一二三区精品| 国产精品久久久久影院亚瑟| 亚洲欧美一区二区激情| 久久精品国内一区二区三区| 国产在线欧美日韩| 麻豆精品视频| 亚洲精品国久久99热| 亚洲欧美美女| 国内成人精品一区| 免费观看久久久4p| 一本色道久久综合狠狠躁篇怎么玩| 午夜精品久久久久久久蜜桃app| 国产欧美日韩在线观看| 久久影院午夜论| 亚洲六月丁香色婷婷综合久久| 亚洲欧美一区在线| 亚洲国产精品123| 欧美日韩久久不卡| 欧美在线视频全部完| 亚洲国产女人aaa毛片在线| 亚洲一区二区成人在线观看| 国产视频在线观看一区二区三区 | 欧美一区二区三区四区在线| 麻豆精品视频在线观看| 99精品国产99久久久久久福利| 国产精品卡一卡二卡三| 久久一区二区三区av| 一区二区三区高清在线观看| 久久亚洲精品伦理| 在线视频你懂得一区二区三区| 国产午夜久久| 欧美日韩精品欧美日韩精品| 欧美制服第一页| av成人动漫| 欧美xx视频| 久久www成人_看片免费不卡| 日韩视频免费观看高清在线视频| 国产日韩在线看片| 欧美新色视频| 久久成人精品无人区| 欧美亚洲第一区| 亚洲欧洲综合另类在线| 久久久国产精品一区二区三区| 日韩一级片网址| 伊人久久噜噜噜躁狠狠躁| 国产精品日日摸夜夜摸av| 欧美好吊妞视频| 美国十次成人| 久久久精品日韩|