- Ôèçèêà â èãðàõ -
Ôèçèêà â èãðàõ
Èòàê, â ýòîì ãîäó ÿ çàäóìàëñÿ íàä ñìåíîé âèäåîêàðòû ATI Radeon x1650 íà íîâóþ è õîòü ñòîðîííèê âèäåîêàðò AMD-ATI, íî õîòåëîñü ó ñåáÿ íà ÏÊ íàáëþäàòü «ôèçèêó» â ëþáèìîé èãðå «Batman: Arkham Asylum».
Áûëà ìûñëü êóïèòü ñëàáåíüêóþ âèäåîêàðòó nVidia äëÿ «ôèçèêè» èëè êóïèòü ÷òî-òî ïîëó÷øå nVidia äëÿ ñàìîñòîÿòåëüíîé îáðàáîòêè «ôèçèêè». Ïîáðîäèâ ïî ôîðóìàì, ðåøèë êóïèòü GeForce GTX 560 Ti. Ïî÷åìó, ñåé÷àñ îáúÿñíþ. Íî ïåðåä òåì, êàê ðàññêàçàòü îá èñïîëüçîâàíèè ôèçèêè â èãðàõ, îïèøó òåõíîëîãèþ ATI Stream Computing îò AMD-ATI.
ATI Stream
Òåõíîëîãèÿ ATI Stream Computing – àëüòåðíàòèâà nVidia CUDA è ôèçèêà â èãðàõ. Øèðîêî ïðèìåíÿåòñÿ, â ïåðâóþ î÷åðåäü, â ñôåðå îáðàáîòêè ìóëüòèìåäèéíûõ äàííûõ. Ñ ïîìîùüþ âû÷èñëèòåëüíûõ ðåñóðñîâ âèäåîêàðò çíà÷èòåëüíî óñêîðèòñÿ ðàáîòà ìíîãèõ ïîïóëÿðíûõ ïðèëîæåíèé äëÿ ðåäàêòèðîâàíèÿ âèäåî, çâóêà è èçîáðàæåíèé.
Êðîìå òîãî, â íåäàë¸êîì áóäóùåì ñðåäñòâàìè òåõíîëîãèè ïîòîêîâûõ âû÷èñëåíèé ïëàíèðóåòñÿ çàìåòíî óëó÷øèòü ñêîðîñòü èñïîëíåíèÿ íåêîòîðûõ ðåñóðñî¸ìêèõ ôóíêöèé îïåðàöèîííîé ñèñòåìû èëè îôèñíûõ ïðèëîæåíèé, íàïðèìåð, ôóíêöèè ïîèñêà.
Îäíàêî íå ñòîèò çàáûâàòü î ïðèìåíåíèè ATI Stream Computing â èãðàõ. Åå âîçìîæíîñòè ïîçâîëÿþò ðàçðàáîò÷èêàì êîìïüþòåðíûõ èãð ïîäíÿòü ñïåöýôôåêòû è èñêóññòâåííûé èíòåëëåêò ïåðñîíàæåé íà íîâûé êà÷åñòâåííûé óðîâåíü.
Íà÷èíàÿ ñ ñåðèè Radeon HD 4000 ìîæíî îïðîáîâàòü âîçìîæíîñòè òåõíîëîãèè ïîòîêîâûõ âû÷èñëåíèé. Çíà÷èòåëüíî óñêîðèëàñü ðàáîòà âèäåîêîíâåðòåðà ATI Avivo Video Converter.
×òî êàñàåòñÿ ÏÎ, àäàïòèðîâàííîãî ê òåõíîëîãèè AMD, èõ ÷èñëî ïîñòîÿííî ðàñò¸ò: Microsoft, Adobe, CyberLink è ArcSoft. Ïîääåðæêà àïïàðàòíîãî óñêîðåíèÿ óæå åñòü â Adobe Acrobat Reader, Adobe Photoshop CS4, Adobe Flash 10, Adobe After Effects CS4, Microsoft Office PowerPoint 2007, ArcSoft TotalMedia Theater, CyberLink PowerDirector 7.
Ôèçèêà â èãðàõ
Ðàçðàáîò÷èêè ñîâðåìåííûõ èãð óäåëÿþò ñàìîå áîëüøîå âíèìàíèå êà÷åñòâó è äåòàëèçàöèè òð¸õìåðíîé ãðàôèêè. Ïðè÷¸ì, èíîé ðàç, â íàäåæäå ïðèêîâàòü âíèìàíèå èãðîêà ê ýêðàíó íåâèäàííûìè ðàíåå ñïåöýôôåêòàìè ýòî äåëàåòñÿ äàæå â óùåðá ñþæåòó. Îäíàêî, ïîìèìî ãðàôèêè, íåìàëóþ ðîëü â äåëå áîëåå ïîëíîãî ïîãðóæåíèÿ èãðîêà â âèðòóàëüíóþ ðåàëüíîñòü èãðàþò è äðóãèå ôàêòîðû, òàêèå êàê çâóê è ðåàëèñòè÷íàÿ ôèçè÷åñêàÿ ìîäåëü.
Íî äàæå ñàìûå ïðîñòûå ÿâëåíèÿ ôèçè÷åñêîãî ìèðà, íàáëþäàåìûå íàìè èçî äíÿ â äåíü, íà äåëå îêàçûâàþòñÿ êðàéíå ñëîæíûìè â ðåàëèçàöèè. Ê ïðèìåðó, èìèòàöèÿ ïîòîêà âîäû èëè ðåàëèñòè÷íûé ðàçáðîñ îñêîëêîâ ðàçáèòîãî ñòåêëà òðåáóþò ìàññû ñëîæíûõ ìàòåìàòè÷åñêèõ âû÷èñëåíèé è, êàê ñëåäñòâèå, ñîîòâåòñòâóþùèõ ïðîöåññîðíûõ ìîùíîñòåé.
Áîëüøèíñòâî ñîâðåìåííûõ èãð ïî-ïðåæíåìó èñïîëüçóþò äëÿ ýòîé öåëè ðåñóðñû öåíòðàëüíîãî ïðîöåññîðà ñèñòåìû, îäíàêî, â ðàñïîðÿæåíèè ðàçðàáîò÷èêîâ äàâíî èìååòñÿ êóäà áîëåå ìîùíîå âû÷èñëèòåëüíîå óñòðîéñòâî, âåäü ëþáîé ñîâðåìåííûé âèäåîàäàïòåð, ïî ñóòè, ïðåäñòàâëÿåò ñîáîé íàáîð èç ìíîæåñòâà óíèôèöèðîâàííûõ ïðîöåññîðîâ, ñïîñîáíûõ ðàáîòàòü ïàðàëëåëüíî.
Ïåðâûå ëàñòî÷êè ðåàëèçàöèè «ôèçèêè» áûëè â èãðå «Counter-Strike» (êó÷íîñòü ïóëåì¸òà óõóäøàëàñü ïðè äëèòåëüíîé ñòðåëüáå) è «Doom 3» (ñêîëüêî áûëî ðàäîñòè, êîãäà â òóìàíå îò ôîíàðèêà ïîÿâëÿëàñü ðàäóãà) èëè «Unreal Tournament» è âî âñåõ èãðàõ íà åå äâèæêå.
Òàêæå âñïîìèíàåòñÿ ôèçèêà â ñòðàòåãèè «Â òûëó âðàãà».  äàííîé èãðå ïðèñóòñòâóåò òîòàëüíàÿ ðàçðóøàåìîñòü: âîðîíêè îò âçðûâîâ çàïðîñòî ìîãóò áûòü èñïîëüçîâàíû â ðîëè óêðûòèé, à îòëåòåâøàÿ áàøíÿ òàíêà ìîæåò óáèòü öåëóþ ãðóïïó çàçåâàâøèõñÿ ñîëäàò, ïîòîì æå ñîëäàòû ìîãóò ñïðÿòàòüñÿ çà íåé ïðè îáîðîíå.  ñëó÷àå âåäåíèÿ îãíÿ ïî äàëåêî ñòîÿùåé ìèøåíè ñóùåñòâåííî ïàäàåò åãî òî÷íîñòü è óáîéíàÿ ñèëà.
Òàêæå î÷åíü âàæíà ïîääåðæêà ãðàôè÷åñêèì ïðîöåññîðîì òåõíîëîãèè øåéäåðîâ. Ýòî ìèêðîïðîãðàììû, ñ ïîìîùüþ êîòîðûõ îïèñûâàåòñÿ âíåøíèé âèä òð¸õìåðíîãî îáúåêòà. Ýòî ïîçâîëÿåò ñîçäàâàòü â èãðàõ ïîòðÿñàþùèå âèäåîýôôåêòû, íàïðèìåð, ðèñîâàòü ðåàëèñòè÷íûå âçðûâû, âîäíûå è çåðêàëüíûå ïîâåðõíîñòè è ìíîãîå äðóãîå.
Ðèñ. 1. ×åëîâåê ïðèòÿãèâàåò ìóñîð
Ôèçèêà îò ATI
Òàê âîò, â 2006-2007 ãã. ïîÿâèëàñü ìíîãî ñîîáùåíèé î ðàçðàáîòêå ôèçèêè â èãðàõ, ÷òîáû çíà÷èòåëüíî óëó÷øèòü ðåàëèñòè÷íîñòü ñîçäàâàåìîãî èçîáðàæåíèÿ è ïîâåäåíèÿ îáúåêòîâ. Òîãäà, åù¸ íåçàâèñèìàÿ, ATI ðàçðàáîòàëà è ïðîäåìîíñòðèðîâàëà ñâîþ òåõíîëîãèþ ATI Phisics (ðèñ. 1,2,3) íà áàçå êîíöåïöèè Havok FX, îñíîâíàÿ ñóòü êîòîðîé çàêëþ÷àëàñü â èñïîëüçîâàíèè ìîùíîñòåé âèäåîêàðò äëÿ óñêîðåíèé îïðåäåë¸ííûõ ôèçè÷åñêèõ âû÷èñëåíèé.
Ðèñ. 2. Ïàäàþùèå øàõìàòíûå ôèãóðû
Havok FX äîëæåí áûë èñïîëüçîâàòüñÿ òîëüêî íà êîìïüþòåðàõ, îñíàù¸ííûõ ìèíèìóì äâóìÿ âèäåîêàðòàìè â ðåæèìå SLI èëè CrossFire. Ïðè ýòîì îäíà âèäåîêàðòà èç ýòîé ñâÿçêè äîëæíà áûëà ïîëíîñòüþ âûäåëÿòüñÿ äëÿ ôèçè÷åñêèõ âû÷èñëåíèé.
Ðèñ. 3. Èìèòàöèÿ äûìà
Òîãäà ATI îáåùàë, ÷òî äîñòàòî÷íî èìåòü ìèíèìóì äâå âèäåîêàðòû, îäíà èç êîòîðûõ áóäåò â êà÷åñòâå óñêîðèòåëÿ «ôèçèêè»! Ðàçóìååòñÿ, áåç îãðàíè÷åíèé íå îáîøëîñü, «ñòàðûé» Radeon äîëæåí áûòü íå íèæåò óðîâíÿ X1600. Ïîòîìó ÷òî, ðàñ÷¸ò ôèçè÷åñêèõ ýôôåêòîâ âûïîëíÿåòñÿ øåéäåðíûìè áëîêàìè GPU, êîòîðûå áûëè çíà÷èòåëüíî óëó÷øåíû â ñåìåéñòâå ATI Radeon X1x00.
Intel âñåì äîêàçûâàëà, ÷òî ëó÷øå âñåãî èñïîëüçîâàòü äëÿ ýòîãî ìíîãîÿäåðíûå, è òîëüêî Intel ;), ïðîöåññîðû. Íî è Intel è ATI îáåùàëè, êàê òîëüêî âûéäåò íîâûé DirectX (òîãäà åù¸ ver.10), òàê ñðàçó è ïî÷óâñòâóåòå ôèçèêó â èãðàõ.
Íî îáåùàííóþ «ôèçèêó» äàë òîëüêî DirectX 11, âêëþ÷èâ âîçìîæíîñòü èñïîëüçîâàòü âñå ÿäðà ïðîöåññîðà àïïàðàòíî, à íå êàê â DirectX 10 ïðîãðàììíî (â DirectX 9 ýòîãî âîîáùå íå áûëî), çàãðóæàÿ èõ íà ïîëíóþ.
Òàêæå ïîÿâèëàñü â íîâîì DirectX âîçìîæíîñòü èñïîëüçîâàòü øåéäåðû (îñíîâíûå öåëåâûå ïðèëîæåíèÿ äëÿ âû÷èñëèòåëüíîãî øåéäåðà âêëþ÷àþò â ñåáÿ ïîñò-ïðîöåññîâóþ îáðàáîòêó, ôèçèêó, AI è íåêîòîðûå äðóãèå, êàê òðàññèðîâêà ëó÷åé) è òåññåëÿöèþ.
Êñòàòè, ATI áûëà ïåðâàÿ èç ïðîèçâîäèòåëåé âèäåî÷èïîâ, âêëþ÷èâøàÿ â íèõ âûäåëåííûé àïïàðàòíûé ìîäóëü òåññåëÿöèè (2005 ã.). Ïðè÷èíà òàêîãî ðåøåíèÿ áûëà âåñüìà î÷åâèäíà: ýòî äîëæíî áûëî ïîçâîëèòü ðàçðàáîò÷èêàì è õóäîæíèêàì ñîçäàâàòü áîëåå ðåàëèñòè÷íûå è ñëîæíûå ïåðñîíàæè, èçáåãàÿ îãðîìíûõ íàêëàäíûõ ðàñõîäîâ.
 îñíîâå ýòîãî ïîäõîäà ëåæàëà èäåÿ, ÷òî îáúåêò, ðàñïîëîæåííûé äàëåêî îò òî÷êè îáçîðà, áóäåò ìåíåå äåòàëèçèðîâàí, ïîòîìó ÷òî åãî òÿæåëî ðàññìîòðåòü, íî ïî ìåðå åãî ïðèáëèæåíèÿ ÷èñëî òðåóãîëüíèêîâ â èçîáðàæåíèè ýòîãî îáúåêòà ýêñïîíåíöèàëüíî óâåëè÷èâàåòñÿ ñ öåëüþ óâåëè÷åíèÿ åãî äåòàëèçàöèè äëÿ òîãî, ÷òîáû îí âûãëÿäåë áîëåå ðåàëèñòè÷íî.
Äîñòîèíñòâîì ýòîãî ìåòîäà ÿâëÿåòñÿ òî, ÷òî, êîãäà ðàññìàòðèâàåòñÿ ïîëíîñòüþ ïðîñ÷èòàííîå èçîáðàæåíèå, ñðåäíåå êîëè÷åñòâî îáðàáîòàííûõ òðåóãîëüíèêîâ îñòà¸òñÿ áëèçêî ê ïîñòîÿííîìó çíà÷åíèþ, òàê ÷òî èãðîêó çíà÷èòåëüíî ðåæå ïðèõîäèòñÿ ñòàëêèâàòüñÿ ñ ðåçêèìè ïàäåíèÿìè ïðîèçâîäèòåëüíîñòè.
Ýòî ÿâëÿåòñÿ îäíîé èç ïðè÷èí, ïî÷åìó AMD ïðåäñòàâèëî àïïàðàòíîå îáåñïå÷åíèå äëÿ òåññåëÿöèè â Radeon HD 2900 XT, êîòîðîå âêëþ÷åíî â ñîñòàâ âñåõ ïîñëåäóþùèõ GPU êîìïàíèè.
Ðèñ. 4
À ÷òî æå nVidia?
Íî âåðí¸ìñÿ ê ïðîäâèæåíèþ ôèçè÷åñêèõ ïðîöåññîâ â èãðàõ. nVidia òîæå òîãäà ïûòàëàñü ÷òî-òî ïðèäóìàòü ïî ýòîìó ïîâîäó, íî äàëüøå ëåéáëà (SLI Physics) (ðèñ. 4) è èäåé íå ïîøëà.
Ðèñ. 5
Áûëà åù¸ òîãäà êîìïàíèÿ Ageia (ðèñ. 5), êîòîðàÿ ðàçðàáîòàëà ñâîé äâèæîê PhysX è ïëàòó-óñêîðèòåëü ôèçèêè (PPU – Physics Processing Unit) íà ñîáñòâåííîì îäíîèìåííîì ÷èïå. Ïðîöåññîð PhysX, ñîñòîÿë èç 125 ìèëëèîíîâ òðàíçèñòîðîâ è âêëþ÷àë â ñåáÿ ÿäðî îáùåãî íàçíà÷åíèÿ, óïðàâëÿâøåå ìàññèâîì SIMD-ïðîöåññîðîâ.
Ñîîòâåòñòâåííî, íà ïðîñòûõ, íî òðåáóþùèõ ìàññèâíûõ ïàðàëëåëüíûõ âû÷èñëåíèé çàäà÷àõ, òàêèõ, êàê ðàñ÷¸ò ñòîëêíîâåíèÿ ìíîæåñòâà îáúåêòîâ, PhysX çàâåäîìî ïðåâîñõîäèë ëþáîé CPU. ×òî â òåîðèè äàâàëî âîçìîæíîñòü ðàçðàáîò÷èêàì èãð óëó÷øèòü óæå ñóùåñòâóþùèå ñïåöýôôåêòû, òàêèå êàê âçðûâû, äûì èëè îãîíü.
À òàêæå èñïîëüçîâàòü íîâûå ïðîäâèíóòûå ýôôåêòû, íàïðèìåð, èìèòèðîâàòü ðåàëèñòè÷íîå ïîâåäåíèå æèäêîñòåé è òêàíåé èëè ñîçäàâàòü ïîëíîñòüþ ðàçðóøàåìîå îêðóæåíèå. Ò.å. â îáùåì âèäå ÏÎ ïåðåäàâàëî â ïëàòó äàííûå î òåêóùåì ñîñòîÿíèè ñöåíû è ïîëó÷àëà îáðàòíî ðåçóëüòàòû èìèòàöèè ôèçèêè.
Òîãäàøíÿÿ ìîäà îáúåäèíÿòü âèäåîêàðòû â ñâÿçêè íå îáîøëà ñòîðîíîé è ôèçóñêîðèòåëè Ageia, êîòîðàÿ ðàçðàáîòàëà òàêæå âîçìîæíîñòü èñïîëüçîâàíèÿ íåñêîëüêèõ êàðò â ñâÿçêå äëÿ ïîâûøåíèÿ ñêîðîñòè ôèçè÷åñêèõ ðàñ÷¸òîâ.
Òåõíîëîãèÿ íàçûâàëàñü Hardware Scene Manager (HSM). Ôèçè÷åñêèé äâèæîê PhysX SDK ñîñòîèò èç òð¸õ ãëàâíûõ êîìïîíåíòîâ ïî îáðàáîòêå ôèçèêè: îáðàáîòêà òâ¸ðäûõ òåë, îáðàáîòêà òêàíåé, îáðàáîòêà æèäêîñòåé.
 îòëè÷èå âîò áîëüøèíñòâà äðóãèõ ôèçè÷åñêèõ äâèæêîâ, êîòîðûå ïîñòàâëÿþòñÿ è óñòàíàâëèâàþòñÿ âìåñòå ñ èãðîé, PhysX SDK íåîáõîäèìî óñòàíîâèòü êàê îòäåëüíûé äðàéâåð. Åñëè íà êîìïüþòåðå áûëà óñòàíîâëåííàÿ ïëàòà PhysX, òî äðàéâåð PhysX SDK èñïîëüçîâàë åå ðåñóðñû, åñëè æå ïëàòà PhysX îòñóòñòâîâàëà, òî âû÷èñëèòåëüíûå çàäà÷è ïåðåíîñèëèñü íà öåíòðàëüíûé ïðîöåññîð.
Ïîñëå òîãî, êàê êîìïàíèÿ nVidia â 2008 ã. ïðèîáðåëà Ageia, PhysX ïîëíîñòüþ ïåðåø¸ë â ñîáñòâåííîñòü nVidia. PhysX SDK ðàñïðîñòðàíÿåòñÿ áåñïëàòíî è íàêëàäûâàåò íà ðàçðàáîò÷èêîâ ëèøü íåîáõîäèìîñòü óêàçàíèÿ â ïðîãðàììíîì ïðîäóêòå èíôîðìàöèè îá èñïîëüçóåìîì ôèçè÷åñêîì äâèæêå, à òàê æå îòîáðàæåíèÿ ëîãîòèïà êîìïàíèè nVidia íà ýòàïå çàãðóçêè ïðîãðàììíîãî ïðîäóêòà.
Ïîääåðæêà PhysX SDK áûëà èíòåãðèðîâàíà â ñòðóêòóðó CUDA è ñòàëà äîñòóïíàÿ äëÿ âñåõ âèäåîêàðò ïðîèçâîäñòâà nVidia, íà÷èíàÿ ñ ñåðèè 8õõõ, ïîä Windows XP. Ôèçè÷åñêèé äâèæîê PhysX SDK òåïåðü èçâåñòåí êàê nVidia PhysX SDK. Òàêèì îáðàçîì, íåîáõîäèìîñòü â âûäåëåííîì ôèçè÷åñêîì ïðîöåññîðå PhysX îòïàëà.
28 èþíÿ 2008 ãîäà Ýðàí Áàäèò, ó÷àñòíèê ðåñóðñà NGOHQ.com, çàïóñòèë àïïàðàòíóþ ïîääåðæêó PhysX SDK íà âèäåîêàðòå Radeon HD 3870. Ñîçäàë áåòà-âåðñèþ ïàò÷à äëÿ äðàéâåðîâ nVidia. Äàííûé íåîôèöèàëüíûé ïàò÷ ïåðåõâàòûâàåò è îòìåíÿåò áëîêèðîâêó ðàáîòû PhysX, åñëè â ñèñòåìå îáíàðóæåí âèäåîàäàïòåð îò AMD.
Âíà÷àëå êîìïàíèÿ nVidia îòðåàãèðîâàëà íà èíèöèàòèâó Ýðàíà Áýäèòà íåãàòèâíî, çàÿâèâ, ÷òî ýòî íåâîçìîæíî. Îäíàêî Áýäèòó ïðåäëîæèëè ïîòîì âñòóïèòü â êîìàíäó ðàçðàáîò÷èêîâ nVidia, îòêðûëè äîñòóï ê äîêóìåíòàöèè, SDK, àïïàðàòíîìó îáåñïå÷åíèþ è äàëè êîíòàêòû èíæåíåðîâ.
Áûëî îáåùàíî, ÷òî ìîäèôèöèðîâàííûå äðàéâåðû äëÿ êàðò ATI ñêîðî ñòàíóò äîñòóïíû äëÿ çàãðóçêè.  ñâîþ î÷åðåäü êîìïàíèÿ ATI îôèöèàëüíî íå ïîääåðæàëà èíèöèàòèâó Áýäèòà. Äëÿ íàïèñàíèÿ îôèöèàëüíûõ (íå ìîäèôèöèðîâàííûõ) äðàéâåðîâ ATI ñ ïîääåðæêîé PhysX êîìïàíèÿ nVidia ïðåäëàãàåò ëèöåíçèðîâàòü àïïàðàòíóþ ïîääåðæêó CUDA, êîòîðàÿ âêëþ÷àåò â ñåáÿ PhysX. Îäíàêî òåõíîëîãèÿ CUDA êîíêóðèðóåò ñ òåõíîëîãèåé AMD FireStream.
 ãðàôè÷åñêèõ äðàéâåðàõ nVidia âåðñèè 186 áûëà çàáëîêèðîâàíà âîçìîæíîñòü ñîâìåñòíîé ðàáîòû äâóõ ãðàôè÷åñêèõ êàðò, íà êîòîðûå óñòàíîâëåíû ãðàôè÷åñêèå ïðîöåññîðû îò ðàçíûõ ïðîèçâîäèòåëåé (AMD è nVidia).
Òàêèì îáðàçîì, åñëè ðàíüøå áûëà âîçìîæíîñòü ðàçäåëåíèÿ âû÷èñëåíèé ïî ðàçíûì ãðàôè÷åñêèì êàðòàì, íàïðèìåð, êàðòà ñ ïðîöåññîðîì nVidia ìîãëà ðàññ÷èòûâàòü èãðîâóþ ôèçèêó, à êàðòà ñ ïðîöåññîðîì AMD çàíèìàòüñÿ ðåíäåðèíãîì èçîáðàæåíèÿ, òî ñ âåðñèè 186 ýòà âîçìîæíîñòü çàáëîêèðîâàíà, äàæå åñëè â ñèñòåìå îáíàðóæåí èíòåãðèðîâàííûé GPU äðóãîãî ïðîèçâîäèòåëÿ.
Êðîìå òîãî, äâèæîê PhysX íîâîé âåðñèè íå ïîääåðæèâàåò ñïåöèàëèçèðîâàííûå ôèçè÷åñêèå óñêîðèòåëè (PPU) PhysX, ðàçðàáîòàííûå åù¸ Ageia, åñëè â ñèñòåìå îáíàðóæåí GPU, âûïóùåííûé íå nVidia. Òàêæå ïðîïàëà è ïîääåðæêà PhysX è íà CPU. Ïîñëåäíèì «äîñòèæåíèåì» íà ýòîé íèâå ÿâëÿåòñÿ îòêàç nVidia îò ïîääåðæêè ñòàðûõ âèäåîêàðò, â íîâûõ âåðñèÿõ äðàéâåðîâ äëÿ Windows 7.
Êàê áûòü?
Èòàê, ìîäåëèðîâàíèå èãðîâîãî ìèðà òðåáóåò äîñòàòî÷íîé âû÷èñëèòåëüíîé ìîùíîñòè, âåäü äëÿ ýòîãî íåîáõîäèìî îãðîìíîå êîëè÷åñòâî ìàòåìàòè÷åñêèõ âû÷èñëåíèé. Ñîâðåìåííûå ïðîöåññîðû âèäåîàäàïòåðîâ ìîãóò âûïîëíÿòü íåñêîëüêî îïåðàöèé îäíîâðåìåííî, èñïîëüçóÿ ïàðàëëåëüíûå âû÷èñëèòåëüíûå êîíâåéåðû.
×åì áîëüøå òàêòîâàÿ ÷àñòîòà ÷èïà ãðàôè÷åñêîé ïëàòû è áîëüøå âû÷èñëåíèé îí ìîæåò ïðîèçâîäèòü îäíîâðåìåííî, òåì ñëîæíåå è äåòàëüíåå ìîæåò áûòü âèçóàëèçèðîâàí ìèð èãðû íà ýêðàíå ìîíèòîðà.
Ðèñ. 6
Åñëè õîòèòå óâèäåòü «ôèçèêó», íàïðèìåð, â èãðå «Batman: Arkham Asylum» (ðèñ. 6), òî äîñòàòî÷íî èìåòü âèäåîêàðòó âðîäå GeForce GTX 260 èëè GeForce GTX 280, òîãäà îñîáîãî ñìûñëà ñòàâèòü äëÿ ôèçèêè îòäåëüíóþ êàðòó íåò ò.ê. èì è òàê õâàòàåò ìîùíîñòè è äëÿ ãðàôèêè è äëÿ ôèçèêè.
Äîñòàòî÷íî âêëþ÷èòü PhysX, íî èãðû, êîòîðûå òðåáóþò óñòàíîâëåííóþ êàðòó êàê ìèíèìóì GeForce GTX 280, ìîãóò íå ïîçâîëèòü âêëþ÷èòü ôèçèêó. Îäíàêî, ýòî çàêîíîìåðíî âëå÷¸ò çà ñîáîé ïðîáëåìó.
Åñëè èñïîëüçîâàòü îäíî è òî æå ÿäðî îäíîâðåìåííî äëÿ ãðàôèêè è ôèçèêè, òî îáå ýòè çàäà÷è áóäóò êîíêóðèðîâàòü ìåæäó ñîáîé çà âû÷èñëèòåëüíûå ìîùíîñòè GPU, à â ðåçóëüòàòå ëåãêî ìîæåò ñëîæèòüñÿ ñèòóàöèÿ, êîãäà èõ îêàæåòñÿ íåäîñòàòî÷íî äëÿ îáåñïå÷åíèÿ ïðèåìëåìîé ïðîèçâîäèòåëüíîñòè â ñöåíå, èñïîëüçóþùåé îäíîâðåìåííî ñëîæíóþ ãðàôèêó è ïðîäâèíóòûå ôèçè÷åñêèå ýôôåêòû. Ìîæíî ðåøèòü ýòó ïðîáëåìó óñòàíîâêîé â ñèñòåìó âòîðîé ãðàôè÷åñêîé êàðòû è íàçíà÷åíèåì åå â êà÷åñòâå óñêîðèòåëÿ PhysX.
Âèäåîêàðòû nVidia ñ ìåíåå ÷åì 32 øåéäåðíûìè ÿäðàìè íå ïîääåðæèâàþò PhysX. Âñòàâèòü «ôèçè÷åñêóþ» âèäåîêàðòó (èäåàëüíî ïîäõîäÿò GeForce GTX 260 èëè GeForce GTX 280, õîòÿ ñåé÷àñ áåç ïðîáëåì ñïðàâëÿåòñÿ GeForce GT 240 îò 512 Ìáàéò è âûøå) ìîæíî â PCI-E õ16 èëè õ8, èëè õ4 ñëîò, ÷òî àáñîëþòíî íåñóùåñòâåííî ïðîÿâèòñÿ â ïàäåíèè ïðîèçâîäèòåëüíîñòè. Ïðè ýòîì âåðñèÿ ñëîòà (1.0 èëè 2.0) íå èìååò áîëüøîé ðàçíèöû (ðèñ. 7-10).
Ðèñ. 7
Ðèñ. 8
Ðèñ. 9
Ðèñ. 10
Íà ãðàôèêàõ âèäíî, ÷òî ïðè îòêëþ÷åííîé ôèçèêå áàëû òåñòà îäèíàêîâû äëÿ âñåõ âàðèàíòîâ ïîäêëþ÷åíèÿ GeForce GTX 560 Ti, êðîìå îäèíî÷íîé GeForce GTX 560 Ti. Ýòî ìîæíî îáúÿñíèòü òåì, ÷òî ñèëüíî íàãðóçèòü (áåç âêëþ÷åíèÿ PhysX) âèäåîêàðòó èãðà íå ñïîñîáíà.
Ê òîìó æå íå âñåãäà äîïîëíèòåëüíàÿ âèäåîêàðòà äëÿ îáðàáîòêè ôèçèêè (íà äèàãðàììàõ óêàçàíû ýòè âèäåîêàðòû ïîñëå çíàêà «+») ïðèíîñÿò ïîëüçó. Õîòÿ åñëè â êà÷åñòâå äîïîëíèòåëüíîé âèäåîêàðòà GeForce GTX 295, òî ïîëüçû îò íåå áîëüøå, íåæåëè îò GeForce GTX 560 Ti. Ìîãó ïðåäïîëîæèòü, ÷òî ïðîáëåìà â äðàéâåðàõ, à òàêæå â ñêîðîñòè PCI-E, â êîòîðûé óñòàíîâëåíà «ôèçè÷åñêàÿ» âèäåîêàðòà.
Îäíàêî óñòàíîâêà äîïîëíèòåëüíîé êàðòû íå âñåãäà âîçìîæíà èëè æåëàòåëüíà, à äâóõïðîöåññîðíûå GeForce ðåäêî âñòðå÷àåòñÿ â ïðîäàæå è äîðîãè. Êñòàòè, åñòü óíèêàëüíûå âèäåîêàðòû, îñíàù¸ííûå îòäåëüíûì ÿäðîì äëÿ óñêîðåíèÿ PhysX – GeForce GTX 275 CO-OP PhysX Edition îò EVGA. Âèäåîêàðòû GeForce GT 460 è âûøå íå ñèëüíî íóæäàþòñÿ â äîïîëíèòåëüíîì óñêîðèòåëå ôèçèêè.
«À êàê æå AMD»?
… ñïðîñÿò ïîêëîííèêè AMD - ATI.
Îíè âñå âðåìÿ ìîë÷àëè. Èì áûëî íå äî ýòîãî (ñëèÿíèå ñ ATI).  ñâÿçè ñ òåì, ÷òî 15 ñåíòÿáðÿ 2007 ãîäà ôèðìà Intel âûêóïèëà ôèðìó Havok, òî «Havok FX» áûë îòìåí¸í.
Íî âîò â 2009 ãîäó îôèöèàëüíûì ïðåññ-ðåëèçîì êîðïîðàöèÿ AMD äàëà ñòàðò ïðîãðàììå ïîä íàçâàíèåì Open Physics Initiative. Åå çàäà÷à – «âûâåñòè íà íîâûé óðîâåíü ðåàëèçì â èãðàõ, ñèìóëÿòîðàõ è ïîïóëÿðíûõ ïðèëîæåíèÿõ».
Ïðàêòè÷åñêèì øàãîì, çàëîæèâøèì îñíîâó ïðîãðàììû, ñòàëî ïîäïèñàíèå ñîãëàøåíèÿ ìåæäó AMD è Pixelux Entertainment. Êîðïîðàöèÿ AMD ïîä÷¸ðêèâàåò, ÷òî äåëàåò ñòàâêó íà îòêðûòîñòü òåõíîëîãèè. Ðåçóëüòàòîì ôóíêöèîíèðîâàíèÿ äîëæíî áûòü ñóùåñòâåííîå ðàñøèðåíèå ïðèìåíåíèÿ òåõíîëîãèè ôèçè÷åñêèõ ðàñ÷¸òîâ â ðåàëüíîì âðåìåíè ïðè ïîìîùè áåñïëàòíîãî «äâèæêà» Bullet Physics, ðàñïðîñòðàíÿåìîãî â èñõîäíûõ òåêñòàõ.
×òîáû ñòèìóëèðîâàòü ðàçðàáîòêó ïðîãðàììíîãî îáåñïå÷åíèÿ, èñïîëüçóþùåãî OpenCL (Open Computing Language) è Bullet Physics, êîðïîðàöèè AMD è Pixelux ïðåäëàãàþò óíèâåðñàëüíûé ïîäõîä, ïîäõîäÿùèé äëÿ èãðîâûõ êîíñîëåé, ÏÊ è ïðî÷èõ àïïàðàòíûõ ïëàòôîðì.
 òå÷åíèå ìíîãèõ ëåò Pixelux ñîâåðøåíñòâóåò ñèñòåìó ôèçè÷åñêèõ ðàñ÷¸òîâ Digital Molecular Matter (DMM) System, â îñíîâå êîòîðîé ëåæèò èñïîëüçîâàíèå ìåòîäà êîíå÷íûõ ýëåìåíòîâ. Ðàíüøå DMM áûëà çàêðûòîé ðàçðàáîòêîé Pixelux, íî òåïåðü åå ñìîæåò èñïîëüçîâàòü øèðîêèé êðóã ðàçðàáîò÷èêîâ, òàê êàê îíàÿ áóäåò âñòðîåíà â Bullet Physics.
Ïîäîáíî òîìó, êàê òåõíîëîãèÿ ATI Stream ñåé÷àñ äà¸ò ðàçðàáîò÷èêàì ÏÎ âîçìîæíîñòü èñïîëüçîâàòü â ñâîèõ ïðîãðàììàõ ñîâìåñòíóþ ðàáîòó íåñêîëüêèõ CPU è GPU, òàê Bullet Physics ñäåëàåò øèðîêîäîñòóïíûìè ðàçðàáîòêè Pixelux.
Ïî çàìûñëó ïàðòí¸ðîâ, ïðåèìóùåñòâà DMM áóäóò äîñòóïíû äëÿ ñèñòåì, ïîääåðæèâàþùèõ OpenCL è DirectX 11 (AMD ïðîäà¸ò ñîîòâåòñòâóþùèå ìåõàíèçìû â DirectCompute API). Íîâåéøèå ãðàôè÷åñêèå ïðîäóêòû, òàêèå, êàê ñåðèÿ GPU ATI Radeon HD 5800, îáåñïå÷èâàþò íåâåðîÿòíîå êà÷åñòâî âèçóàëèçàöèè è âûñîêóþ ïðîèçâîäèòåëüíîñòü.
Âêóïå ñ ôèçè÷åñêèì ìîäåëèðîâàíèåì îíè ñïîñîáíû ñäåëàòü íîâûé øàã â ðåàëèñòè÷íîì èçîáðàæåíèè òîãî, êàê èãðîâûå îáúåêòû äâèæóòñÿ, äåôîðìèðóþòñÿ è ðàçáèâàþòñÿ íà ÷àñòè. ×òî æå, åñëè (èëè ïðàâèëüíåå - êîãäà) ñîâìåñòíûå óñèëèÿ AMD è Pixelux Entertainment ïðèâåäóò ê óñïåõó, ñóäüáà çàêðûòîé ðàçðàáîòêè, êîåé ÿâëÿåòñÿ NVIDIA PhysX, ïðåäñòàâëÿåòñÿ íåçàâèäíîé.
Ñ äðóãîé ñòîðîíû, AMD îôèöèàëüíî íà÷àëà ñîòðóäíè÷àòü ñ èðëàíäñêîé Havok, ïðèîáðåò¸ííîé êîðïîðàöèåé Intel. Íåò ñîìíåíèé â òîì, ÷òî îñíîâíîé öåëüþ ýòèõ îòíîøåíèé ÿâëÿåòñÿ àäàïòàöèÿ ôèçè÷åñêîãî äâèæêà Havok FX ê âèäåîêàðòàì Radeon.
AMD íå ïðîñòî çàíèìàåòñÿ êðèòèêîé êîíêóðåíòîâ, íî òàêæå è ïðîäâèãàåò îòêðûòóþ àðõèòåêòóðó äëÿ ïðîñ÷¸òà ôèçèêè â èãðàõ Open Physics Initiative. AMD äàæå õîòåëà ðåàëèçîâûâàòü â ñâîèõ ïðîäóêòàõ ïîääåðæêó äâèæêà PhysX è ïëàòôîðìû CUDA.
Ïîäâåäó èòîã
Ñåé÷àñ âñå ðàçðàáîò÷èêè ôèçèêè ðàçäåëèëèñü ìåæäó òðåìÿ äîñòóïíûìè âàðèàíòàìè: PhysX, Havok èëè ñîçäàíèå èõ ñîáñòâåííîãî ôèçè÷åñêîãî äâèæêà.
Óæå íàâåðíî çàìåòèëè, ÷òî äëÿ îáðàáîòêè ôèçèêè òàêæå èñïîëüçóþòñÿ øåéäåðû â òåõíîëîãèÿõ CUDA îò nVidia è ATI Stream.
Åñòü ðàçðàáîòêà è íîâîãî ôèçè÷åñêîãî äâèæêà Lagoa Multiphysics. Ñðåäè ôóíêöèé äâèæêà çàÿâëåíû ñïîñîáíîñòü îáðàáîòêè äâèæåíèÿ è âçàèìîäåéñòâèÿ ÷àñòèö â ñûïó÷èõ ìàòåðèàëàõ, íåñæèìàåìûõ æèäêîñòÿõ, óïðóãèõ êîíñòðóêöèÿõ, äåôîðìàöèè ïëàñòèêîâûõ ìàòåðèàëîâ è ìíîãèå äðóãèå ýôôåêòû.
|