13.07.2015 Views

этом - Xakep Online

этом - Xakep Online

этом - Xakep Online

SHOW MORE
SHOW LESS
  • 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. Äëÿ

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!