Tài liệu đồ họa máy tính
2k7
Đồ họa máy tính
LÔØI NOÙI ÑAÀU
Ñoà hoïa maùy tính laø moät trong nhöõng lónh vöïc lí thuù nhaát vaø phaùt trieån
nhanh nhaát cuûa tin hoïc. Ngay töø khi xuaát hieän, ñoà hoïa maùy tính ñaõ coù söùc loâi
cuoán maõnh lieät, cuoán huùt raát nhieàu ngöôøi vaø ñöôïc söû duïng ôû nhieàu lónh vöïc
khaùc nhau nhö : khoa hoïc, ngheä thuaät, kinh doanh, thöông maïi, coâng nghieäp,
quaûn lí, giaùo duïc, giaûi trí, … Soá löôïng caùc chöông trình ñoà hoïa öùng duïng thaät
khoång loà vaø phaùt trieån lieân tuïc.
Cuoán saùch naøy ñöôïc bieân soaïn döïa treân ñeà cöông moân Ñoà hoïa maùy
tính thuoäc chöông trình ñaøo taïo tin hoïc baäc cöû nhaân vaø cao ñaúng cuûa Boä
Giaùo duïc vaø Ñaøo taïo, taäp trung vaøo caùc vaán ñeà cuûa ñoà hoïa hai chieàu vaø ba
chieàu nhaèm cung caáp moät neàn taûng kieán thöùc ñaày ñuû vaø choïn loïc bao goàm
caùc khaùi nieäm cô baûn nhaát, caùc thuaät toaùn cô sôû cuûa ñoà hoïa maùy tính, …
giuùp ngöôøi ñoïc coù theå töï tìm hieåu vaø xaây döïng caùc chöông trình öùng duïng ñoà
hoïa.
Cuoán saùch ñöôïc chia laø m 10 chöông, goàm hai phaàn chính : ñoà hoïa hai
chieàu vaø ñoà hoïa ba chieàu. Cuoái moãi chöông ñeàu coù phaàn toùm taét vaø heä
thoáng baøi taäp ñeå ngöôøi ñoïc töï kieåm tra. Caùc thuaät toaùn trình baøy ñeàu coù löu
ñoà vaø chöông trình minh hoïa döôù i daïng ngoân ngöõ C.
Ñeå caùc vaán ñeà trình baøy ñöôïc phong phuù, ña daïng vaø caäp nhaät, chuùng
toâi ñaõ raát noã löïc trong vieäc tham khaûo caùc taøi lieäu kinh ñieån, ñaëc bieät laø caùc
baøi giaûng veà ñoà hoïa cuûa caùc tröôøng ñaïi hoïc noåi tieáng treân theá giôùi ôû AÂu, Myõ
nhö Brown, Stanford, MIT, Waterloo, … Tuy nhieân trong quaù trình bieân soaïn chaéc
chaén khoâng theå khoâng traùnh khoûi sô soùt, chuùng toâi xin traân troïng tieáp thu taát
caû nhöõng yù kieán ñoùng goùp cuûa baïn ñoïc cuõng nhö caùc baïn ñoàng nghieäp ñeå
hoaøn thieän cuoán saùch ngaøy moät toát hôn.
Convert by ha_con_bk
Trang 3
Chuùng toâi xin chaân thaønh caùm ôn Ban chuû nhieäm Khoa Coâng ngheä
Thoâng tin - Ñaïi hoïc Khoa hoïc Töï nhieân, caùc anh chò trong Ban bieân taäp Nhaø
xuaát baûn Giaùo duïc ñaõ hoã trôï raát nhieät tình ñeå cuoán saùch naøy sôùm ñeán tay
baïn ñoïc.
CAÙC TAÙC GIAÛ
4
2k7
Đồ họa máy tính
CHÖÔNG 1
GIÔÙI THIEÄU VEÀ ÑOÀ HOÏA MAÙY TÍNH
Söï phaùt trieån cuûa khoa hoïc, kó thuaät, ngheä thuaät, kinh doanh,
vaø coâng ngheä luoân luoân phuï thuoäc vaøo khaû naêng truyeàn ñaït thoâng
tin cuûa chuùng ta, hoaëc thoâ ng qua caùc bit döõ lieäu löu tröõ trong
microchip hoaëc thoâng qua giao tieáp baèng tieáng noùi. Caâu chaâm ngoân
töø xa xöa “moät hình aûnh coù giaù trò hôn caû vaïn lôøi” hay “traêm nghe
khoâng baèng moät thaáy” cho thaáy yù nghóa raát lôùn cuûa hình aûnh
trong vieäc chuyeån taûi thoâng tin. Hình aûnh bao giôø cuõng ñöôïc caûm
nhaän nhanh vaø deã daø ng hôn, ñaëc bieät laø trong tröôøng hôïp baát
ñoàng veà ngoân ngöõ. Do ñoù khoâng coù gì ngaïc nhieân khi maø ngay töø
khi xuaát hieän maùy tính, caùc nhaø nghieân cöùu ñaõ coá gaéng söû duïng noù
ñeå phaùt sinh caùc aûnh treân maøn hình. Trong suoát gaàn 50 naêm phaùt
trieån cuûa maùy tính, khaû naêng phaùt sinh hình aûnh baèng maùy tính
cuûa chuùng ta ñaõ ñaït tôùi möùc maø baây giôø haàu nhö taát caû caùc maùy
tính ñeàu coù khaû naêng ñoà hoïa.
Ñoà hoïa maùy tính laø moät trong nhöõng lónh vöïc lí thuù nhaát vaø
phaùt trieån nhanh nhaát cuûa tin hoïc. Ngay töø khi xuaát hieän, ñoà hoïa
maùy tính ñaõ coù söùc loâi cuoán maõnh lieät, cuoán huùt raát nhieàu ngöôøi ôû
nhieàu lónh vöïc khaùc nhau nhö khoa hoïc, ngheä thuaät, kinh doanh,
quaûn lí, ... Tính haáp daãn vaø ña daï ng cuûa ñoà hoïa maùy tính coù theå
ñöôïc minh hoïa raát tröïc quan thoâng qua vieäc khaûo saùt caùc öùng duïng
cuûa noù.
Convert by ha_con_bk
Trang 5
1. MOÄT SOÁ ÖÙNG DUÏNG CUÛA ÑOÀ HOÏA MAÙY TÍNH
Ngaøy nay, ñoà hoïa maùy tính ñöôïc söû duïng trong raát nhieàu lónh
vöïc khaùc nhau nhö coâng nghieäp, thöông maïi, quaûn lí, giaùo duïc, giaûi
trí, … Soá löôïng caùc chöông trình ñoà hoïa öùng duïng thaät khoång loà vaø
phaùt trieån lieân tuïc, sau ñaây laø moät soá öùng duïng tieâu bieåu :
1.1. Hoã trôï thieát keá
Moät trong nhöõng öùng duïng lôùn nhaát cuûa ñoà hoïa maùy tính laø
hoã trôï thieát keá (CAD – computer-aided design). Ngaøy nay CAD ñaõ
ñöôïc söû duïng haàu heát trong vieäc thieát keá caùc cao oác, oâ toâ, maùy bay,
taøu thuûy, taøu vuõ truï, maùy tính, trang trí maãu vaûi, vaø raát nhieàu saûn
phaåm khaùc.
Söû duïng caùc chöông trình naøy, ñaàu tieân caùc ñoái töôïng ñöôïc
hieån thò döôùi daïng caùc phaùc thaûo cuûa phaàn khung (wireframe
outline), maø töø ñoù coù theå thaáy ñöôïc toaøn boä hình daïng vaø caùc
thaønh phaàn beân trong cuûa caùc ñoái töôïng. Söû duïng kó thuaät naøy,
ngöôøi thieát keá seõ deã daøng nhaä n thaáy ngay caùc thay ñoåi cuûa ñoái
töôïng khi tieá n haønh hieäu chænh caùc chi tieát hay thay ñoåi goùc nhìn,
….
Moät khi ñaõ thieát keá xong phaàn khung cuûa ñoái töôïng, caùc moâ
hình chieáu saùng, toâ maøu vaø taïo boùng beà maët seõ ñöôïc keát hôïp ñeå
taïo ra keát quaû cuoái cuøng raát gaàn vôùi theá giôùi thöïc .
1.2. Bieåu dieãn thoâng tin
Ñaây laø caùc öùng duïng söû duïng ñoà hoïa maùy tính ñeå phaùt sinh
caùc bieåu ñoà, ñoà thò, … duøng minh hoïa moá i quan heä giöõa nhieàu ñoái
töôïng vôùi nhau. Caùc öùng duïng naøy thöôøng ñöôïc duøng ñeå toùm löôïc
caùc döõ lieäu veà taøi chính, thoáng keâ, kinh teá, khoa hoïc, toaùn hoïc, …
giuùp cho vieäc nghieân cöùu, quaûn lí, … moät caùch coù hieäu quaû.
6
2k7
Đồ họa máy tính
Hình 1.1 - Phaùc thaûo phaàn khung vaø keát quaû cuûa thieát keá xy lanh
Hình 1.2 – Thoâng tin toùm löôïc ñöôïc bieåu dieãn qua caùc bieåu ñoà
Convert by ha_con_bk
Trang 7
1.3. Lónh vöïc giaû i trí, ngheä thuaät
Trong lónh vöïc ngheä thuaät, caùc chöông trình maùy tính nhö
Paint Shop Pro, Adobe Photoshop, 3D Studio, … hoã trôï raát ñaéc löïc
cho caùc hoïa só, caùc nhaø taïo maãu trong vieäc thieát keá caùc hình aûnh
soáng ñoäng, vaø raát thöïc. Vôùi caùc chöông trình naøy, ngöôøi hoïa só
ñöôïc maùy tính taïo cho caûm giaùc y nhö ñang laøm vieäc ngoaøi ñôøi
thöïc baèng caùch cung caáp caùc coâng cuï nhö khung veõ, giaù veõ, baûng
pha maøu, caùc hieäu öùng ba chieàu, … laøm cho hoï caûm thaáy raát thoaûi
maùi vaø tieän lôïi.
Ngoaøi ra ñoà hoïa maùy tính coø n giuùp taïo ra caùc chöông trình
troø chôi, giaûi trí; hoã trôï cho caùc kó xaûo ñieä n aûnh, cho caùc nhaø laøm
phim. Coù nhieàu boä phim raát noåi tieáng nhôø vaøo kó xaûo ñieän aûnh
nhö : Coâng vieâ n Khuûng long kæ Jura (Jurassic Park), Titanic, Theá
giôùi nöôùc (Water World), …
Hình 1.3 – Hình aûnh ñöôïc taïo ra töø chöông trình ñoà hoïa
8
2k7
Đồ họa máy tính
1.4. Giaùo duïc vaø ñaøo taïo
Hieän nay caùc chöông trình moâ phoûng caáu truùc cuûa caùc vaät theå,
tieán trình cuûa caùc phaû n öùng hoùa hoïc, hoaït ñoäng cuûa caùc goùi tin
treân maïng maùy tính, … ñöôïc duøng raát nhieàu trong vieäc hoã trôï
giaûng daïy.
Trong ñaøo taïo, caùc öùng duïng moâ phoûng ñöôïc duøng ñeå kieåm tra
trình ñoä ngöôøi laùi, huaán luyeän phi coâng, ñieàu khieån giao thoâng, …
Hình 1.4 – Chöông trình hoïc veà maùy tính
1.5. Giao tieáp giöõa maùy tính vaø ngöôøi duøng
Moïi öùng duïng ñeàu phaûi coù giao dieän giao tieáp vôùi ngöôøi duøng.
Giao dieän ñoà hoïa thöïc söï laø moät cuoäc caùch maïng mang laïi söï thuaän
tieän vaø thoaûi maùi cho ngöôøi duøng öùng duïng. Caùc öùng duïng döïa treân
heä ñieàu haønh MS Windows laø moät minh hoïa raát tröïc quan cuûa giao
Convert by ha_con_bk
Trang 9
dieän ñoà hoïa. Caùc chöùc naêng cuûa caùc öùng duïng naøy ñöôïc thieát keá cho
ngöôøi duøng laøm vieäc thoâng qua caùc bieåu töôïng moâ taû chöùc naêng ñoù.
Ví duï, chöùc naêng löu taäp tin ñöôïc hieåu thoâng qua bieåu töôïng ñóa
meàm, chöùc naêng in aán ñöôïc hieåu thoâng qua bieåu töôïng maùy in, … Ñeå
choïn caùc chöùc naêng, ngöôøi duøng söû duïng chuoät troû ñeán vaø nhaán vaøo
caùc bieåu töôïng töông öùng. Ñieåm thuaän lôïi chính khi duøng bieåu töôïng
laø kích thöôùc khoâng gian maø noù chieám ít hôn nhieàu so vôùi duøng vaên
baûn ñeå moâ taû cho cuøng moät chöùc naêng, ngoaøi ra vieäc naém baét caùc
chöùc naêng qua caùc bieåu töôïng seõ deã daøng hôn raát nhieàu khi ngöôøi
duøng gaëp trôû ngaïi veà maët ngoân ngöõ.
Caùc öùng duïng coù giao dieän ñoà hoïa coøn cho pheùp ngöôøi duøng
khaû naêng laøm vieäc deã daøng vôùi nhieàu cöûa soå vôùi nhieàu daïng taøi
lieäu khaùc nhau cuøng moät luùc.
Hình 1.5 – Giao dieän cuûa chöông trình MS Word
10
2k7
Đồ họa máy tính
2. KHAÙI NIEÄM VEÀ ÑOÀ HOÏA MAÙY TÍNH
Ñoà hoïa maùy tính laø taát caû nhöõng gì lieân quan ñeán vieäc söû
duïng maùy tính ñeå phaùt sinh ra hình aûnh. Caùc vaán ñeà lieân quan tôùi
coâng vieäc naøy bao goàm : taïo, löu tröõ, thao taùc treân caùc moâ hình
(caùc moâ taû hình hoïc cuûa ñoái töôïng) vaø caùc aûnh.
Theo ñònh nghóa naøy thì ñoà hoï a maùy tính bao goàm vieäc thieát
keá phaàn cöùng nhö thieát bò hieån thò, caùc thuaät toaùn caàn thieát ñeå
phaùt sinh caùc ñöôøng treâ n caùc thieát bò naø y, caùc phaàn meàm ñöôïc söû
duïng cho caû ngöôøi laäp trình heä thoáng vaø ngöôøi laäp trình öùng duïng
ñoà hoïa, vaø caùc chöông trình öùng duïng taïo aûnh baèng maùy tính.
Ñoà hoïa maùy tính cung caáp moät trong nhöõng phöông caùch töï
nhieân nhaát cho vieäc truyeàn ñaït thoâng tin vôùi maùy tính. Ngaøy nay,
trong nhieàu quaù trình thieát keá, caøi ñaët vaø xaây döïng, thoâng tin maø
hình aûnh mang laïi laø haàu nhö khoâng theå thieáu ñöôïc. Kó thuaät tröïc
quan (scientific visualization) ñaõ trôû neâ n laø moät lónh vöïc raát quan
troïng töø naêm 1980, khi caùc nhaø nghieâ n cöùu khoa hoïc vaø caùc kó sö
nhaän ra raèng hoï khoâ ng theå xöû lí moät löôïng döõ lieäu khoång loà phaùt
sinh töø caùc sieâu maùy tính maø döõ lieäu khoâng ñöôïc toùm löôïc vaø laøm
noåi baät caùc xu höôùng vaø hieän töôïng qua nhieàu loaïi bieåu dieãn ñoà
hoïa khaùc nhau.
Ñoà hoïa maùy tính töông taùc laø moät trong nhöõng phöông tieän
mang laïi theâm nhieàu söï thuaän lôïi cho ngöôøi duøng trong vieäc phaùt
sinh hình aûnh keå töø khi coù phaùt minh cuûa maùy aûnh vaø truyeàn
hình. Vôùi maùy tính, chuùng ta coù theå taïo caùc hình aûnh khoâng chæ
cuûa caùc ñoái töôïng cuï theå, thöïc teá, maø coøn cuûa caùc ñoái töôïng tröøu
töôïng, nhaâ n taïo; caùc bieåu dieã n cuûa döõ lieäu maø khoâng coù tính keá
thöøa veà maët hình hoïc, nhö laø keát quaû ñieàu tra, khaûo saùt. Hôn nöõa,
vôùi ñoà hoïa maùy tính chuùng ta khoâng bò giôùi haïn trong caùc aûnh
tónh. Caùc aû nh ñoäng thoâng thöôøng mang laïi nhieàu hieäu quaû hôn so
vôùi aûnh tónh, ñaëc bieät laø vôùi caùc hieän töôïng bieán ñoåi theo thôøi
gian, caû thöïc teá (nhö söï ñoå i höôùng cuûa caùnh maùy bay sieâu aâm, hay
Convert by ha_con_bk
Trang 11
söï phaùt trieån cuûa khuoâ n maët ngöôøi töø luùc treû thô tôùi luùc giaø) vaø
tröøu töôïng (nhö laø xu höôùng phaùt trieån cuûa vieäc söû duïng naêng
löôïng, gia taêng daân soá, …).
Coù nhieàu caùch tieáp caän trong vieäc hoïc moân ñoà hoïa, traûi roäng
töø vieäc nghieân cöùu phaàn cöùng tôùi vieäc hoïc ñeå söû duïng ñoà hoïa maùy
tính chæ trong moät lónh vöïc chuyeân bieät naøo ñoù nhö laø thieát keá
maïch tích hôïp cao (VLSI – very large scale integrated circuit). ÔÛ
ñaây chuùng ta tieáp caän töø goùc ñoä cuûa ngöôøi laäp trình öùng duïng, ñoù
laø ngöôøi söû duïng taát caû caùc hoã trôï cuûa phaàn cöùng, caùc coâng cuï
phaàn meàm ñeå xaây döïng neân caùc öùng duïng.
Tuy nhieân ñeå coù theå thieát keá vaø caøi ñaët caùc chöông trình öùng
duïng ñoà hoïa ñöôïc toát, ngoaøi vieäc tìm hieåu caùc khaû naêng cuûa coâng
cuï laäp trình, chuùng ta cuõng caàn phaûi naém vöõng caùc khaùi nieäm veà
phaàn cöùng; caùc vaá n ñeà, caùc nguyeân lí lieâ n quan ñeán caøi ñaët phaàn
meàm, caùc thuaät toaùn, caùc öùng duïng, …
3. TOÅNG QUAN VEÀ MOÄT HEÄ ÑOÀ HOÏA
Moät heä ñoà hoï a bao giôø cuõng coù hai thaønh phaàn chính ñoù laø
phaàn cöùng vaø phaàn meàm. Phaàn cöùng bao goàm caùc thieát bò hieån thò
vaø nhaäp döõ lieäu, … Phaàn meàm bao goàm caùc coâng cuï laäp trình vaø
caùc trình öùng duïng ñoà hoïa. Chuùng ta seõ laàn löôït khaûo saùt caùc
thaønh phaà n naøy.
3.1. Phaàn cöùng
3.1.1. Thieát bò hieån thò
Maøn hình laø thieát bò hieån thò thoâ ng duïng nhaát trong moät heä
ñoà hoïa. Caùc thao taùc cuûa haàu heát maøn hình ñeàu döïa treân thieát keá
cuûa oáng tia aâm cöïc (CRT – cathode ray tube).
Caáu taïo cuûa CRT
Hình 1.6 minh hoïa thao taùc cô sôû cuûa moät oáng tia aâm cöïc.
Moät chuøm caùc tia ñieän töû (tia aâm cöïc) phaùt ra töø moät suùng ñieän töû,
12
2k7
Đồ họa máy tính
vöôït qua caùc heä thoáng hoäi tuï (focusing) vaø daãn höôùng (deflection)
seõ höôùng tôùi caùc vò trí xaùc ñònh treân maøn hình ñöôïc phuû moät lôùp
phosphor. Taï i moãi vò trí töông taùc vôùi tia ñieän töû, haït phosphor seõ
phaùt ra moät chaám saùng nhoû. Vì aùnh saùng phaùt ra bôûi caùc haït
phosphor môø daàn raát nhanh neâ n caàn phaûi coù moät caùch naøo ñoù ñeå
duy trì aûnh treâ n maøn hình. Moät trong caùc caùch ñoù laø laëp ñi laëp laïi
nhieàu laàn vieäc veõ laïi aûnh thaät nhanh baèng caùch höôùng caùc tia ñieän
töû trôû laïi vò trí cuõ. Kieåu hieån thò naøy goïi laø refresh CRT.
Hình 1.6 – Caáu taïo cuûa CRT
Coù nhieàu loaïi phosphor ñöôïc duøng trong moät CRT. Ngoaøi maøu
saéc ra, ñieåm khaùc nhau chính giöõa caùc loaïi phosphor laø “ñoä beàn”
(persistent), ñoù laø khoaûng thôøi gian phaùt saùng sau khi tia CRT
khoâng coøn taùc ñoä ng. Lôùp phosphor coù ñoä beà n thaáp caàn toác ñoä laøm
töôi cao hôn ñeå giöõ cho hình aûnh treân maøn hình khoûi nhoøe . Loaïi
naøy thöôøng raát toát cho hoaït hình, raát caàn thay ñoåi hình aûnh lieân
tuïc. Lôùp phosphor coù ñoä beàn cao thöôøng ñöôïc duøng cho vieäc hieån
thò caùc aûnh tónh, ñoä phöùc taïp cao. Maëc duø moät soá loaïi phosphor coù
ñoä beàn lôùn hôn 1 giaây, tuy nhieân caùc maøn hình ñoà hoïa thöôøng
ñöôïc xaây döïng vôùi ñoä beàn dao ñoäng töø 10 ñeán 60 micro giaây.
Soá löôïng toái ña caùc ñieåm coù theå hieån thò treân moät CRT ñöôïc
goïi laø ñoä phaân giaûi (resolution). Moät ñònh nghóa chính xaùc hôn cuûa
Convert by ha_con_bk
Trang 13
ñoä phaâ n giaûi laø soá löôïng caùc ñieåm treân moät centimet maø coù theå
ñöôïc veõ theo chieàu ngang vaø chieàu doïc, maëc duø noù thöôøng ñöôïc
xem nhö laø toång soá ñieåm theo moãi höôùng.
Kích thöôùc vaät lí cuûa maøn hình ñoà hoïa ñöôïc tính töø ñoä daøi
cuûa ñöôøng cheùo maøn hình, thöôøng dao ñoäng töø 12 ñeán 27 inch hoaëc
lôùn hôn. Moät maø n hình CRT coù theå ñöôïc keát hôïp vôùi nhieàu loaïi
maùy khaùc nhau, do ñoù soá löôïng caùc ñieåm treân maøn hình coù theå
ñöôïc veõ thaät söï coøn tuøy thuoäc vaøo khaû naêng cuûa heä thoáng maø noù
keát hôïp vaøo.
Moät thuoäc tính khaùc cuûa maøn hình nöõa laø tæ soá phöông
(aspect ratio). Tæ soá phöông laø tæ leä cuûa caùc ñieåm doïc vaø caùc ñieåm
ngang caà n ñeå phaùt sinh caùc ñoaï n thaúng coù ñoä daøi ñôn vò theo caû
hai höôùng treân maø n hình (trong moät soá tröôøng hôïp ngöôøi ta
thöôøng duøng tæ soá phöông nhö laø tæ soá cuûa caùc ñieåm theo chieàu
ngang so vôùi caùc ñieåm theo chieàu doïc). Vôùi caùc maøn hình coù tæ soá
phöông khaùc 1, deã daøng nhaän thaáy laø caùc hình vuoâng hieån thò treân
noù seõ coù daïng hình chöõ nhaät, caùc hình troøn seõ coù daïng hình
ellipse. Thöïc ra khaù i nieäm tæ soá phöông xuaát phaùt töø baûn chaát
khoaûng caùch (neáu tính cuøng moät ñôn vò ñoä daøi) giöõa caùc ñieåm doïc
khoâng baèng khoaû ng caùch giöõa caùc ñieåm ngang. Moät tæ soá phöông coù
giaù trò ¾ coù nghóa laø veõ 3 ñieåm theo chieàu doïc seõ coù cuøng ñoä daøi
vôùi vieäc veõ 4 ñieåm theo chieàu ngang.
Maøn hình daïng ñieåm (raster - scan display):
Maøn hình daïng ñieåm laø daïng thöôøng gaëp nhaát trong soá caùc
daïng maøn hình söû duïng CRT döïa treân coâng ngheä truyeàn hình.
Trong heä thoáng naøy, chuøm tia ñieän töû seõ ñöôïc queùt ngang qua
maøn hình, moãi laàn moät doøng vaø queùt tuaàn töï töø treân xuoáng döôùi.
Söï baät taét cuûa caùc ñieåm saùng treân maøn hình phuï thuoäc vaøo cöôøng
ñoä cuûa tia ñieän töû vaø ñaây chính laø cô sôû cuûa vieäc taïo ra hình aûnh
treân maøn hình.
14
2k7
Đồ họa máy tính
Moãi ñieåm treân maøn hình ñöôïc goïi laø moät pixel hay laø pel (vieát
taét cuûa picture element). Caùc thoâ ng tin veà hình aûnh hieån thò treân
maøn hình ñöôïc löu tröõ trong moät vuøng boä nhôù goïi laø vuøng ñeäm
laøm töôi (refresh buffer) hay laø vuøng ñeäm khung (frame buffer).
Vuøng boä nhôù naøy löu tröõ taäp caùc giaù trò cöôøng ñoä saùng cuûa toaøn boä
caùc ñieåm treân maøn hình vaø luoân luoân toàn taïi moät song aùnh giöõa
moãi ñieåm treân maøn hình vaø moãi phaàn töû trong vuøng naøy.
Hình 1.7 – Quaù trình taïo hình aûnh cuûa caùc tia queùt
Ñeå thay ñoåi caùc hình aûnh caàn hieån thò, caùc giaù trò töông öùng
vôùi vò trí vaø ñoä saù ng phaûi ñöôïc ñaët vaøo vuøng ñeäm khung. Hình 1.8
minh hoïa caùc giaù trò töông öùng trong vuøng ñeäm khung ñeå hieån thò
hình aûnh cuûa chöõ A treân maøn hình.
Ñoái vôùi maøn hình ñen traéng, vuøng ñeäm khung coøn ñöôïc goïi laø
bitmap, vôùi caùc maøn hình khaùc vuø ng ñeäm khung thöôøng ñöôïc goïi
laø pixmap.
Convert by ha_con_bk
Trang 15
Ñeå taïo ra caùc aûnh ñen traé ng, ñôn giaû n chæ caàn löu thoâng tin
cuûa moãi pixel baè ng 1 bit (caùc giaù trò 0, 1 seõ töôïng tröng cho vieäc
taét (toái), baät (saùng) pixel treân maøn hình). Trong tröôøng hôïp aûnh
nhieàu maøu, ngöôøi ta caàn nhieàu bit hôn, neáu thoâng tin cuûa moãi pixel
ñöôïc löu baèng b bit, thì ta coù theå coù 2 b giaù trò maøu phaân bieät cho
pixel ñoù.
Hình 1.8 – Song aùnh giöõa vuøng ñeäm khung vaø maøn hình
Trong caùc maøn hình maøu, ngöôøi ta ñònh nghóa taäp caùc maøu
laøm vieäc trong moät baû ng tra (LookUp Table - LUT). Moãi phaàn töû
cuûa LUT ñònh nghóa moät boä ba giaù trò R (Red), G (Green), B (Blue)
moâ taû moät maøu naøo ñoù. Khi caàn söû duïng moät maøu, ta chæ caàn chæ
ñònh soá thöù töï (index) töông öùng cuûa maøu ñoù trong LUT. Baûng
LUT coù theå ñöôïc thay ñoåi bôûi caùc öùng duïng vaø ngöôøi laäp trình coù
theå can thieäp ñieàu khieån. Vôùi caùch laøm naøy chuùng ta coù theå tieát
kieäm khoâng gian löu tröõ cho moãi phaàn töû trong vuøng ñeäm khung.
Soá phaàn töû cuûa LUT ñöôïc xaùc ñònh töø soá löôïng caùc bits/pixel.
Neáu moãi phaàn töû cuûa vuøng ñeäm khung duøng b bits ñeå löu thoâ ng tin
16
2k7
Đồ họa máy tính
cuûa moät pixel, thì baûng LUT coù 2 b phaàn töû. Neáu b=8, LUT seõ coù
28=256 phaàn töû, ñoù chính laø soá maøu coù theå ñöôïc hieån thò cuøng moät
luùc treân maøn hình.
Vieäc laøm töôi treân maøn hình daïng naøy ñöôïc thöïc hieän ôû toác
ñoä 60 ñeán 80 frame/giaây. Ñoâi khi toác ñoä laøm töôi coøn ñöôïc bieåu
dieãn baèng ñôn vò Hertz (Hz – soá chu kì/ giaây), trong ñoù moät chu kì
töông öùng vôùi moät frame. Söû duïng ñôn vò naøy, chuùng ta coù theå moâ
taû toác ñoä laøm töôi 60 frame/giaây ñôn giaû n laø 60Hz. Khi ñaït ñeán
cuoái moãi doøng queùt, tia ñieän töû quay trôû laïi beân traùi cuûa maøn hình
ñeå baét ñaàu doøng queùt keá tieáp. Vieäc quay trôû laïi phía traùi maøn hình
sau khi laøm töôi moãi doøng queùt ñöôïc goïi laø tia hoài ngang
(horizontal retrace). Vaø tôùi cuoái moãi frame, tia ñieän töû (tia hoài doïc
– vertical retrace) quay trôû laïi goùc treân beân traùi cuûa maøn hình ñeå
chuaån bò baét ñaàu frame keá tieáp.
Trong moät soá maøn hình, moãi frame ñöôïc hieån thò thaønh hai
giai ñoaïn söû duïng kó thuaät laøm töôi ñan xen nhau (interlaced
refesh). ÔÛ giai ñoaïn ñaàu tieân, tia queùt seõ queùt moät soá doøng töø treân
xuoáng döôùi, sau tia hoài doïc, caùc doøng coøn laïi seõ ñöôïc queùt. Vieäc ñan
xen caùc doøng queùt naøy cho pheùp chuùng ta thaáy ñöôïc toaøn maøn
hình hieån thò chæ trong moät nöûa thôøi gian so vôùi duøng ñeå queùt taát
caû caùc doøng moät laàn töø treân xuoáng döôùi. Kó thuaät naøy thöôøng ñöôïc
duøng cho loaïi maøn hình coù toác ñoä laøm töôi thaáp.
Hình 1.9 – Hoaït ñoäng cuûa maøn hình interlaced
Convert by ha_con_bk
Trang 17
Caùc heä maøu
Vieäc nghieâ n cöùu maøu saéc bao goàm nhieàu lónh vöïc nhö : quang
hoïc, sinh lí hoïc, taâm lí hoïc vaø caùc nhaâ n toá khaùc thuoäc veà con
ngöôøi. Vì theá, coù raát nhieàu quan nieäm cuõng nhö caùc thaønh ngöõ veà
khoa hoïc caùc maøu saéc. Ñoái vôùi nhöõng ngöôøi laøm tin hoïc, vaán ñeà
maø hoï quan taâm laø moái töông taùc qua laïi giöõa söï caûm nhaän maøu
saéc cuûa con ngöôøi vôùi caùc boä phaä n phaà n cöùng hieån thò maøu saéc cuûa
maøn hình maùy tính, vaø vôùi caùc phaàn meàm thieát keá treân noù. Baûng
döôùi ñaây seõ trình baøy moái quan heä naøy :
Söï caûm nhaän
Ñaëc ñieåm phaàn cöùng
Ñaëc ñieåm phaàn meàm
cuûa con ngöôøi
Maøu saéc
Thuaät toaùn treân
khoâng gian maøu
Ñoä baõo hoøa
(Saturation)
Caùc maøu hieån thò
goác
Böôùc soùng
(WaveLength)
Söï thuaàn nhaát cuûa
maøu
Ñoä saùng hay ñoä choùi
Söï “rung” cuûa maøn
hình
Cöôøng ñoä saùng
Toác ñoä laøm töôi
(refresh)
Hieäu chænh gamma
Saéc ñoä maøu (Hue)
Khoâng gian maøu (color space) do ñoù ñöôïc ñöa ra ñeå ñònh caùc
maøu hieån thò treân maùy tính bôûi vì chuùng laøm ñôn giaûn hoùa caùc
thao taùc tính toaùn caà n thieát cho vieäc chuyeån ñoåi maøu saéc (color
transformation). Khoâng gian maøu coù theå ñöôïc thieát keá hoaëc laø döïa
treân cô sôû cuûa boä phaùt sinh maøu cuûa phaà n cöùng (hardware color
generation) (ví duï nhö khoâng gian RGB) hoaëc laø döïa treân söï caûm
nhaän maøu saéc cuûa maét (nhö khoâ ng gian HSL). Vôùi moät öùng duïng,
vieäc choïn khoâng gian maøu naøo ñeå söû duïng tuøy thuoä c vaøo moät soá
nhaân toá sau : ñoä chính xaùc maø caùc nhaø thieát keá caàn kieåm soaùt maøu
saéc (color control); yeâu caàu veà söï töông taùc giöõa caùc maøu saéc vaø toác
ñoä caùc tính toaùn cho öùng duïng ñoù.
18
2k7
Đồ họa máy tính
Khoâng gian RGB (RGB space)
Khoâng gian RGB moâ taû maøu saéc baèng ba thaønh phaàn Red,
Green, Blue. Khoâng gian naøy ñöôïc minh hoïa baèng moät khoái laäp
phöông vôùi caùc truïc chính R, G, B.
Moãi maøu trong khoâng gian RGB ñeàu ñöôïc bieåu dieãn nhö laø
moät vector thoâng qua ba vector cô sôû laø Red, Green, Blue. Do ñoù,
öùng vôùi caùc toå hôïp khaùc nhau cuûa ba maøu naøy seõ cho ta moät maøu
môùi.
G
Green
Gray scale
1 (0,1,0)
Cy an
(0,1,1)
White
(1,1,1)
Black
(0,0,0)
1
Red
(1,0,0)
1
B
Y ellow
(1,1,0)
Blue
(0,0,1)
R
Magenta
(1,0,1)
Hình 1.10 - Moâ hình khoâng gian RGB
Trong hình laäp phöông moãi maøu goác (Red, Green, Blue) ñöôïc
ñaët vaøo goùc ñoái dieän vôùi caùc maøu buø noù. (Hai maøu buø nhau laø hai
maøu maø khi keát hôïp taïo thaø nh maøu traéng hay xaùm (grey)). Nhö
vaäy Red ñoái dieän vôùi Cyan, Green ñoái dieä n vôùi Magenta, Blue ñoái
dieän vôùi Yellow. Giaù trò xaùm naèm treân ñöôøng cheùo noái caùc ñænh
0,0,0 , 1,1,1 cuûa hình laäp phöông. Thöôøng thöôøng caùc truïc R, G, B
ñöôïc chuaån hoùa. Khi keát hôïp hai maøu laïi vôùi nhau thì maøu sinh ra
coù vector baèng toång caùc vector thaønh phaàn.
Convert by ha_con_bk
Trang 19
Moät soá thuaän lôïi khi duøng khoâng gian RGB :
Khoâng gian RGB laø chuaån coâng nghieäp cho caùc thao taùc ñoà
hoïa maùy tính. Caùc thao taùc maøu saéc coù theå ñöôïc tính toaùn
treân caùc khoâng gian maøu khaùc nhöng cuoái cuøng caàn phaûi
chuyeån veà khoâng gian RGB ñeå coù theå hieån thò treân maøn
hình (do thieát keá cuûa phaàn cöùng döïa treân moâ hình RGB).
Coù theå chuyeå n ñoåi qua laïi giöõa khoâng gian RGB vôùi caùc
khoâng gian maøu khaùc nhö CIE, CMY, HSL, HSV, ...
Caùc thao taùc tính toaù n treân khoâng gian RGB thöôøng ñôn
giaûn hôn.
Moät soá baát lôïi :
Caùc giaù trò RGB cuûa moät maøu laø khaùc nhau ñoái vôùi caùc maøn
hình khaùc nhau : Nghóa laø caùc giaù trò RGB cuûa maøu tiùm
treân maøn hình maøu naøy seõ khoâng sinh ra ñuùng maøu ñoù
treân moät maøn hình khaùc.
Söï moâ taû caùc maøu trong theá giôùi thöïc ñoái vôùi khoâng gian
RGB coøn nhieàu haïn cheá bôûi vì khoâng gian RGB khoâng hoaøn
toaøn phuø hôïp vôùi söï caûm nhaän maøu saéc cuûa con ngöôøi. Hai
ñieåm phaân bieät trong khoâ ng gian RGB, vôùi maét ngöôøi coù
theå hoaëc khoâng theå laø theå hieän cuûa hai maøu khaùc nhau.
Chính vì ñieàu naøy maø khoâng gian RGB khoâng theå aùnh xaï
tröïc tieáp ñeán baát cöù chieàu caûm nhaä n naøo khaùc (nhö hue,
saturation, lightness) ngoaøi hue (saéc ñoä).
Khoâng gian HSL
Khoâng gian naøy coù chuù troïng hôn khoâng gian RGB ñeán caùc
thaønh phaà n cuûa söï caûm nhaän maøu saéc cuûa maét (Hue, Saturation,
Lightness). Tuy nhieân, khoâng gian HSL thöïc ra cuõng chæ laø moät
pheùp bieá n ñoåi gaàn ñuù ng cuûa khoâng gian RGB maø thoâi. Khoâng
gioáng nhö caùc khoâng gian maøu khaùc xaây döïng treân söï caûm nhaän
maøu saéc cuûa maét, khoâng gian HSL vaãn coøn bò leä thuoäc vaøo phaàn
20
2k7
Đồ họa máy tính
cöùng cuûa CRT.
Khoâng gian HSL ñöôïc bieåu dieãn trong heä toïa ñoä truï, hình
minh hoïa laø hai hình noùn uùp vaø o nhau. H (Hue) laø toaï ñoä öùng vôùi
goùc quay, S (Saturation) laø toïa ñoä goác, L laø truïc thaúng ñöùng. Haàu
heát caùc maøu ñaït baõo hoøa khi S = 1 vaø L = 0.5.
L(Lightness)
L=1
(White)
Red
Yellow
Magenta
L=0.5
Green
Blue
Cy an
Gray scale
H(Hue angle)
L=0
(Black)
S(Saturation)
Hình 1.11 - Moâ hình khoâng gian HSL
Moät soá thuaän lôïi cuûa khoâng gian HSL :
Khoâng gian HSL gaàn vôùi söï caûm nhaän caùc thuoäc tính maøu
saéc cuûa con ngöôøi hôn khoâng gian RGB (tuy caùch tieáp caän
ñaõ ñôn giaûn hoùa ñi nhieàu). Caùc maøu ñöôïc xaùc ñònh deã daøng
hôn chaúng haïn do H quay quanh truïc ñöùng neân caùc maøu buø
ñöôïc xaùc ñònh moät caùch deã daø ng, ñoái vôùi caùc giaù trò
lightness cuõng vaäy.
Vieäc kieåm soaùt caùc maøu cô sôû HSL deã hôn cho nhöõng ngöôøi
môùi laøm quen vôùi caùc chöông trình ñoà hoïa.
Convert by ha_con_bk
Trang 21
Moät soá baát lôïi :
Vieäc theâm vaøo moät vector khoâng theå thöïc hieän ñôn giaûn
nhö khoâng gian RGB (chæ theâm vaø o caùc thaønh phaàn maøu).
Caùc thao taùc löôïng giaùc khi bieán ñoåi seõ aûnh höôûng ñaùng keå
ñeán toác ñoä cuûa chöông trình.
Caàn phaûi qua hieäu chænh gamma tröôùc khi hieån thò (gioáng
nhö caùc khoâng gian khaùc).
Khoâng gian HSV
Khoâng gian HSV thöïc chaát cuõng chæ laø moät söï bieán ñoåi khaùc
cuûa khoâng gian RGB. Khoâng gian HSV ñöôïc moâ hình baèng hình
laäp phöông RGB quay treân ñænh Black cuûa noù. H (Hue) laø goùc quay
quanh truïc Values, S (Saturation) ñi töø 0 ñeán 1, truïc V (Values) do
vaäy töông öùng vôùi ñöôøng cheùo noái ñænh White vaø Black.
V(Value)
Green
(1200)
Y ellow
V=1
(White)
Cy an
Blue
(2400)
Red
(00)
Magenta
Gray scale
H(Hue angle)
V=0
(Black)
S(Saturation)
Hình 1.12 - Moâ hình khoâng gian HSV
22
- Xem thêm -