Bài giảng đồ họa máy tính viewing transformation
- 10 trang
- file .pdf
ÑOÀ HOÏA MAÙY TÍNH
VIEWING TRANSFORMATIONS
Daãn nhaäp
• Sau coâng ñoaïn modeling transformation, taát caû caùc ñoái
töôïng ñöôïc ñaët trong cuøng moät heä toïa ñoä chung (world
coordinates).
• Boû qua coâng ñoaïn trivial rejection vaø illumination, chuùng
ta seõ xem xeùt coâng ñoaïn bieán ñoåi vaøo khoâng gian quan
saùt (view transformation). Muïc ñích cuûa coâng ñoaïn naøy
laø chuyeån ñoåi caùc ñoái töôïng vaøo heä toïa ñoä quan saùt (eye
coordinates hay 3D camera coordinates)
Döông Anh Ñöùc, Leâ Ñình Duy Viewing transformation 1/10
ÑOÀ HOÏA MAÙY TÍNH
Qui trình hieån thò
Camera
• Caùc tham soá cuûa Camera
♦ Vò trí maét nhìn (x, y, z)
♦ Höôùng nhìn (towards vector, up vector)
♦ Vuøng quan saùt
Döông Anh Ñöùc, Leâ Ñình Duy Viewing transformation 2/10
ÑOÀ HOÏA MAÙY TÍNH
Camera Transformation
• Trong caûnh treân, goác toïa ñoä cuûa world space ñaët ngay
döôùi ñaùy gheá, truïc z höôùng leân ñi qua taâm cuûa bình traø.
Ñeå thuaän tieän, truïc x vaø y ñöôïc choïn song song vôùi caùc
böùc töôøng (chuù yù caùc vieân gaïch treân neàn nhaø). Vôùi heä
toïa ñoä naøy, gheá vaø bình traø raát deã daøng bieåu dieãn.
• Böôùc tieáp theo, ta caàn moâ taû aûnh cuûa moâ hình ta ñang
mong muoán dieãn taû. Coâng vieäc naøy seõ deã daøng hôn
nhieàu neáu goác toïa ñoä truøng vôùi vò trí quan saùt (vò trí cuûa
maét hay camera). (Xem hình beân döôùi)
Döông Anh Ñöùc, Leâ Ñình Duy Viewing transformation 3/10
ÑOÀ HOÏA MAÙY TÍNH
• Ta coù theå ñaït ñöôïc ñieàu naøy nhôø vaøo caùc pheùp bieán ñoåi
tònh tieán vaø quay (rigid body transformations). Tröôùc
tieân, ta caàn thöïc hieän pheùp quay ñeå cho 2 truïc toïa ñoä
(world vaø camera) cuøng phöông.
• Sau ñoù, ta thöïc hieän pheùp tònh tieán ñeå ñöa goác toïa ñoä
cuûa world space veà truøng vôùi goác toïa ñoä cuûa eye space.
• Taïi sao ta laïi quay tröôùc roài môùi tònh tieán ? Ta coù
theå thöïc hieän theo moät caùch khaùc khoâng ?
• Caùch tieáp caän vöøa trình baøy khoâng ñöôïc tröïc quan vaø seõ
gaây khoâng ít khoù khaên khi ta muoán giao tieáp vôùi ngöôøi
duøng trong moät heä xöû lyù ñoà hoïa 3 chieàu. Ta thöû tieáp caän
theo moät caùch khaùc.
Döông Anh Ñöùc, Leâ Ñình Duy Viewing transformation 4/10
ÑOÀ HOÏA MAÙY TÍNH
• Thay cho vieäc xaùc ñònh moät heä toïa ñoä quan saùt mong
muoán baèng 1 pheùp quay vaø 1 pheùp tònh tieán heä toïa ñoä
thöïc ta coù theå söû duïng phöông phaùp sau:
New Camera Transformation
• Tröôùc tieân, ta xaùc ñònh vò trí ñaët camera (hoaëc vò trí
quan saùt) trong khoâng gian thöïc. Ta goïi noù laø vò trí maét
(eye point). Sau ñoù, ta xaùc ñònh moät vò trí trong caûnh
(scene) maø ta muoán noù seõ xuaát hieän ôû trung taâm cuûa cöûa
soå nhìn. Ta goïi ñieåm naøy laø ñieåm nhìn (look-at point).
Tieáp theo ta xaùc ñònh 1 vector duøng ñeå chæ höôùng ñi leân
cuûa aûnh tính töø look-at point. Ta goïi noù laø vector
höôùng leân (up-vector).
• Caùch bieåu dieãn treân raát töï nhieân. Ta coù theå söû duïng
caùch bieåu dieãn naøy ñeå moâ taû moät quó ñaïo cuûa camera
baèng caùch chæ thay ñoåi eye-point coøn look-at point vaø up-
vector khoâng ñoåi. Hoaëc ta coù theå queùt camera töø ñoái
töôïng naøy ñeán ñoái töôïng khaùc treân aûnh baèng caùch chæ
thay ñoåi look-at point.
Döông Anh Ñöùc, Leâ Ñình Duy Viewing transformation 5/10
ÑOÀ HOÏA MAÙY TÍNH
• Baây giôø chuùng ta seõ xem xeùt, vôùi moâ taû treân, ta seõ xaây
döïng ñöôïc pheùp bieán ñoåi töø heä toïa ñoä thöïc sang heä toïa
ñoä quan saùt nhö theá naøo.
• Tröôùc tieân, ta seõ xaùc ñònh phaàn quay cuûa camera
transfromation (V).
• Ta coù theå xaùc ñònh vector l coù phöông truøng vôùi tia nhìn
theo coâng thöùc:
él x ù é lookat x ù éeye x ù
êl ú = êlookat ú − êeye
ê yú ê yú ê y
êë lz ú êë lookat z ú êë eyez
• Chuaån hoùa vector l ta ñöôïc vector l0:
H l
l0 =
l2x + l2y + l2z
• Ta coù theå deã daøng thaáy raèng, pheùp bieán ñoåi V maø ta
ñang xaây döïng seõ chuyeån l0 thaønh vector [0, 0, -1] (Taïi
sao ?).
[0 0 − 1] = l0 V
• Ta coøn coù theå xaùc ñònh moät vector khaùc. Ñoù laø vector r
laø tích höõu höôùng cuûa vector l vaø up-vector:
H H
r = l × up
Döông Anh Ñöùc, Leâ Ñình Duy Viewing transformation 6/10
ÑOÀ HOÏA MAÙY TÍNH
• Sau pheùp bieán ñoåi V, ro (vector r ñaõ ñöôïc chuaån hoùa) seõ
bieán thaønh vector [1, 0, 0].
H
[1 0 0] = r0 V
trong ñoù
H r
r0 =
rx2 + ry2 + rz2
• Cuoái cuøng, ta coù theå xaùc ñònh vector cô sôû thöù 3, vector u
vuoâng goùc vôùi 2 vector r vaø l:
H H
u = r× l
• Vector naøy, sau khi ñöôïc chuaån hoùa (thaønh vector u0), seõ
bò bieán thaønh vector [0, 1, 0] bôûi V.
H
[0 1 0] = u 0 V
H
u
[0 1 0] = 2 2 2 V
ux + u y + uz
• Toång hôïp caùc keát quaû treân ta ñöôïc:
H
é1 0 0ù é r0 ù
ê0 1 0ú = ê uH ú V
ê ú ê H0 ú
êë0 0 1ú êë− l0 ú
Döông Anh Ñöùc, Leâ Ñình Duy Viewing transformation 7/10
ÑOÀ HOÏA MAÙY TÍNH
• Chuù yù raèng caùc vector maø chuùng ta ñaõ taïo ra ñeàu coù
chieàu daøi laø 1 (nghóa laø chuùng ñeàu ñaõ ñöôïc chuaån hoùa)
vaø chuùng tröïc giao nhau ñoâi moät. Nhö vaäy, ma traän taïo
bôûi 3 vector naøy laø ma traän tröïc chuaån (orthonormal).
Tính chaát lyù thuù cuûa caùc ma traän loaïi naøy laø:
V-1 = VT neáu V laø ma traän tröïc chuaån
• Lôïi duïng tính chaát treân, ta coù theå deã daøng tính toaùn
ñöôïc thaønh phaàn quay cuûa pheùp bieán ñoåi:
Vrotate = [r0 u0 − l0 ]
érx0 u 0x − l0x ù
ê ú
= êry0 u 0y − l0y ú
êrz0 u 0z − l0z ú
ë
• Tieáp theo, ta tính phaàn tònh tieán cuûa viewing
transformation. Ñeå laøm ñöôïc ñieàu naøy, tröoùc tieân ta caàn
nhôù raèng pheùp quay chuùng ta vöøa xaùc ñònh coù taâm quay
laø goác toïa ñoä, trong khi ta laïi muoán pheùp quay xaûy ra ôû
ñieåm quan saùt (eye point). Ta coù theå thöïc hieän pheùp
quay vôùi taâm quay ñuùng baèng caùch tröø vaøo toïa ñoä cuûa
ñieåm ñang xeùt trong khoâng gian thöïc toïa ñoä cuûa ñieåm
quan saùt. Ta coù phöông trình ([x’,y’,z’] laø ñieåm aûnh töông
öùng trong khoâng gian quan saùt):
érx ux - lx ù
[x - eye x y - eyey ]
z - eyez êêry uy - ly = [x' y' z']
êërz uz - lz
Döông Anh Ñöùc, Leâ Ñình Duy Viewing transformation 8/10
VIEWING TRANSFORMATIONS
Daãn nhaäp
• Sau coâng ñoaïn modeling transformation, taát caû caùc ñoái
töôïng ñöôïc ñaët trong cuøng moät heä toïa ñoä chung (world
coordinates).
• Boû qua coâng ñoaïn trivial rejection vaø illumination, chuùng
ta seõ xem xeùt coâng ñoaïn bieán ñoåi vaøo khoâng gian quan
saùt (view transformation). Muïc ñích cuûa coâng ñoaïn naøy
laø chuyeån ñoåi caùc ñoái töôïng vaøo heä toïa ñoä quan saùt (eye
coordinates hay 3D camera coordinates)
Döông Anh Ñöùc, Leâ Ñình Duy Viewing transformation 1/10
ÑOÀ HOÏA MAÙY TÍNH
Qui trình hieån thò
Camera
• Caùc tham soá cuûa Camera
♦ Vò trí maét nhìn (x, y, z)
♦ Höôùng nhìn (towards vector, up vector)
♦ Vuøng quan saùt
Döông Anh Ñöùc, Leâ Ñình Duy Viewing transformation 2/10
ÑOÀ HOÏA MAÙY TÍNH
Camera Transformation
• Trong caûnh treân, goác toïa ñoä cuûa world space ñaët ngay
döôùi ñaùy gheá, truïc z höôùng leân ñi qua taâm cuûa bình traø.
Ñeå thuaän tieän, truïc x vaø y ñöôïc choïn song song vôùi caùc
böùc töôøng (chuù yù caùc vieân gaïch treân neàn nhaø). Vôùi heä
toïa ñoä naøy, gheá vaø bình traø raát deã daøng bieåu dieãn.
• Böôùc tieáp theo, ta caàn moâ taû aûnh cuûa moâ hình ta ñang
mong muoán dieãn taû. Coâng vieäc naøy seõ deã daøng hôn
nhieàu neáu goác toïa ñoä truøng vôùi vò trí quan saùt (vò trí cuûa
maét hay camera). (Xem hình beân döôùi)
Döông Anh Ñöùc, Leâ Ñình Duy Viewing transformation 3/10
ÑOÀ HOÏA MAÙY TÍNH
• Ta coù theå ñaït ñöôïc ñieàu naøy nhôø vaøo caùc pheùp bieán ñoåi
tònh tieán vaø quay (rigid body transformations). Tröôùc
tieân, ta caàn thöïc hieän pheùp quay ñeå cho 2 truïc toïa ñoä
(world vaø camera) cuøng phöông.
• Sau ñoù, ta thöïc hieän pheùp tònh tieán ñeå ñöa goác toïa ñoä
cuûa world space veà truøng vôùi goác toïa ñoä cuûa eye space.
• Taïi sao ta laïi quay tröôùc roài môùi tònh tieán ? Ta coù
theå thöïc hieän theo moät caùch khaùc khoâng ?
• Caùch tieáp caän vöøa trình baøy khoâng ñöôïc tröïc quan vaø seõ
gaây khoâng ít khoù khaên khi ta muoán giao tieáp vôùi ngöôøi
duøng trong moät heä xöû lyù ñoà hoïa 3 chieàu. Ta thöû tieáp caän
theo moät caùch khaùc.
Döông Anh Ñöùc, Leâ Ñình Duy Viewing transformation 4/10
ÑOÀ HOÏA MAÙY TÍNH
• Thay cho vieäc xaùc ñònh moät heä toïa ñoä quan saùt mong
muoán baèng 1 pheùp quay vaø 1 pheùp tònh tieán heä toïa ñoä
thöïc ta coù theå söû duïng phöông phaùp sau:
New Camera Transformation
• Tröôùc tieân, ta xaùc ñònh vò trí ñaët camera (hoaëc vò trí
quan saùt) trong khoâng gian thöïc. Ta goïi noù laø vò trí maét
(eye point). Sau ñoù, ta xaùc ñònh moät vò trí trong caûnh
(scene) maø ta muoán noù seõ xuaát hieän ôû trung taâm cuûa cöûa
soå nhìn. Ta goïi ñieåm naøy laø ñieåm nhìn (look-at point).
Tieáp theo ta xaùc ñònh 1 vector duøng ñeå chæ höôùng ñi leân
cuûa aûnh tính töø look-at point. Ta goïi noù laø vector
höôùng leân (up-vector).
• Caùch bieåu dieãn treân raát töï nhieân. Ta coù theå söû duïng
caùch bieåu dieãn naøy ñeå moâ taû moät quó ñaïo cuûa camera
baèng caùch chæ thay ñoåi eye-point coøn look-at point vaø up-
vector khoâng ñoåi. Hoaëc ta coù theå queùt camera töø ñoái
töôïng naøy ñeán ñoái töôïng khaùc treân aûnh baèng caùch chæ
thay ñoåi look-at point.
Döông Anh Ñöùc, Leâ Ñình Duy Viewing transformation 5/10
ÑOÀ HOÏA MAÙY TÍNH
• Baây giôø chuùng ta seõ xem xeùt, vôùi moâ taû treân, ta seõ xaây
döïng ñöôïc pheùp bieán ñoåi töø heä toïa ñoä thöïc sang heä toïa
ñoä quan saùt nhö theá naøo.
• Tröôùc tieân, ta seõ xaùc ñònh phaàn quay cuûa camera
transfromation (V).
• Ta coù theå xaùc ñònh vector l coù phöông truøng vôùi tia nhìn
theo coâng thöùc:
él x ù é lookat x ù éeye x ù
êl ú = êlookat ú − êeye
ê yú ê yú ê y
êë lz ú êë lookat z ú êë eyez
• Chuaån hoùa vector l ta ñöôïc vector l0:
H l
l0 =
l2x + l2y + l2z
• Ta coù theå deã daøng thaáy raèng, pheùp bieán ñoåi V maø ta
ñang xaây döïng seõ chuyeån l0 thaønh vector [0, 0, -1] (Taïi
sao ?).
[0 0 − 1] = l0 V
• Ta coøn coù theå xaùc ñònh moät vector khaùc. Ñoù laø vector r
laø tích höõu höôùng cuûa vector l vaø up-vector:
H H
r = l × up
Döông Anh Ñöùc, Leâ Ñình Duy Viewing transformation 6/10
ÑOÀ HOÏA MAÙY TÍNH
• Sau pheùp bieán ñoåi V, ro (vector r ñaõ ñöôïc chuaån hoùa) seõ
bieán thaønh vector [1, 0, 0].
H
[1 0 0] = r0 V
trong ñoù
H r
r0 =
rx2 + ry2 + rz2
• Cuoái cuøng, ta coù theå xaùc ñònh vector cô sôû thöù 3, vector u
vuoâng goùc vôùi 2 vector r vaø l:
H H
u = r× l
• Vector naøy, sau khi ñöôïc chuaån hoùa (thaønh vector u0), seõ
bò bieán thaønh vector [0, 1, 0] bôûi V.
H
[0 1 0] = u 0 V
H
u
[0 1 0] = 2 2 2 V
ux + u y + uz
• Toång hôïp caùc keát quaû treân ta ñöôïc:
H
é1 0 0ù é r0 ù
ê0 1 0ú = ê uH ú V
ê ú ê H0 ú
êë0 0 1ú êë− l0 ú
Döông Anh Ñöùc, Leâ Ñình Duy Viewing transformation 7/10
ÑOÀ HOÏA MAÙY TÍNH
• Chuù yù raèng caùc vector maø chuùng ta ñaõ taïo ra ñeàu coù
chieàu daøi laø 1 (nghóa laø chuùng ñeàu ñaõ ñöôïc chuaån hoùa)
vaø chuùng tröïc giao nhau ñoâi moät. Nhö vaäy, ma traän taïo
bôûi 3 vector naøy laø ma traän tröïc chuaån (orthonormal).
Tính chaát lyù thuù cuûa caùc ma traän loaïi naøy laø:
V-1 = VT neáu V laø ma traän tröïc chuaån
• Lôïi duïng tính chaát treân, ta coù theå deã daøng tính toaùn
ñöôïc thaønh phaàn quay cuûa pheùp bieán ñoåi:
Vrotate = [r0 u0 − l0 ]
érx0 u 0x − l0x ù
ê ú
= êry0 u 0y − l0y ú
êrz0 u 0z − l0z ú
ë
• Tieáp theo, ta tính phaàn tònh tieán cuûa viewing
transformation. Ñeå laøm ñöôïc ñieàu naøy, tröoùc tieân ta caàn
nhôù raèng pheùp quay chuùng ta vöøa xaùc ñònh coù taâm quay
laø goác toïa ñoä, trong khi ta laïi muoán pheùp quay xaûy ra ôû
ñieåm quan saùt (eye point). Ta coù theå thöïc hieän pheùp
quay vôùi taâm quay ñuùng baèng caùch tröø vaøo toïa ñoä cuûa
ñieåm ñang xeùt trong khoâng gian thöïc toïa ñoä cuûa ñieåm
quan saùt. Ta coù phöông trình ([x’,y’,z’] laø ñieåm aûnh töông
öùng trong khoâng gian quan saùt):
érx ux - lx ù
[x - eye x y - eyey ]
z - eyez êêry uy - ly = [x' y' z']
êërz uz - lz
Döông Anh Ñöùc, Leâ Ñình Duy Viewing transformation 8/10