ÑÂтþü - Xakep Online
ÑÂтþü - Xakep Online
ÑÂтþü - Xakep Online
- No tags were found...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
80 ÑÏÅÖ-TOPIC ÑÏÅÖ 02-07Èíèöèàëèçàöèÿãðàôè÷åñêîéïîäñèñòåìûÖèêë-äèñïåò÷åðïðîâåðÿåì êëàâèàòóðóè âðåìÿ íà òåìó«íå ïîðà ëè íàìâûõîäèòü»Êóëüòóðíî óáèðàåìçà ñîáîé âåñü ìóñîðâûõîä!Ñõåìà ðåàëèçàöèèñóïåð-ïóïåð ýôôåêòîâ ñàìîìó (çàòî ðåäàêòîð ñöåíè ñïëàéíîâ óäîáíûé). Êðîìå ýòîãî, ñîâåòóþ îáðàòèòüâíèìàíèå íà äåìîñèñòåìó neon v2 îò ãðóïïûxplsv è îòå÷åñòâåííûé opensource-ïðîåêò Plasticator.Åñëè ó òåáÿ åñòü îïûò ïðîãðàììèðîâàíèÿ èëèìîðå àìáèöèé è òû ïèøåøü ñâîþ ñàìóþ ïåðâóþ äåìêó,òî ñîâåòóþ çàáûòü ïðî âñå ñòîðîííèå äåìîñèñòåìû.Ïèøè âñå ñâîå: òàê òû áûñòðåå îñîçíàåøü, ÷òîèìåííî òåáå íåîáõîäèìî, íå çàáèâàé ñâîþ ãîëîâó ÷óæèìèáðåäíÿìè — ó òåáÿ ñâîèõ õâàòàåò. Ó ìåíÿ åñòüïàðà çíàêîìûõ ëè÷íîñòåé, êîòîðûå óáèâàþò áîëüøóþ÷àñòü âðåìåíè è ñèë íà íàïèñàíèå èíñòðóìåíòàðèÿè äåìîñèñòåìû, ÷åì ñîáñòâåííî íà ñàìó äåìêó.ãðàôèêà. Ãðàôèêà â äåìêå ìîæåò áûòü ðàñòðîâîéè âåêòîðíîé. Ðàñòðîâàÿ ãðàôèêà ðèñóåòñÿâ ðåäàêòîðàõ à-ëÿ Ôîòîøîï, à âîò ñ âåêòîðíîé âñåíåñêîëüêî ñëîæíåå. Äëÿ õðàíåíèÿ ðàñòðîâîé ãðàôèêèëþáîãî ñîäåðæàíèÿ íàì õâàòèò PNG è JPG,à âîò ôîðìàòîâ âåêòîðíîé ãðàôèêè — òüìà, âåäüêàæäûé ðåäàêòîð ñîõðàíÿåò åå â ñâîåì ôîðìàòå.Ñòàíäàðòîì äå-ôàêòî ÿâëÿåòñÿ 3Ds. Äëÿ âñåõ îñòàëüíûõ«òÿæåëûõ ñëó÷àåâ» ñóùåñòâóþò ïðîãðàììû-êîíâåðòîðûâåêòîðíûõ ãðàôè÷åñêèõ ôàéëîâ(î÷åíü õîðîøèé ïðèìåð — Deep Exploration).Íî ýòî âñå òåîðèÿ, à íà äåëå ìàòåðûå äåìîìåéêåðû÷àñòåíüêî áðåçãóþò ñòàíäàðòíûìè ôîðìàòàìè,âûäóìûâàÿ ñâîè. È ïðàâèëüíî äåëàþò! Ýòîïîçâîëÿåò äåëàòü êîä áîëåå ãèáêèì, èñïîëüçîâàòüëåãêîâåñíûé çàãðóç÷èê è îïòèìèçèðîâàòü äàííûåïîä êîíêðåòíûå çàäà÷è.Çàãðóçèòü ðàñòðîâîå èëè âåêòîðíîå èçîáðàæåíèåìîæíî ñ ïîìîùüþ ðàçëè÷íûõ áèáëèîòåê. Êàêâàðèàíò — íàïèñàòü ñàìîìó, íî ñòîèò ëè èçîáðåòàòüâåëîñèïåä? Íà òîì æå www.sourceforge.net åñòüìíîæåñòâî áèáëèîòåê äëÿ çàãðóçêè äàííûõ ëþáûõôîðìàòîâ. È, âñïîìèíàÿ áîÿíèñòóþ ôðàçó íà ÿðëûêåìóæñêîé ðóáàøêè «dry wash only, 40 °C, no bleach,inside out, no machine washing — OR — just give it toyour wife — it’s her job», âñå îñòàëüíîå ñêèäûâàåì íàõóäîæíèêà. Ýòî åãî ðàáîòà — ðèñîâàòü è ñîõðàíÿòüâ ïðàâèëüíûé ôîðìàò. Åñëè áóäåò ñîïðîòèâëÿòüñÿ,òî ïîêàæè åìó, êòî â äîìå õîçÿèí ;).Âåðøèíîé èñêóññòâà äåìîìåéêèíãà ÿâëÿåòñÿãåíåðàöèÿ èçîáðàæåíèé òåêñòóð èñêëþ÷èòåëüíîïîñðåäñòâîì êîäà. Òóò ðå÷ü èäåò íå î ïðîñòûõ ãðàäèåíòàõñ øóìîì, à èìåííî î ñëîæíûõ èçîáðàæåíèÿõ.Îñòàíîâèìñÿ íà ýòîì ìîìåíòå è èäåì ñìîòðåòü64êá èíòðó Fr-08: The Produkkt (ñîîòâåòñòâóþùàÿêàðòèíêà).Ñìîòðèì äî ñàìîãî êîíöà è âíèìàòåëüíî âíèêàåìâ öèôðû â òèòðàõ — âïå÷àòëÿåò! Ðàçîáðàòüñÿ,êàê ðàáîòàþò ãåíåðàòîðû òåêñòóð, ìîæíî íà îòëè÷íîìïðèìåðå ïðîåêòà Àëåêñàíäðà Êóõàðåíêî (hi,f0x!) — «Plasticator» (http://plasticator.heroez.net). Âîîáùåãîâîðÿ, ýòîò ïðîåêò — ïîëíîöåííàÿ îòå÷åñòâåííàÿäåìîñèñòåìà, íà êîòîðîé áûëè ñäåëàíû ðàçëè÷íûåèíòðû è äåìêè, íî íàñ íà äàííîé ñòàäèè áóäåòèíòåðåñîâàòü òîëüêî òî, êàêèì îáðàçîì ìîæíî ïîëó÷èòüñëîæíûå ðèñóíêè ïîñðåäñòâîì ìèíèìóìàêîäà. Êîïàåì èñõîäíèêè, êðóòèì êíîïêè — îñîçíàåìhow to. Äåëüôèíàì, äà è îñòàëüíûì, ðåêîìåíäóåòñÿïîñìîòðåòü èíòåðåñíûé ïðîåêò www.ainc.de —«Texture»Îí òàêæå óêîìïëåêòîâàí ñîðöàìè è êðàéíå ïîçíàâàòåëåí.Ôóíêöèîíàëüíûå âîçìîæíîñòè, êîíå÷íî,íå ôîíòàí, ïî ñðàâíåíèþ ñ «Plasticator», íî âñå áîëåå÷åì ñúåäîáíî. Èñïîëüçîâàíèå ãåíåðèðóåìûõ òåêñòóððàäèêàëüíî èçìåíÿåò ðàçìåð äåìêè íà íîñèòåëå.êàê âñå ýòî ïîêàçàòü íà ýêðàíå? Ïðîöåññ îòðèñîâêèêàðòèíêè íà ýêðàíå íàçûâàåòñÿ ðåíäåðèíãîì.Ðåíäåðèíã ìîæåò áûòü ïðîãðàììíûé (software)èëè ñ ïîìîùüþ ñðåäñòâ ãðàôè÷åñêèõ áèáëèîòåêOpenGL / DirectX (hardware accelerated).Ñîôòâàðíûé ðåíäåð ïîïèêñåëüíî îáðàáàòûâàåòêàðòèíêó, èñïîëüçóÿ âû÷èñëèòåëüíûå ìîùíîñòèöåíòðàëüíîãî ïðîöåññîðà. Ðàçëè÷àþò îáû÷íûéñîôòâàðíûé ðåíäåð è ðåéòðýéñèíã (raytracing). ïåðâîì ñëó÷àå èçîáðàæåíèå ïîëó÷àåòñÿ ïóòåìðàñòåðèçàöèè ïîëèãîíîâ ñ ó÷åòîì îñâåùåíèÿè òåêñòóðèðîâàíèÿ ïî òàê íàçûâàåìûì ñêàíëàéíàì(scanlines), à âî âòîðîì ñëó÷àå èçîáðàæåíèåïîëó÷àåòñÿ ïóòåì ðàñ÷åòà âèðòóàëüíûõ ëó÷åéñ ó÷åòîì ôèçèêè îòðàæåíèÿ, ïðåëîìëåíèÿ è îñëàá-ÇàãðóçêàÎïðåäåëåíèåòåêóùåãî âðåìåíèäëÿ äàííîãî êàäðàÑ÷èòàåì, êàêèå ñöåíûíàì íàäî ðèñîâàòüâ ýòîì êàäðåÌèêøèðóåìîòðåíäðåííûå ñöåíû,ïîñòïðîöåññèíãè ïðî÷èå ðàäîñòèÇàãðóçêàãëîáàëüíûõ äàííûõ,ìóçûêèÃåíåðàöèÿòåêñòóð, ñýìïëîâ,ãåîìåòðèèÄîïîëíèòåëüíàÿçàãðóçêà äàííûõäëÿ êîíêðåòíîé ñöåíûÑöåíà, êîòîðàÿ ïðèíèìàåòëîêàëüíûé ïàðàìåòð —ëîêàëüíîå âðåìÿÅùå îäíà ñöåíà,â êîëè÷åñòâå îò 0äî âàøåé ôàíòàçèèëåíèÿ ñâåòà. Ïåðâûé ñïîñîá ïîçâîëÿåò ïîëó÷èòüäîñòàòî÷íî êà÷åñòâåííóþ êàðòèíêó ñ ïðèëè÷íûìêîëè÷åñòâîì ïîëèãîíîâ, çàòî ðåéòðåéñåð ìîæåòñãåíåðèðîâàòü çíà÷èòåëüíî áîëåå ðåàëèñòè÷íóþêàðòèíêó ñ ýôôåêòàìè, íåäîñòóïíûìè äàæå ñàìûì-ñàìûìñîâðåìåííûì âèäåîàêñåëåðàòîðàì.Äîñòóï ê âîçìîæíîñòÿì âèäåîóñêîðèòåëÿ îñóùåñòâëÿåòñÿ÷åðåç áèáëèîòåêè OpenGL è DirectX.Âîçìîæíîñòè ïîñëåäíèõ âåðñèé OpenGL è DirectX áîëåå÷åì ñðàâíèìû, õîòÿ, ñ ìîåé òî÷êè çðåíèÿ, DirectXáîëåå programmer-friendly. Îí ïîääåðæèâàåò áîëüøåôîðìàòîâ ôàéëîâ, èíòåðôåéñîâ äëÿ ñòðóêòóð äàííûõ.Äîñòóï ê ðàñøèðåííûì ôóíêöèÿì òàêæå çíà÷èòåëüíîïðîùå â DirectX, çàòî OpenGL ÿâëÿåòñÿäåéñòâèòåëüíî êðîññïëàòôîðìåííîé áèáëèîòåêîé.Äîñòóï ê ðàñøèðåííûì ôóíêöèÿì âèäåîóñêîðèòåëÿ âOpenGL îñóùåñòâëÿåòñÿ ÷åðåç òàê íàçûâàåìûå ðàñøèðåíèÿ,÷òî çíà÷èòåëüíî óñëîæíÿåò íàïèñàíèå êîäà.Õîòÿ âðó. Íå óñëîæíÿåò, à óâåëè÷èâàåò êîëè÷åñòâîòåëîäâèæåíèé.  ìèíóñ API OpenGL âåðñèé íèæå2.0 èäåò òàêæå îòñóòñòâèå âîçìîæíîñòè èñïîëüçîâàíèÿòåêñòóð ðàçìåðà, íå êðàòíîãî ñòåïåíè 2. Äëÿ