Mga modernong graphical na API. Apple Metal API: ano ang trick?

Tinutukoy ng API ang functionality na ibinibigay ng isang program (module, library), habang pinapayagan ka ng API na i-abstract mula sa kung paano eksaktong ipinatupad ang functionality na ito.

Kung ang isang program (module, library) ay itinuturing bilang isang itim na kahon, ang API ay isang hanay ng mga "handle" na available sa user ng kahon na ito, na kaya niyang pilipitin at hilahin.

Ang mga bahagi ng software ay nakikipag-ugnayan sa isa't isa sa pamamagitan ng mga API. Sa kasong ito, ang mga bahagi ay karaniwang bumubuo ng isang hierarchy - ang mga high-level na bahagi ay gumagamit ng API ng mga mababang antas na bahagi, at sila naman, ay gumagamit ng API ng kahit na mas mababang antas ng mga bahagi.

Ang mga protocol ng paglilipat ng data ay binuo sa prinsipyong ito. Ang karaniwang Internet protocol (modelo ng OSI network) ay naglalaman ng 7 layer (mula sa pisikal na antas pagpasa ng mga bit packet pababa sa mga protocol ng application tulad ng HTTP at IMAP). Ang bawat layer ay gumagamit ng functionality ng nakaraang data transfer layer at, sa turn, ay nagbibigay ng kinakailangang functionality sa susunod na layer.

Mahalagang tandaan na ang konsepto ng isang protocol ay malapit sa kahulugan sa konsepto ng isang API. Parehong mga abstraction ng pag-andar, tanging sa unang kaso ay pinag-uusapan natin ang tungkol sa paglipat ng data, at sa pangalawa ay pinag-uusapan natin ang pagbuo ng mga application sa computer.

Ang function at class library API ay may kasamang paglalarawan mga lagda At semantika ng mga function.

Application Programming Interface (API) interface ng software pakikipag-ugnayan sa pagitan ng mga system, na nagpapahintulot sa:

  • Makakuha ng access sa mga serbisyo sa negosyo ng enterprise
  • Palitan ng impormasyon sa pagitan ng mga system at application
  • Pasimplehin ang mga pakikipag-ugnayan sa pagitan ng mga kumpanya, kasosyo, developer at kliyente

Buksan ang diskarte sa API

Kasama sa diskarte sa API ang:

  • Pagbuo ng mga produkto ng negosyo batay sa mga umiiral nang API
  • Nagbibigay ng mga panloob na serbisyo sa mga developer
  • Mga modelo ng monetization ng API para sa pagbuo ng multi-channel na pakikipag-ugnayan at pagtaas ng kita

Ang pagpapatupad ng konsepto ng Open API ay nakakatulong na baguhin ang negosyo, isama ito sa isang flexible na ecosystem ng proyekto ng mga manlalaro sa merkado, lumikha ng mga kondisyon para sa patuloy na pagbuo ng mga bagong ideya at ang paglikha ng karagdagang halaga kapag namamahala ng mga array ng corporate data.

Ang merkado para sa mga solusyon sa pagsasama ay umuunlad sa konteksto ng ebolusyon ng mga API - mula sa EDI at SOAP hanggang sa Web 2.0, na nagsimula sa panahon ng mga pampublikong API. Ang bilang ng mga naturang interface sa susunod na 3 taon ay maaaring lumaki ng higit sa 50 beses at umabot sa 1 milyon. Ito ay dahil sa omnichannel: ang mga channel ng pakikipag-ugnayan sa mga customer ay dapat magbago kasama nila. Ang patuloy na paglaki sa bilang ng mga consumer at ang dami ng data ay humantong sa paglitaw ng ekonomiya ng API, na tumutulong sa paglikha ng mga makabagong modelo ng negosyo para sa paggamit ng mga asset at serbisyo ng enterprise batay sa mga bukas na interface.

Lagda ng function

Lagda ng function- bahagi ng isang pangkalahatang deklarasyon ng function na nagpapahintulot sa mga broadcaster na tukuyin ang function bukod sa iba pa. Ang iba't ibang mga programming language ay may iba't ibang mga ideya tungkol sa signature ng isang function, na malapit ding nauugnay sa mga kakayahan ng function overloading sa mga wikang ito.

Minsan sila ay nakikilala pirma ng tawag At lagda ng pagpapatupad mga function. Ang isang signature ng tawag ay karaniwang pinagsama-sama mula sa syntactic na istraktura ng isang function na tawag, na isinasaalang-alang ang lagda ng saklaw ng ibinigay na function, ang pangalan ng function, ang pagkakasunud-sunod ng mga aktwal na uri ng mga argumento sa tawag, at ang uri ng resulta. Karaniwang kasama sa lagda ng pagpapatupad ang ilang elemento mula sa syntactic na istraktura ng deklarasyon ng function: isang specifier ng saklaw ng function, pangalan nito, at isang pagkakasunud-sunod ng mga pormal na uri ng argumento.

Halimbawa, sa C++ programming language, ang isang simpleng function ay natatanging kinilala ng compiler sa pamamagitan ng pangalan nito at ang pagkakasunud-sunod ng mga uri ng mga argumento nito, na bumubuo sa function signature sa wikang ito. Kung ang isang function ay isang paraan ng isang partikular na klase, ang pangalan ng klase ay isasama rin sa lagda.

Dapat ding tandaan na ang programmer ay madalas na mayroong maraming iba't ibang mga API sa kanyang pagtatapon upang makamit ang parehong resulta. Bukod dito, ang bawat API ay karaniwang ipinapatupad sa gamit ang API mga bahagi ng software sa mas mababang antas ng abstraction.

Halimbawa: para makita ang linyang “Hello, world!” sa browser. kailangan mo lang gumawa ng HTML na dokumento na may kaunting pamagat at simpleng katawan na naglalaman linyang ito. Ano ang mangyayari kapag binuksan ng browser ang dokumentong ito? Ipapasa ng browser program ang pangalan ng file (o isang nakabukas nang file descriptor) sa library na nagpoproseso ng mga HTML na dokumento, na, naman, gamit ang operating system API, ay babasahin ang file na ito at mauunawaan ang istraktura nito, pagtawag sa mga operasyon tulad ng "clear ang window", "sumulat Hello, mundo sa napiling font!", Sa panahon ng mga operasyong ito, ang library ng mga graphic primitive ay makikipag-ugnayan sa window interface library na may kaukulang mga kahilingan, at ang library na ito ay makikipag-ugnayan sa operating system API na may mga kahilingan tulad ng "ilagay ito sa buffer ito ng video card ko."

Bukod dito, sa halos bawat antas ay may ilang posibleng alternatibong API. Halimbawa: maaari naming isulat ang pinagmulang dokumento hindi sa HTML, ngunit sa LaTeX, at maaari naming gamitin ang anumang browser para sa pagpapakita. Iba't ibang mga browser, sa pangkalahatan, gumamit ng iba't ibang mga library ng HTML, at, higit pa rito, ang buong bagay ay maaaring (sa pangkalahatan) ay pinagsama-sama gamit ang iba't ibang primitive na mga aklatan at sa iba't ibang mga operating system.

Samakatuwid, ang mga pangunahing hamon ng umiiral na mga multi-level na API system ay:

  • Kahirapan sa porting code ng programa mula sa isang API system patungo sa isa pa (halimbawa, kapag binabago ang OS);
  • Pagkawala ng functionality kapag lumilipat mula sa isang mas mababang antas patungo sa isang mas mataas. Sa halos pagsasalita, ang bawat "layer" ng API ay nilikha upang mapadali ang pagpapatupad ng ilang karaniwang hanay ng mga operasyon. Ngunit sa parehong oras, ito ay nagiging talagang mahirap o nagiging pangunahing imposible na magsagawa ng ilang iba pang mga operasyon na ibinibigay ng isang mas mababang antas ng API.

Mga pangunahing uri ng API

Mga panloob na API

  • Ang pag-access sa API ay limitado sa mga panloob na developer lamang
  • Ang mga aplikasyon ay naglalayong sa mga empleyado ng enterprise

Mga Driver ng Negosyo:

  • Katatagan ng pag-unlad
  • Pagbawas ng gastos
  • Nadagdagang kahusayan sa pag-unlad

Mga Partner API

  • Available lang ang mga API sa limitadong hanay ng mga kasosyo sa negosyo
  • Ang mga application ay inilaan para sa mga end consumer at mga user ng negosyo

Mga Driver ng Negosyo:

  • Automation ng proseso ng pag-unlad
  • Pag-unlad ng mga pakikipagtulungan
  • Pag-optimize sa proseso ng pakikipag-ugnayan sa mga kasosyo

Mga pampublikong API

Ang access ay ibinibigay sa anumang panlabas na developer Ang mga application ay naglalayong sa mga end user

Mga Driver ng Negosyo:

  • Pag-unlad ng mga bagong serbisyo
  • Pag-unlad ng ekosistema
  • Omnichannel na pakikipag-ugnayan

Pinaka sikat na API

API ng mga operating system

GUI API

  • Direct3D (bahagi ng DirectX)
  • DirectDraw (bahagi ng DirectX)

ay higit pa mataas na antas compression kaysa sa mga larawang may mababang nilalaman ng mga naturang elemento (halimbawa, mga graph, diagram, mga simpleng texture). Mga larawan mula sa mataas na resolution maaaring i-compress na may mataas na compression ratio nang hindi naaapektuhan ang kanilang kalidad. Para makatipid mataas na kalidad Para sa mga larawang may mababang resolution, dapat na mas mababa ang huling ratio ng compression. Ang mga larawang may mataas na lalim ng kulay (gaya ng mga 24-bit na Truecolor na larawan) ay mas mahusay na na-compress kaysa sa mga larawang may mas kaunting bits bawat pixel (gaya ng 8-bit na grayscale).

Karamihan sa iba pang lossy compression na paraan ay simetriko sa kalikasan. Nangangahulugan ito na ang mga ito ay batay sa paggamit ng isang partikular na pagkakasunud-sunod ng mga operasyon, na ginagawa sa reverse order kapag nag-unpack. Ang pag-compress at pag-decompress ng data ay tumatagal ng humigit-kumulang sa parehong tagal ng oras. Ang Fractal compression ay isang asymmetrical na proseso ng mas matagal kaysa sa decompression. Ito ay sumusunod na ang fractal compressed data ay kapaki-pakinabang sa mga kaso kung saan ang mga file ng imahe ay madalas na na-decompress ngunit hindi na-compress, halimbawa, kapag nag-iimbak ng mga larawan sa mga graphics database sa CD-ROM.

Ang ilan sa mga pinakakaraniwang anyo ay maikling tinalakay sa ibaba:

Moderno mga graphical na API

Pag-unlad ng modernong kumplikado mga programa sa graphics, lalo na ang mga 3D na application, ay hindi mapaghihiwalay na naka-link sa paggamit ng mga API

(Application Programming Interface).

Ang API ay isang hanay ng mga aklatan na kumakatawan sa isang yari na interface para gumana ang programa sa mga 3D accelerators. Sa kasalukuyan, katulad sa-

Mayroong napakaraming mga interface, ngunit lahat sila ay maaaring nahahati sa dalawang klase: pangkalahatan at dalubhasa.

Ang mga Universal API ay karaniwan sa lahat ng 3D accelerators, at suporta pagpapabilis ng hardware para sa mga API na ito ay responsibilidad ng mga accelerator mismo. Una sa lahat, dapat nating i-highlight ang Microsoft DirectX at OpenGL. Parehong ginagamit pangunahin sa mga programa ng animation sa computer.

Ang mga espesyal na API ay idinisenyo upang gumana sa mga graphics accelerator na binuo sa mga partikular na 3D chipset; ang pinakasikat sa kanila ay ang Glide API - isang interface para sa pagtatrabaho sa VooDoo® chips - para sa Savage3D chips, atbp. Gumagana lamang ang mga program na isinulat gamit ang mga espesyal na API sa mga accelerator kung saan ginawa ang mga API na ito. Karamihan sa mga dalubhasang API ay nagbibigay lamang ng mababang antas na interface ng programming, ngunit kani-kanina lang, bago Mga bersyon ng DirectX isama ang mataas na antas ng mga interface ng suporta tulad ng DirectX para sa VisualBasic, na nagbibigay ng suporta sa wika para sa mga multimedia application na nakasulat sa VisualBasic na kapaligiran Visual programming Basic.

Microsoft DirectX API

Ang Microsoft DirectX API ay isang hanay ng mga interface ng programming na ginagamit upang malutas iba't ibang gawain: mula sa kontrol ng programa computer hardware bago ang pag-unlad mga aplikasyong multimedia gamit ang iba't ibang uri ng impormasyon, at paglikha ng mga virtual na mundo.

Ang pangunahing layunin na hinabol ng Microsoft noong lumilikha ng interface ng DirectX ay upang paandarin ang mga computer na tumatakbo Mga sistema ng Windows, V unibersal na plataporma para sa mga application na mayaman sa mga elemento ng multimedia: full-color na graphics, mga fragment ng video

tami, 3D animation at tunog ng stereo. Direktang binuo sa OS kernel Windows interface Ang DirectX ay isang pinagsamang serbisyo

Windows 98 at Windows 2000, pati na rin Microsoft Internet Explorer. Mga bahagi

Ang DirectX ay maaari ding awtomatikong ma-download sa iyong computer sa panahon ng pag-install modernong laro at mga multimedia application na binuo para sa Windows 95. Para sa mga developer, ang DirectX ay nagbibigay ng isang hanay ng mga interface ng software, ang paggamit nito ay nagbibigay-daan sa iyo upang malutas ang dalawang pangunahing problema.

Una, ginagawa ng DirectX ang mga application na binuo kasama nito sa mga program na katugma sa alinman bersyon ng Windows at tumatakbo sa anumang computer kung saan naka-install ang operating system na ito, anuman ang uri na ginamit software. Kasabay nito katulad na mga aplikasyon sulitin ang mga teknikal na kakayahan computer, pagbibigay pinakamataas na pagganap. Ito ay nakakamit sa pamamagitan ng serbisyong ibinigay ng dalawang pangunahing Mga bahagi ng DirectX: mababang antas na mga interface na kasama sa Komposisyon ng DirectX Foundation, at ang mga high-level na interface na bumubuo sa DirectX Media.

Pangalawa, binibigyan ng DirectX ang mga developer ng pagkakataong mag-abstract mula sa partikular na uri ng display adapter, sound card o 3D accelerator at tumuon sa logic ng program mismo.

Ang DirectX Foundation ay nagbibigay sa mga developer ng isang set ng mababang antas na mga interface ng software na nagbibigay ng mahusay na access sa lahat ng mga kakayahan ng isang computer na nagpapatakbo ng Windows OS, na ipinatupad sa antas ng hardware - 3D accelerators, sound card, mga kagamitang pang-input ng impormasyon. Bago ang pagdating ng DirectX, ang mga developer na lumilikha ng mga multimedia application para sa Windows platform ay kailangang i-configure ang kanilang mga programa upang gumana sa iba't ibang uri ng mga device at configuration. Ang isyung ito ay nalutas na ngayon. Ang DirectX Foundation ay naglalaman ng isang bahagi na kilala bilang Hardware Abstraction Layer (HAL), na gumagamit ng software

mga driver upang matiyak ang pakikipag-ugnayan sa pagitan ng software at hardware. Bilang resulta, ang mga developer ay maaaring lumikha ng isang bersyon ng isang application gamit ang DirectX interface nang hindi kinakailangang mag-alala tungkol sa pagtiyak na ito ay tumatakbo sa mga partikular na configuration ng hardware. Awtomatikong nakikita ng DirectX ang mga teknikal na kakayahan ng iyong computer at nagtatakda ng mga naaangkop na parameter. Pinapayagan ka rin ng DirectX na magpatakbo ng mga multimedia application na nangangailangan ng suporta sa hardware na hindi available sa computer na ito. Sa kasong ito, ang mga ito ay ginagaya sa software ng isang bahagi na tinatawag na Hardware Emulation Layer (HEL) at nagbibigay ng mga driver ng software na nagsisilbing mga nawawalang device.

Ang DirectX Media ay nakaupo sa tuktok ng DirectX Foundation at nagbibigay ng mataas na antas ng mga serbisyo - suporta sa animation, streaming output (ang kakayahang magpadala at tingnan ang audio at video na impormasyon habang ito ay dina-download mula sa Internet) at interaktibidad. Ang awtomatikong pagsasama ng mga serbisyong mababa ang antas na ibinibigay ng DirectX Foundation at ang mga serbisyong mataas na antas na ibinibigay ng DirectX Media ay nagpapasimple sa proseso ng paglikha at paglalaro ng mga elemento ng multimedia, na nagpapahintulot sa mga developer na isama ang mga ito sa kanilang mga aplikasyon at mga Web page, sa gayon ay nagbibigay ng interactive na nilalamang multimedia na hindi available dati. Bilang karagdagan, ang DirectX Media ay tumutulong sa paglutas ng problema ng koordinasyon iba't ibang uri mga multimedia effect, na ginagawang mas madaling i-synchronize ang kanilang pag-playback. Bilang karagdagan sa dalawang pangunahing bahagi na ito, kasama rin sa Microsoft DirectX ang mga high-level na bahagi na nagbibigay ng multimedia functionality para sa mga Web application. Kabilang dito ang: NetMeeting - isang tool para sa pag-aayos ng mga online na talakayan ng grupo at Windows Media Player - isang tool para sa pagpapadala ng nilalamang multimedia sa Internet. Isaalang-alang natin sa madaling sabi ang mga pangunahing bahagi

Mga bahagi ng DirectX Foundation. Kabilang dito ang Microsoft DirectDraw, Direct3D(Immediate at Retained mode), DirectInput, DirectMusic, DirectSound,

DirectSound 3D at DirectPlay. Ang mga interface ng programming sa antas ng system na ito

magbigay ng mahusay na pag-access sa iba't ibang mga aparato sa computer at tiyakin ang tunay na pagsasarili ng hardware ng mga application, inaalis ang mga problema sa pag-install ng driver at hindi pagkakatugma ng mga platform ng hardware at software.

Ang Microsoft Direct3D ay isang interface para sa pagtatrabaho sa mga 3D video card. Ang arkitektura ng Direct3D ay ipinapakita sa Figure 1.5.

Win32 application

Sinusuportahan ng Direct3D ang dalawang operating mode - Immediate Mode at Retained Mode. Sa Immediate Mode, ang Direct3D ay nagbibigay sa mga developer ng hardware na suporta para sa gaming at multimedia application sa kapaligiran Microsoft Windows. Binibigyang-daan ka nitong makamit ang kalayaan ng hardware, sumusuporta sa switchable Z-buffering at Intel MMX processor architecture. Sa mode na ito, direktang ipinapatupad ang mga pangunahing graphics primitive, nang hindi gumagamit ng mga buffer ng execution.

Pinapadali ng Retained Mode ang paggawa at pag-animate ng mga 3D na mundo sa pamamagitan ng pagsuporta sa dalawang bagong feature: mga animation interpolator na may color blending, makinis na paggalaw ng bagay, at maramihang. iba't ibang uri pagbabagong-anyo, pati na rin ang sunud-sunod na pagpuno ng 3D mesh na istraktura

mga bagay (meshes), na nagpapahintulot sa kanilang unti-unting pag-load mula sa mga malalayong server. Nagbibigay-daan ito sa mga developer na epektibong gumamit ng 3D graphics nang hindi kinakailangang direktang manipulahin ang mga istruktura ng bagay sa mababang antas.

Dapat tandaan na ang mga Direct3D na application ay nakikipag-usap sa mga graphics device sa parehong paraan, anuman ang mode. Maaari silang gumamit o hindi gumamit ng software emulation bago i-access ang HAL. Sa katotohanan, ang Direct3D ay malapit na isinama sa bahagi ng DirectDraw, kaya sa Figure 1.2 ang layer ng abstraction ng hardware na HAL ay itinalagang DirectDraw/Direct3D HAL. Ang Direct3D Z-buffer at nagre-render ng mga surface, habang direktang ipinapakita ng DirectDraw ang mga ito. Ang Direct3D COM interface ay isang interface sa DirectDraw.

Ang DirectDraw ay isang memory management manager na nagbibigay pangunahing hanay mga function para sa mga graphic at multimedia application na tumatakbo Windows platform. Hindi tulad ng tradisyonal na Windows graphics, ang DirectDraw ay gumagamit ng direktang access upang ipakita ang memorya at mga graphics device, habang tinitiyak ang buong compatibility sa mga Windows application.

Ipinapakita ng Figure 1.6 ang pakikipag-ugnayan sa pagitan ng DirectDraw, ang operating system kernel component na GDI (Graphics Device Interface), ang Hardware Abstraction Layer (HAL), at ang hardware emulation layer

(Hardware Emulation Layer, HEL). Tulad ng nakikita mo, ang DirectDraw ay umiiral nang nakapag-iisa

mo mula sa GDI at ang parehong mga interface ay may kakayahang direktang ma-access ang mga graphics device sa pamamagitan ng hardware-independent na mga layer. Hindi tulad ng GDI, ang DirectDraw ay hindi gumagamit ng mga tampok ng hardware. Kung tiyak na aparato ay hindi sumusuporta sa mga kinakailangang function, sinusubukan ng DirectDraw na tularan ang mga ito gamit ang HEL. Sinusuportahan ng DirectDraw ang isang malawak na hanay ng mga display adapter - mula sa simpleng monitor sa kumplikado propesyonal na mga aparato. Nagtatrabaho sa antas ng mga graphic surface, nagsisilbi ang DirectDraw

ang batayan para sa mga high-level na graphical na function at interface at nagbibigay-daan sa iyong gamitin ang alinman sa mga kakayahan ng hardware na ibinigay ng mga device o tularan ang mga ito kung kinakailangan.

Win32 application

tion Layer (HEL)

Abstraction Layer

Video card

Figure 1.6 – Pagsasama ng DirectDraw sa system

Ang DirectInput ay isang interface sa iba't ibang mga aparato input ng impormasyon - keyboard, mouse, joystick, pati na rin ang mga device na may force-feedback. Kumpara sa maginoo, karaniwang mga tampok interface na ito sumusuporta mas malaking bilang device at nagbibigay ng mas mabilis na pagtugon sa mga kahilingan. Sa pamamagitan ng direktang pagtatrabaho sa mga driver ng device, hindi ginagamit ng DirectInput ang Microsoft Windows messaging system.

Kasama sa mga bagong feature ng DirectInput ang pinalawak na listahan ng mga sinusuportahang device, kabilang ang: mga gaming panel(game pads), abyasyon

mga pamatok sa paglipad, mga helmet virtual reality(virtual-reality na headgear)

At mga device na may feedback, na nagbibigay ng mga epekto tulad ng vibration, paglaban sa paggalaw, atbp., na ang paggamit nito ay ginagawang mas makatotohanan ang mga modernong laro.

Ang DirectMusic ay bagong sangkap mga pamilya Mga teknolohiya ng DirectX, na isang software shell para sa paglikha ng mga template ng musika at mga tagubilin para sa pagtugon sa mga aksyon ng user. Nagbibigay-daan ito sa mga developer na lumikha background music sa real time batay sa mga algorithm na tinukoy sa mga Web page o multimedia application. Nagbibigay ang DirectMusic ng buong pagpapatupad ng pamantayan ng DownLoadable Sounds (DLS), na nagpapahintulot sa mga developer na lumikha ng mga template ng musika na tumutugtog sa halos anumang hardware platform. Kasama sa DirectMusic ang DirectMusic Producer - isang pinagsama-samang editor na nagbibigay-daan sa iyong magtrabaho sa lahat ng object ng DirectMusic: mga istilo, template, mga tool sa DLS, atbp.

Ang DirectPlay ay isang mataas na antas na interface ng programming sa pagitan programa ng aplikasyon at mga serbisyo sa komunikasyon, na pinapasimple ang komunikasyon sa pamamagitan ng modem o lokal na network. Kasama sa DirectPlay ang isang hanay ng mga utility na nagpapahintulot sa mga manlalaro na makahanap ng mga kasosyo at Web site, suportahan ang daloy ng impormasyon sa pagitan ng mga server, at ang parehong hanay ng mga function ay sinusuportahan para sa sinumang gumagamit ng application, anuman ang uri online na serbisyo o mga protocol.

SA Bilang karagdagan sa mababang antas na mga interface ng DirectX Foundation, ang DirectX ay may kasamang mas mataas na antas na hanay ng mga interface ng programming

at mga bahagi ng DirectX Media, na nagbibigay ng suporta para sa mga aplikasyong multimedia, animation at output ng impormasyon sa streaming. Ang DirectX Media ay kasalukuyang binubuo ng mga sumusunod na pangunahing interface ng programming:

DirectShow (tinatawag dati ActiveMovieSDK); DirectAnimation (tinatawag dati ActiveX Animation); Pagbabago ng DirectX. Tandaan na ang mga serbisyo ng DirectX Media ay gumagamit ng mga serbisyo ng DirectX Foundation.

Pag-optimize ng software

Hardware o pagpapabilis ng software

Single-pass o multi-pass imaging

Gumagamit ang iba't ibang video adapter ng iba't ibang teknolohiya ng visualization. Sa ngayon, halos lahat ng video adapter ay nagsasagawa ng pag-filter at pangunahing pag-render sa iisang pass, na nagbibigay-daan para sa mas mataas na frame rate. Ang mga video adapter na may single-pass na pag-render at mga kakayahan sa pag-filter ay karaniwang mas mabilis kapag nagtatrabaho Mga programang 3D at iwasan ang mga pagbaluktot na dulot ng mga error sa maraming kalkulasyon ng floating point habang nagre-render.

Ang pag-render ng hardware ay nakakamit ng mas mahusay na kalidad ng imahe at bilis ng animation kaysa sa pag-render ng software. Gamit mga espesyal na driver, ginagawa ng mga bagong video adapter ang lahat ng kinakailangang kalkulasyon sa mga bilis na hindi pa naririnig. Upang gumana sa mga application 3D graphics, at para din sa mga modernong laro, ang teknolohikal na solusyon na ito ay napakahalaga.

Dapat itong bigyang-diin na ang pagkakaroon ng mga advanced na 3D visualization function sa video adapter ay ganap na walang silbi hanggang sa mga developer ng laro at mga aplikasyon ng software huwag i-optimize ang kanilang mga produkto upang lubos na mapakinabangan ang mga naturang feature.

Upang mapataas ang pagganap, kailangan mong i-configure ang OpenGL, Direct 3D, RAMDAC, bilis ng orasan at iba pang mga parameter.

Ang API (Application Programming Interface) ay nagbibigay sa mga developer ng hardware at software ng mga tool upang lumikha ng mga driver at program na tumatakbo nang mas mabilis. malalaking dami mga platform.

Mga driver ng software ay idinisenyo upang direktang makipag-ugnayan sa API, sa halip na sa operating system at software.

Kasalukuyang mayroong dalawang graphics API - OpenGL (SGI) at Direct 3D (Microsoft).

Mga tanong sa pagsusulit.

1. Ano ang mga pangunahing uri ng video system na ginagamit sa mga computer?

2. Tukuyin ang isang video adapter;

3. Anong mga uri ng maskara ang mayroon?

4. Bakit kailangan ang degaussing sa mga monitor ng CRT?

5. Anong uri ng radiation ang nakakaapekto sa kalusugan sa mga monitor ng CRT?

6. Anong mga nakakalason na sangkap ang ginagamit sa mga monitor ng CRT?

7. Ano ang mga pangunahing teknikal na mga pagtutukoy ginagamit para sa LCD monitor?

8. Ilista ang mga teknolohiya ng LCD monitor?

9. Anong disenyo mga panel ng plasma?

10. Ano mga pakinabang ng OLED monitor kumpara sa LCD-display?

11. Anong mga bahagi ang binubuo ng video card?

12. Anong mga uri ng memorya ng video ang ginagamit sa mga video card?

13. Para saan ginagamit ang 3D accelerator?

14. Anong mga three-dimensional na teknolohiya ng graphics ang umiiral?

Noong nakaraang linggo, ipinakilala ang Vulkan API, at inihayag ng AMD at NVIDIA ang malawakang suporta para dito. Ang bagong graphical na interface ay binuo ng Khronos Group, isang consortium na itinatag noong 2000. Ang Khronos Group ay responsable para sa pagpapaunlad at suporta bukas na mga pamantayan sa larangan ng mga multimedia application sa iba't ibang platform at device. Ang consortium ay sinusuportahan ng AMD at NVIDIA, pati na rin ng maraming iba pang kumpanya.

Noong nakaraang linggo ang huling bersyon 1.0 ng Vulkan API ay niratipikahan. Ipinakita ng AMD at NVIDIA ang kani-kanilang mga beta driver. Ang AMD ay paunang naglabas ng beta na bersyon ng Radeon Software noong ika-14 ng Pebrero. Ipinakita ang NVIDIA Driver ng GeForce 356.39, na nakatuon din sa pagsuporta sa Vulkan API.

Ang diskarte ng Vulkan API ay halos kapareho sa Mantle API. Ang punto ay ang mga developer ay nakakakuha ng higit pa malalim na pag-access sa hardware para masulit ito. Ang diskarte na ito ay nagbibigay-daan sa iyo upang maiwasan ang mga umiiral na bottleneck hangga't maaari. Sa kabilang banda, kailangang malaman ng mga developer kung ano mismo ang kanilang ginagawa - halimbawa, kapag nagtatrabaho gamit ang memorya. Ang interface ng OpenGL ay hindi kasing tanyag ng DirectX, ngunit nagbibigay-daan ito sa iyo na mag-squeeze out pa.

Ang Vulkan API sa bersyon 1.0 ay suportado sa Windows 7, Windows 8.1, Windows 10, Android at Linux. Ang mga developer ng laro ay hindi pa nag-anunsyo ng suporta para sa mga partikular na laro, ngunit sulit na maghintay para sa Games Developer Conference, na gaganapin mula Marso 14 hanggang 18 sa San Francisco. Mula sa mga engine ng laro, mayroon pa ring impormasyon tungkol sa Source 2, na sumusuporta na sa Vulkan API. Ang proseso ng pag-debug ay ginagawang mas madali sa pamamagitan ng suporta mula sa Valve, LunarG at Codeplay.

Ang Prinsipyo ng Talos

Okay, ngunit anong laro o engine ang sumusuporta sa Vulkan API? Ang Talos Principle ay binuo ng Croteam, na kilala na sumusuporta sa maraming graphics API sa nakaraan. At sa pinakabagong pag-ulit, ang Prinsipyo ng Talos ay walang pagbubukod - sinusuportahan nito ang DirectX 9, DirectX 11, OpenGL at ngayon ay Vulkan. Para sa development studio, ang Vulkan ay isang trial balloon, kahit na ang Vulkan API ay available sa bersyon 1.0, ang suporta ay nasa beta pa rin. Ang mga developer ng Croteam ay gumugol ng halos tatlong buwan sa pagdaragdag ng suporta. Ngunit ang unibersal na katangian ng API ay ginagawang posible na ipakilala ang isang variant ng Linux sa lalong madaling panahon.

Ang Vulkan API ay theoretically compatible sa ilang mga platform - ngunit sa ngayon ang mga pagsubok at paghahambing ay maaari lamang isagawa sa Windows, at ito ay may mga limitasyon. Ang pagpapatupad ay nananatili sa napakaagang yugto. Ang DirectX 11 rendering path ay umuunlad sa loob ng maraming taon, kaya walang puwang para sa pag-optimize. Narito ang sitwasyon ay higit na nakasalalay sa mga developer ng driver, katulad ng AMD at NVIDIA. Ang Prinsipyo ng Talos ay ang unang laro na sumuporta sa Vulkan. Samakatuwid, ito ay hindi pa posible na gawin pagsubok sa paghahambing upang suriin ang mabuti o masamang pagpapatupad ng suporta.

Ang mga bagong teknolohiya ay unang ipinatupad sa mga halimbawang inihanda ng mga tagagawa. Sa kaso ng DirectX 12, ang diin ay sa Draw Calls, ang parehong 3DMark DirectX 12 na pagsubok ay umaasa lamang sa pagsukat sa pagganap ng Draw Calls, Mga laro ng DirectX 12, katulad Star Wars, ay sinusubukan ding gumamit ng katulad na pagkarga. Ngunit ang Prinsipyo ng Talos ay hindi masyadong umaasa mataas na bilis Gumuhit ng Tawag upang makagawa ng malaking pagkakaiba ang mababang antas ng API.

Ang suporta para sa bersyon 1.0 ng Vulkan API ay nasa maagang yugto nito, at ganoon din ang para sa mga driver ng AMD at NVIDIA. Ang parehong mga driver ay mahalagang mga bersyon ng beta, na kung paano tinitingnan ng mga tagagawa ng GPU ang mga ito. Karaniwang walang mga bagong pagpapahusay sa pagganap o suporta para sa mga bagong teknolohiya, kaya nakakakuha kami ng isang hakbang pabalik. Ngunit kapag naabot na ang isang partikular na antas ng pag-unlad, magkakaroon ng suporta sa Vulkan ang parehong mga driver ng GPU developer sa huling bersyon. Kailan ito mangyayari ay hindi lubos na malinaw. Pero sa ngayon mga pangunahing aplikasyon huwag gumamit ng Vulkan at mga laro na may Suporta sa API ay nasa beta state para madaling mapino ng mga GPU developer ang kanilang mga driver.

Para sa pagsubok kinuha namin ang aming sistema ng pagsubok para sa mga video card. Inilarawan na namin ang mga driver para sa AMD at NVIDIA video card sa itaas. Itinakda namin ang mga setting ng graphics sa pinakamataas na antas, ngunit sinubukan din ang mga mababang resolution pababa sa 1,280 x 720 pixels upang mapataas ang performance ng Draw Call.

Ang Talos Principle Test - 1.280 x 720 pixels

Ang pagsubok sa Prinsipyo ng Talos - 2.560 x 1.440 pixels

Ang pagsubok sa Prinsipyo ng Talos - 3.840 x 2.160 pixels

Tulad ng nakikita mo mula sa mga resulta, ang Vulkan API ay nagbibigay ng isang makabuluhang pagtaas kumpara sa OpenGL. Pero kanina Pagganap ng DirectX 11 bagong API bumabagsak. Mayroong ilang mga dahilan para dito. Sa isang banda, ang pag-unlad para sa Vulkan ay nasa maagang yugto. Nalalapat ito sa API mismo, sa driver, at laro Ang Prinsipyo ng Talos. Kumpara sa OpenGL bagong interface nagbibigay-daan sa iyong magbakante ng ilang mapagkukunan at maiwasan ang mga bottleneck. Ngunit ang DirectX ay umuunlad sa loob ng maraming taon upang kasalukuyang antas. Sa anumang kaso, ang potensyal ng Vulkan API ay napakahusay.

Kung susuriin namin ang mga detalye, wala kaming nakitang anumang visual na pagkakaiba sa pagitan ng Vulkan API at DirectX 11. Kaya't ang landas sa pag-render ay napakahusay na inangkop. Sa kasalukuyang pagpapatupad ng The Talos Principle, ang mga video card na may 2 GB ng memorya ay nakakaranas ng pagbaba sa pagganap, marahil ay dahil sa hindi ang pinaka mahusay na trabaho sa memorya. Tulad ng Mantle at DirectX 12, ang Vulkan API ay maaaring ma-access ang mga mapagkukunan ng memorya sa isang mas malalim na antas - ang katotohanang ito ay makikita bilang isang kalamangan, ngunit maaari rin itong maging isang kawalan kung ang mga developer ay hindi maaaring gumamit ng memorya nang mahusay.

Medyo nadismaya ako sa error sa agos Driver ng NVIDIA, dahil sa kung saan kailangang i-reboot ang system pagkatapos ng bawat pagsubok. Nang hindi nagre-reboot, nag-crash ang laro. Bagama't may driver ng AMD wala kaming nakitang ganitong error.

Ang kasalukuyang pagpapatupad ng Vulkan API ay tila nangangako. Sa ngayon, hindi ito magiging masyadong nauugnay para sa mga laro sa mga desktop PC, dahil ang DirectX 11 at 12 market ay napakalaki, at kumpara sa parehong DirectX 12, ang mga gastos sa pagpapatupad ay maaaring masyadong mataas at ang mga ibinalik ay masyadong maliit. Ngunit kung ang mga laro ay kailangang tumakbo sa iba't ibang mga platform na may iba't ibang mga kinakailangan sa hardware, maaaring maglaro ang Vulkan mahalagang papel. Sa anumang kaso, dapat tayong maghintay ng reaksyon mula sa mga nag-develop ng laro, kung hindi, magkakaroon tayo ng problema sa manok at itlog na mahirap alisin.

Ang mga API (Application Programming Interface) ay nagbibigay sa mga developer ng hardware at software ng paraan upang lumikha ng mga driver at program na tumatakbo nang mas mabilis sa isang malawak na hanay ng mga platform. Ang mga driver ng software ay idinisenyo upang direktang makipag-ugnayan sa API, sa halip na sa operating system at software.

Kasalukuyang mayroong dalawang graphics API - OpenGL (SGI) at Direct 3D (Microsoft).

Bagama't sinusuportahan ng mga tagagawa ng video adapter ang pamantayan ng OpenGL, kumpanya ng Microsoft nagbibigay ng Direct3D na suporta para sa isang mas komprehensibong API na tinatawag na DirectX.

Ang DirectX 9 at mas mataas ay ang pinakabagong mga bersyon ng interface ng software, na nagpapalawak ng suporta para sa 3D graphics at nagbibigay ng mga pinahusay na kakayahan sa paglalaro. Para sa karagdagang impormasyon tungkol sa DirectX o upang i-download ang pinakabagong bersyon, bisitahin ang DirectX Web site ng Microsoft: www.microsoft.com/directx.

CrossFire o sli

Bilang tugon sa pag-unlad at pag-promote ng lumang-bagong teknolohiya ng SLI (MK No. 30(357) 2005) ng NVIDIA, ang pangunahing katunggali sa merkado ng video accelerator, ATI, ay bumuo at nagpatupad ng sarili nitong katulad na solusyon - teknolohiyang CrossFire. Tulad ng SLI ng NVIDIA, pinapayagan ka nitong pagsamahin ang mga mapagkukunan ng dalawang video card sa isang computer sa isa't isa, na nagpapataas ng pagganap ng subsystem ng video. Ang teknolohiya ng CrossFire ay pangunahing naiiba sa SLI at, nang naaayon, ay may maliit na pagkakatulad sa katunggali nito. Ang pagbibigay ng kagustuhan sa ilang mga pakinabang ng isang teknolohiya o iba pa, sa malapit na hinaharap ang mga gumagamit ay pipili sa pagitan ng NVIDIA at ATI hindi lamang batay sa mga opinyon tungkol sa mga tatak na nabuo sa paglipas ng mga taon, ngunit batay din sa mga katotohanan tungkol sa mga teknolohiya ng SLI o CrossFire.

Batayang teknikal

Sa pamamagitan ng pagkakatulad sa NVIDIA, upang maglagay ng dalawang ATI video card sa isang "harness" kakailanganin mo ng motherboard na may chipset mula sa parehong tagagawa (pinlano na susuportahan din ng Intel i975X chipset ang CrossFire), na may dalawang puwang. PCI Express. Tulad ng SLI, hinihingi ng CrossFire ang mga mapagkukunan ng system, na mangangailangan ng mataas na kalidad na supply ng kuryente. Tingnan natin ang mga kinakailangan ng system nang mas detalyado.

Motherboard. Ang ina ay dapat na batay sa chipset ATI Radeon Xpress 200 CrossFire. Ang mga board na ito ay magagamit para sa parehong AMD Sempron/Athlon 64 at Intel Pentium 4/Celeron processors. Kaya't kikita na ngayon ang ATI sa mga chipset, na ang produksyon nito ay hindi pa umabot sa malaking sukat.

Mga video card. Para gumana ang teknolohiya, kailangan mo ng CrossFire master card (higit pa dito sa ibaba) at anumang iba pang video card batay sa isang chip mula sa parehong pamilya bilang host card. Ang nakikilala sa master card mula sa iba ay ang pagkakaroon ng isang DMS-59 connector (nakakonekta sa DVI sa slave card), isang CrossFire chip, at, siyempre, gastos.

Power unit. Upang mapanatili ang ganoong seryosong hanay, kakailanganin mo ng power supply na may pinakamababang kapangyarihan na 400–450 W, mas mabuti ang isang mas malakas.

Well, iyon lang ang kailangan mo upang mag-ipon ng isang video system CrossFire. Tulad ng napansin mo, ang ATI ay mas nababaluktot sa mga customer nito, hindi tinatali sila tulad ng lupa sa isang kolektibong sakahan sa ipinag-uutos na pagbili ng dalawang card na may parehong chip mula sa parehong tagagawa. Ang pagbubuklod ay isinasagawa lamang sa pamilya ng video chip kung saan nakabatay ang accelerator. Iyon ay, maaari kang bumili ng nangungunang Radeon X800 video accelerator at isang alipin na Radeon X800 XL. Magiging tugma ang Master Radeon X800 sa mga card mula sa anumang tagagawa batay sa anumang pagbabago ng X800 chip. Ito ay isang ganap na kalamangan sa isang katunggali - kung kukuha ka ng isang accelerator, na may pag-asam ng karagdagang modernisasyon sa pamamagitan ng pag-install ng isa pang video card, hindi mo na kailangang magsaliksik para sa isang card mula sa isang partikular na tagagawa batay sa isang partikular na chip. Sa ngayon, ang teknolohiya ng CrossFire ay sinusuportahan ng mga video card batay sa X800 at X850, pati na rin ng mga bagong produkto batay sa X1xxx.