OpenGL അല്ലെങ്കിൽ DirectX: ഏത് മികച്ചതാണ്, താരതമ്യ സവിശേഷതകൾ, സവിശേഷതകൾ, നുറുങ്ങുകൾ. വീഡിയോ കാർഡുകൾ

പ്രത്യക്ഷത്തിൽ, പല ഉപയോക്താക്കൾക്കും, പ്രത്യേകിച്ച്, ആധുനിക റിസോഴ്സ്-ഇന്റൻസീവ് ഗെയിമുകൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനും കളിക്കുന്നതിനും ഒരു കമ്പ്യൂട്ടർ ഉപയോഗിക്കാൻ താൽപ്പര്യപ്പെടുന്ന എല്ലാവർക്കും, ഗ്രാഫിക്സ് ക്രമീകരണങ്ങളിൽ നിങ്ങൾക്ക് ഉപയോഗിക്കാൻ കഴിയുമെന്ന് അറിയാം. പ്രത്യേക മാർഗങ്ങൾഇമേജ് ഔട്ട്പുട്ട് വേഗത്തിലാക്കുകയും ചിത്രത്തിന്റെ ഗുണനിലവാരം ഓപ്പൺജിഎൽ അല്ലെങ്കിൽ ഡയറക്‌ട് എക്‌സ് മെച്ചപ്പെടുത്തുകയും ചെയ്യുക. എന്തിനുവേണ്ടി ഉപയോഗിക്കുന്നതാണ് നല്ലത് പൂർണ്ണ ഉപയോഗംഎല്ലാ മറഞ്ഞിരിക്കുന്ന ഉറവിടങ്ങളും കമ്പ്യൂട്ടർ സിസ്റ്റംനേടുകയും ചെയ്യുന്നു പരമാവധി പ്രകടനം? ഈ ചോദ്യം തികച്ചും വിവാദപരമാണ്, സാധാരണയായി ഏതെങ്കിലും ഒരു പ്ലാറ്റ്‌ഫോമിന് അനുകൂലമായി അസന്ദിഗ്ധമായി ഉത്തരം നൽകാൻ കഴിയില്ല, കാരണം എല്ലാം ഉപയോക്താവോ ഡവലപ്പറോ തനിക്കായി സജ്ജമാക്കുന്ന നിർദ്ദിഷ്ട ലക്ഷ്യത്തെയും അതുപോലെ ഓരോന്നിനെയും ആശ്രയിച്ചിരിക്കുന്നു. പ്രത്യേക സാഹചര്യം, ഒരു ഗ്രാഫിക്സ് ആക്സിലറേറ്ററിന്റെ രൂപത്തിൽ ഹാർഡ്‌വെയറുമായി ഭാഗികമായി ബന്ധപ്പെട്ടിരിക്കാം, അതിന്റെ സോഫ്റ്റ്വെയർ പിന്തുണഡ്രൈവർമാരുടെ രൂപത്തിലും ചിലർ അധിക വശങ്ങൾ. ഔദ്യോഗിക വിവര സ്രോതസ്സുകളിലേക്ക് തിരിയുകയും അത്തരം സാങ്കേതികവിദ്യകൾക്ക് പിന്തുണ ആവശ്യമായി വന്നേക്കാവുന്ന ഉപയോക്താക്കളുടെയും സോഫ്റ്റ്വെയർ ഡെവലപ്പർമാരുടെയും അഭിപ്രായങ്ങളെ ആശ്രയിച്ചും ഏതാണ് മികച്ചതെന്ന് മനസിലാക്കാൻ ശ്രമിക്കാം - OpenGL അല്ലെങ്കിൽ DirectX -.

എന്താണ് OpenGL, DirectX?

വിവരിച്ച ഈ രണ്ട് ഘടകങ്ങളും ഗ്രാഫിക്സ് എഞ്ചിനുകളാണെന്ന തെറ്റായ ധാരണ സാധാരണ ഉപയോക്താക്കൾക്കിടയിൽ ഉണ്ടെന്ന വസ്തുതയിൽ നിന്ന് നമുക്ക് ആരംഭിക്കാം. ഇവിടെയാണ് ഏത് എഞ്ചിനാണ് മികച്ചത് എന്നതിനെക്കുറിച്ചുള്ള തെറ്റായ ചോദ്യങ്ങൾ ഉയർന്നുവരുന്നത് - OpenGL അല്ലെങ്കിൽ DirectX?

ഈ പ്ലാറ്റ്‌ഫോമുകൾ ഈ എഞ്ചിനുകളുമായി ഭാഗികമായി മാത്രമേ ബന്ധപ്പെട്ടിട്ടുള്ളൂ എന്നതാണ് വസ്തുത, കാരണം അവ പ്രത്യേകമായി സോഫ്റ്റ്വെയർ, ഇത് പ്രോഗ്രാം (ഗെയിം) എഞ്ചിനെ സംവദിക്കാൻ അനുവദിക്കുന്നു ഇൻസ്റ്റാൾ ചെയ്ത ഉപകരണങ്ങൾ(മിക്കപ്പോഴും വീഡിയോയ്‌ക്കൊപ്പം ശബ്ദ കാർഡുകൾ) ഇടനിലക്കാരായി പ്രവർത്തിക്കുന്ന അവരുടെ ഡ്രൈവർമാർ വഴി. വാസ്തവത്തിൽ, OpenGL, DirectX എന്നിവ ഇന്റർഫേസുകളുടെ ഭാഗമാണ് ആപ്ലിക്കേഷൻ പ്രോഗ്രാമിംഗ്കൂടെ ആവശ്യമായ കിറ്റുകൾലൈബ്രറികൾ, ക്ലാസുകൾ, നിർവചനങ്ങൾ, ഘടനകൾ, സ്ഥിരാങ്കങ്ങൾ, ഫംഗ്‌ഷനുകൾ എന്നിവ ഇൻസ്‌റ്റാൾ ചെയ്‌തിരിക്കുന്ന ബാഹ്യ സോഫ്‌റ്റ്‌വെയർ ഉൽപന്നങ്ങളുമായി പ്രവർത്തിക്കുന്നുവെന്ന് ഉറപ്പാക്കാൻ ഉപയോഗിക്കുന്നു ഓപ്പറേറ്റിംഗ് സിസ്റ്റം.

ഈ സാങ്കേതികവിദ്യകൾ എന്തിനുവേണ്ടിയാണ് ഉപയോഗിക്കുന്നത്?

സ്വാഭാവികമായും, ഏത് ഗ്രാഫിക്സാണ് മികച്ചത് എന്നതിനെക്കുറിച്ചുള്ള ചോദ്യങ്ങൾ നിങ്ങൾക്ക് പലപ്പോഴും കാണാൻ കഴിയും - OpenGL അല്ലെങ്കിൽ DirectX? ഈ പ്രസ്താവന ഭാഗികമായി തെറ്റാണ്, കാരണം നമുക്ക് വീഡിയോ കാർഡുകളുടെ ഉറവിടങ്ങൾ ഉപയോഗിക്കുന്നതിനെക്കുറിച്ച് മാത്രമല്ല, ശബ്ദമോ മറ്റേതെങ്കിലും “ഹാർഡ്‌വെയറും” കൂടാതെ വെർച്വൽ ഉപകരണങ്ങൾമൾട്ടിമീഡിയ. എന്നാൽ മിക്കപ്പോഴും നമ്മൾ ശരിക്കും ഗ്രാഫിക്സ് ആക്സിലറേറ്ററുകളെക്കുറിച്ചാണ് സംസാരിക്കുന്നത്. അതേസമയം, വീഡിയോ കാർഡിന്റെ ഇടപെടൽ ഉറപ്പാക്കുന്ന ഒന്നോ അല്ലെങ്കിൽ മറ്റൊരു "പാലത്തിന്" അനുകൂലമായ തിരഞ്ഞെടുപ്പ് നിങ്ങൾ വ്യക്തമായി മനസ്സിലാക്കേണ്ടതുണ്ട്. ഇൻസ്റ്റാൾ ചെയ്ത ഗെയിംഅല്ലെങ്കിൽ ആവശ്യമുള്ള മറ്റേതെങ്കിലും പ്രോഗ്രാം അത്തരം പിന്തുണ എത്രത്തോളം നിർബന്ധമാണ് എന്നതിനെ ആശ്രയിച്ചിരിക്കും.

IN ആധുനിക ഗെയിമുകൾസങ്കീർണ്ണമായ ടെക്സ്ചറുകളും സൂക്ഷ്മമായി വരച്ച ചലനാത്മക ദൃശ്യങ്ങളും ഉള്ളതിനാൽ, അത്തരം പിന്തുണ അത്യന്താപേക്ഷിതമാണ്. എന്നാൽ എല്ലാ ഗ്രാഫിക്സ് ആക്സിലറേറ്ററുകൾക്കും അത്തരം പിന്തുണ ശരിയായി ഉപയോഗിക്കാൻ കഴിയില്ല എന്നതാണ് പ്രശ്നം. ഈ സാഹചര്യത്തിൽ, എല്ലാം ഡ്രൈവർമാരെ ആശ്രയിച്ചിരിക്കുന്നു. കാർഡ് എത്ര ട്രെൻഡി ആണെങ്കിലും, കാലഹരണപ്പെട്ട നിയന്ത്രണ സോഫ്‌റ്റ്‌വെയർ (ഡ്രൈവറുകൾ) ഉപയോഗിച്ച്, നിർമ്മാതാവ് ആദ്യം പ്രഖ്യാപിച്ച എല്ലാ കഴിവുകളും ഇതിന് ഉപയോഗിക്കാൻ കഴിയില്ല. എന്നിരുന്നാലും, മിക്ക ഗെയിമുകളിലും അല്ലെങ്കിൽ മൾട്ടിമീഡിയയിൽ പ്രവർത്തിക്കുന്നതിനുള്ള പ്രോഗ്രാമുകളിലും (ഉദാഹരണത്തിന്, വീഡിയോ പ്രോസസ്സിംഗിനായി), ക്രമീകരണങ്ങളിൽ ഏത് പിന്തുണയാണ് ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതെന്ന് തിരഞ്ഞെടുക്കേണ്ടത് ആവശ്യമാണ്, ഒരു പ്ലാറ്റ്ഫോം മറ്റൊന്നിനെതിരെ ഉയർത്തുക (ഇംഗ്ലീഷ് പതിപ്പിൽ ഇത് സാധാരണയായി ഇങ്ങനെയാണ് കാണപ്പെടുന്നത്. "ഓപ്പൺജിഎൽ വേഴ്സസ് ഡയറക്റ്റ്എക്സ്") .

DirectX ഉം OpenGL ഉം തമ്മിലുള്ള പ്രധാന വ്യത്യാസങ്ങൾ

പ്രധാന വ്യത്യാസങ്ങളെ സംബന്ധിച്ചിടത്തോളം, അതിലേക്ക് പോകാതെ സാങ്കേതിക വശങ്ങൾപ്രവർത്തിക്കുന്ന, മൈക്രോസോഫ്റ്റ് കോർപ്പറേഷന്റെ സവിശേഷമായ വികസനമായ DirectX പ്ലാറ്റ്‌ഫോം, Windows സിസ്റ്റങ്ങളിലും ഭാഗികമായി Xbox-ലും ഉപയോഗിക്കുന്നതിന് മാത്രമായി ഉദ്ദേശിച്ചിട്ടുള്ളതാണ്, കൂടാതെ OpenGL മറ്റ് ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളിൽ ബാധകമായ സ്വതന്ത്രമായി വിതരണം ചെയ്യപ്പെടുന്ന ക്രോസ്-പ്ലാറ്റ്ഫോം സാങ്കേതികവിദ്യയാണ് ( മൊബൈൽ പോലും). ഗ്നു ലൈസൻസ്ഈ API-യുടെ ഘടകങ്ങളിലേക്ക് സംഭാവന നൽകാൻ ആരെയും അനുവദിക്കുന്നു സ്വന്തം മാറ്റങ്ങൾഒപ്പം അതേ വീഡിയോ കാർഡുകളുടെ പ്രകടനം വർദ്ധിപ്പിക്കുന്നതിനായി അതിന്റെ മെച്ചപ്പെടുത്തലുമായി ബന്ധപ്പെട്ട കൂട്ടിച്ചേർക്കലുകളും, പ്ലാറ്റ്‌ഫോമിന്റെ പുതിയ പതിപ്പുകൾ പുറത്തിറങ്ങുന്നതിനനുസരിച്ച് ഡയറക്‌റ്റ് എക്‌സ് മെച്ചപ്പെടുത്തലുകൾ മാത്രമേ പ്രതീക്ഷിക്കാനാകൂ. മാത്രമല്ല, ഏറ്റവും പുതിയ ഡ്രൈവറുകളിൽപ്പോലും, ബ്രിഡ്ജിന്റെ പഴയ പതിപ്പുകളിൽ ഉപയോഗിക്കുമ്പോൾ, ഗ്രാഫിക്സ് ആക്സിലറേറ്ററുകൾ നിർമ്മാതാവ് പ്രഖ്യാപിച്ച പ്രകടനം നൽകുന്നില്ല.

പ്രധാന ഗുണങ്ങളും ദോഷങ്ങളും

ഏതാണ് മികച്ചതെന്ന് പറയുമ്പോൾ - ഓപ്പൺജിഎൽ അല്ലെങ്കിൽ ഡയറക്റ്റ് എക്സ് 11 (12), ആദ്യ പ്ലാറ്റ്ഫോം ഗ്രാഫിക്സിനായി മാത്രം ഉദ്ദേശിച്ചുള്ളതാണെന്നത് ശ്രദ്ധിക്കേണ്ടതാണ്, രണ്ടാമത്തേത് മൾട്ടിമീഡിയയുമായി ബന്ധപ്പെട്ട എല്ലാത്തിനും (ഗ്രാഫിക്സിൽ ഗ്രാഫിക്സിനായി) പൊതുവായി ഉപയോഗിക്കാം. ഈ സാഹചര്യത്തിൽ Direct3D ഘടകം ഉത്തരവാദിയാണ്).

കൂടാതെ, പല വിദഗ്ധരും വളരെ ശ്രദ്ധിക്കുന്നു ഉയർന്ന ബിരുദംഒരു പാലത്തിന് അല്ലെങ്കിൽ മറ്റൊന്നിന് അനുകൂലമായ തിരഞ്ഞെടുപ്പും തരത്തെ ആശ്രയിച്ചിരിക്കും ഗ്രാഫിക്സ് കാർഡ്. പക്ഷേ, ഞങ്ങൾ താരതമ്യത്തെ തുറന്ന മനസ്സോടെ സമീപിക്കുകയാണെങ്കിൽ, പ്ലാറ്റ്‌ഫോം കവറേജിന്റെ കാര്യത്തിൽ OpenGL മികച്ചതായി കാണപ്പെടുന്നുവെന്ന് വിശ്വസിക്കപ്പെടുന്നു, പക്ഷേ പ്ലഗ് & പ്ലേ ക്ലാസിന്റെ ഒരു റെഡിമെയ്ഡ് സോഫ്റ്റ്‌വെയർ ഉൽപ്പന്നം എന്ന നിലയിൽ ഡയറക്‌റ്റ് എക്‌സ് വിജയിക്കുന്നു. എന്നിരുന്നാലും, ടൂൾകിറ്റ് നാം മറക്കരുത് DirectX ഏറ്റവും പുതിയത്പതിപ്പുകൾ ഇതിനകം OpenGL-ൽ ലഭ്യമാണ്, പക്ഷേ ഫീഡ്ബാക്ക് പിന്തുണഇല്ല.

OpenGL അല്ലെങ്കിൽ DirectX: ഗെയിമുകൾക്ക് ഏതാണ് നല്ലത്?

ഗെയിമുകളെ സംബന്ധിച്ചിടത്തോളം, ഇവിടെ പോലും കൃത്യമായ ഉത്തരം നൽകുന്നത് അസാധ്യമാണ്. ഉദാഹരണത്തിന്, പലപ്പോഴും നിങ്ങൾക്ക് ആ വസ്തുതയെക്കുറിച്ച് അഭിപ്രായങ്ങൾ കണ്ടെത്താനാകും ഗ്രാഫിക്സ് ചിപ്പുകൾറേഡിയൻ 9800 ലൈൻ മികച്ച സ്കോറുകൾടെസ്റ്റുകളിൽ അവർ DirectX അടിസ്ഥാനമാക്കി കാണിക്കുന്നു, കൂടാതെ ജിഫോഴ്സ് കാർഡുകൾ 5XXX സീരീസ് - OpenGL ഉപയോഗിക്കുമ്പോൾ. എന്നാൽ DirectX-ന് ഒരു കാര്യം കൂടിയുണ്ട് നിഷേധിക്കാനാവാത്ത നേട്ടം.

ഓപ്പൺജിഎൽ ബ്രിഡ്ജ് യഥാർത്ഥത്തിൽ മറ്റ് പ്ലാറ്റ്‌ഫോമുകൾക്കായി സൃഷ്‌ടിച്ചതിനാൽ, വിൻഡോസിൽ വിവിധ തരത്തിലുള്ള ബഗുകൾ പ്രത്യക്ഷപ്പെടാം, പക്ഷേ താരതമ്യേന പോലും സഹിഷ്ണുതയോടെ ഗെയിമുകൾ ഉപയോഗിക്കാൻ DirectX നിങ്ങളെ അനുവദിക്കുന്നു. കാലഹരണപ്പെട്ട കമ്പ്യൂട്ടറുകൾബ്രേക്ക് ഒന്നും ഇല്ലാതെ ( തിളങ്ങുന്ന ഉദാഹരണംഅതുകൊണ്ടാണ് സാമ്രാജ്യങ്ങളുടെ യുഗം എന്ന ഗെയിം).

അതും മറിച്ചാണ് സംഭവിക്കുന്നത്. ഉദാഹരണത്തിന്, Radeon X1XXX സീരീസ് കാർഡുകളിൽ DOOM 3 എന്ന് ചില ഉപയോക്താക്കൾ ശ്രദ്ധിക്കുന്നു OpenGL ഉപയോഗിക്കുന്നുഅത് "പറക്കുന്നു", ഹാഫ്-ലൈഫ് 2 പലപ്പോഴും "മന്ദഗതിയിലാകുന്നു". എന്നാൽ ഇവിടെ, പ്രത്യക്ഷത്തിൽ, എല്ലാം ഡ്രൈവർമാരെയും ആശ്രയിച്ചിരിക്കുന്നു.

പക്ഷേ, വലിയതോതിൽ, ഗെയിം രണ്ട് സാങ്കേതികവിദ്യകളുടെയും ഉപയോഗത്തെ പിന്തുണയ്ക്കുന്നുവെങ്കിൽ, ഓരോ മോഡും മാറിമാറി ഉപയോഗിക്കുമ്പോൾ വീഡിയോ കാർഡിന്റെ ഫലം എന്തായിരിക്കുമെന്ന് കാണുന്നത് നല്ലതാണ്. മികച്ച പ്രകടനം നേടുന്നതിന്, പ്ലാറ്റ്‌ഫോമുകളും ഗ്രാഫിക്‌സ് ആക്‌സിലറേറ്റർ ഡ്രൈവറുകളും പരമാവധി അപ്‌ഡേറ്റ് ചെയ്യണമെന്ന് പറയാതെ വയ്യ. ഏറ്റവും പുതിയ പതിപ്പുകൾ.

BlueStacks-ന് ഏതാണ് നല്ലത്: DirectX അല്ലെങ്കിൽ OpenGL?

BlueStacks എന്ന് വിളിക്കപ്പെടുന്ന ഏറ്റവും ജനപ്രിയമായ ആൻഡ്രോയിഡ് സിസ്റ്റം എമുലേറ്ററുകളുടെ ഉപയോഗത്തെക്കുറിച്ചുള്ള ചോദ്യങ്ങൾ പലപ്പോഴും നിങ്ങൾക്ക് കാണാവുന്നതാണ്. BlueStacks-ൽ ഏത് പ്ലാറ്റ്‌ഫോമാണ് തിരഞ്ഞെടുക്കേണ്ടത് - OpenGL അല്ലെങ്കിൽ DirectX? അയ്യോ, ഇവിടെയും കൃത്യമായ ഉത്തരം നൽകുന്നത് അസാധ്യമാണ്.

എന്നിരുന്നാലും, ഈ എമുലേറ്റർ വഴി നിങ്ങൾ ഗെയിമുകൾ ഇൻസ്റ്റാൾ ചെയ്യുകയാണെങ്കിൽ, ഓപ്പൺജിഎൽ ഉപയോഗിക്കുന്നതാണ് നല്ലത്, എന്നാൽ ഗെയിം മന്ദഗതിയിലായാൽ, നിങ്ങൾ DirectX-ലേക്ക് മാറേണ്ടിവരും. പക്ഷേ, വീണ്ടും, ഇതെല്ലാം ആശങ്കകളെ മാത്രം ബാധിക്കുന്നു ഗെയിം ഗ്രാഫിക്സ്. കാര്യത്തിൽ പ്രൊഫഷണൽ പ്രോസസ്സിംഗ്വീഡിയോ റെൻഡറിങ്ങിന് ചില ഗുരുതരമായ പരീക്ഷണങ്ങൾ ആവശ്യമായി വരും.

അവസാനമായി, ഈ സാങ്കേതികവിദ്യകളിൽ വൈദഗ്ദ്ധ്യം നേടാൻ തുടങ്ങുകയും തന്റെ ആദ്യ ചുവടുകൾ എടുക്കുകയും ചെയ്യുന്ന ഒരു ഡവലപ്പർക്ക് എന്താണ് നല്ലത് - ഓപ്പൺജിഎൽ അല്ലെങ്കിൽ ഡയറക്റ്റ് എക്സ് - എന്നതിനെക്കുറിച്ച് നമ്മൾ സംസാരിക്കുകയാണെങ്കിൽ, ഈ മേഖലയിലെ മിക്ക വിദഗ്ധരും ആദ്യം തന്നെ പ്രവർത്തന തത്വങ്ങളുമായി പരിചയപ്പെടുന്നതാണ് നല്ലതെന്ന് ശ്രദ്ധിക്കുന്നു. കൂടാതെ DirectX ടൂൾകിറ്റും, ഈ പ്ലാറ്റ്ഫോം ഒരു തുടക്കക്കാരന് ലളിതമായി തോന്നുന്നതിനാൽ, നല്ല SDK കിറ്റുകൾ അതിനായി നിരന്തരം പുറത്തിറക്കിക്കൊണ്ടിരിക്കുന്നു, അഡാപ്റ്റേഷൻ ലളിതമാക്കാൻ മാത്രം രൂപകൽപ്പന ചെയ്‌തിരിക്കുന്നു. സോഫ്റ്റ്വെയർ ഉൽപ്പന്നങ്ങൾഹാർഡ്‌വെയറിലേക്ക്, തുടർന്ന് ഓപ്പൺജിഎൽ പഠനത്തിലേക്ക് നീങ്ങുക.

എന്നിരുന്നാലും, നിങ്ങൾ നിങ്ങൾക്കായി നിശ്ചയിച്ചിട്ടുള്ള അന്തിമ ലക്ഷ്യത്തെ ആശ്രയിച്ചിരിക്കും, ഓരോ പ്രത്യേക സാഹചര്യത്തിലും ഓരോ പ്ലാറ്റ്‌ഫോമിന്റെയും നിർദ്ദിഷ്ട പ്രവർത്തനം (ഗ്രാഫിക്സ് മാത്രം, ശബ്‌ദം മാത്രം അല്ലെങ്കിൽ ഏതെങ്കിലും തരത്തിലുള്ള സംയോജിത പരിഹാരങ്ങൾ മാത്രം) ഉപയോഗിക്കും.

ഹ്രസ്വമായ നിഗമനങ്ങൾ

സംഗ്രഹിച്ചാൽ, ഇതിനകം വ്യക്തമായതുപോലെ, ഒന്നോ അല്ലെങ്കിൽ മറ്റൊരു ഘടകത്തിന് അനുകൂലമായ ഒരു നിഗമനത്തിലെത്തുന്നത് വളരെ ബുദ്ധിമുട്ടാണ്. ഈ പ്ലാറ്റ്‌ഫോമുകൾക്കിടയിൽ നിരന്തരമായ മത്സരമുണ്ട്. ചിലപ്പോൾ ഒരു പുതിയ പതിപ്പ് DirectX അതിന്റെ പാരാമീറ്ററുകളിൽ OpenGL-നേക്കാൾ മുന്നിലാണ്, എന്നാൽ അത് കാലഹരണപ്പെട്ടതായിത്തീരുകയും ചില പുതുമകൾ OpenGL-ൽ അവതരിപ്പിക്കപ്പെടുകയും ചെയ്യുമ്പോൾ, അത് നഷ്ടപ്പെടാൻ തുടങ്ങുന്നു. പൊതുവേ, ഒരു തിരഞ്ഞെടുപ്പ് നടത്തുമ്പോൾ, താരതമ്യത്തിലൂടെ സത്യം അറിയാമെന്ന അറിയപ്പെടുന്ന തത്വത്തിൽ നിന്ന് മാത്രം മുന്നോട്ട് പോകണം. രണ്ടും പരീക്ഷിക്കുക! നിർദ്ദിഷ്‌ട ഫലങ്ങൾ ലഭിച്ചതിനുശേഷം മാത്രമേ ഓരോ നിർദ്ദിഷ്ട കേസിനും നിങ്ങളുടെ തിരഞ്ഞെടുപ്പ് സ്കെയിലിന്റെ ഏത് വശത്തേക്ക് ചായുമെന്ന് വ്യക്തമാകൂ.

പ്രത്യക്ഷത്തിൽ, പല ഉപയോക്താക്കൾക്കും, പ്രത്യേകിച്ചും, ആധുനിക റിസോഴ്‌സ്-ഇന്റൻസീവ് ഗെയിമുകൾ ഇൻസ്റ്റാൾ ചെയ്യാനും കളിക്കാനും ഒരു കമ്പ്യൂട്ടർ ഉപയോഗിക്കാൻ താൽപ്പര്യപ്പെടുന്ന എല്ലാവർക്കും, ഗ്രാഫിക്സ് ക്രമീകരണങ്ങളിൽ ഇമേജ് ഔട്ട്പുട്ട് വേഗത്തിലാക്കാനും ഇമേജ് ഗുണനിലവാരം മെച്ചപ്പെടുത്താനും ഓപ്പൺജിഎൽ അല്ലെങ്കിൽ ഡയറക്‌ട് എക്‌സ് പ്രത്യേക ഉപകരണങ്ങൾ ഉപയോഗിക്കാമെന്ന് അറിയാം. ഒരു കമ്പ്യൂട്ടർ സിസ്റ്റത്തിന്റെ എല്ലാ മറഞ്ഞിരിക്കുന്ന ഉറവിടങ്ങളും ഉപയോഗിക്കാനും പരമാവധി പ്രകടനം നേടാനുമുള്ള മികച്ച മാർഗം ഏതാണ്? ഈ ചോദ്യം തികച്ചും വിവാദപരമാണ്, കൂടാതെ ഏതെങ്കിലും ഒരു പ്ലാറ്റ്‌ഫോമിന് അനുകൂലമായി ഉത്തരം നൽകാൻ സാധാരണയായി കഴിയില്ല, കാരണം എല്ലാം ഉപയോക്താവോ ഡവലപ്പറോ തനിക്കായി സജ്ജമാക്കുന്ന നിർദ്ദിഷ്ട ലക്ഷ്യത്തെയും അതുപോലെ ഓരോ നിർദ്ദിഷ്ട സാഹചര്യത്തെയും ആശ്രയിച്ചിരിക്കുന്നു, അത് ഭാഗികമായിരിക്കാം. ഒരു ഗ്രാഫിക്സ് ആക്‌സിലറേറ്ററിന്റെ രൂപത്തിലുള്ള ഹാർഡ്‌വെയർ, ഡ്രൈവറുകളുടെ രൂപത്തിലുള്ള അതിന്റെ സോഫ്റ്റ്‌വെയർ പിന്തുണ, ചില അധിക വശങ്ങൾ എന്നിവയുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു. ഔദ്യോഗിക വിവര സ്രോതസ്സുകളിലേക്ക് തിരിയുകയും അത്തരം സാങ്കേതികവിദ്യകൾക്ക് പിന്തുണ ആവശ്യമായി വന്നേക്കാവുന്ന ഉപയോക്താക്കളുടെയും സോഫ്റ്റ്വെയർ ഡെവലപ്പർമാരുടെയും അഭിപ്രായങ്ങളെ ആശ്രയിച്ചും ഏതാണ് മികച്ചതെന്ന് മനസിലാക്കാൻ ശ്രമിക്കാം - OpenGL അല്ലെങ്കിൽ DirectX -.

എന്താണ് OpenGL, DirectX?

വിവരിച്ച ഈ രണ്ട് ഘടകങ്ങളും ഗ്രാഫിക്സ് എഞ്ചിനുകളാണെന്ന തെറ്റായ ധാരണ സാധാരണ ഉപയോക്താക്കൾക്കിടയിൽ ഉണ്ടെന്ന വസ്തുതയിൽ നിന്ന് നമുക്ക് ആരംഭിക്കാം. ഇവിടെയാണ് ഏത് എഞ്ചിനാണ് മികച്ചത് എന്നതിനെക്കുറിച്ചുള്ള തെറ്റായ ചോദ്യങ്ങൾ ഉയർന്നുവരുന്നത് - OpenGL അല്ലെങ്കിൽ DirectX?

ഈ പ്ലാറ്റ്‌ഫോമുകൾ ഈ എഞ്ചിനുകളുമായി ഭാഗികമായി മാത്രമേ ബന്ധപ്പെട്ടിട്ടുള്ളൂ എന്നതാണ് വസ്തുത, കാരണം അവ പ്രോഗ്രാമിന്റെ (ഗെയിം) സോഫ്റ്റ്‌വെയർ എഞ്ചിനെ അവരുടെ ഡ്രൈവറുകൾ വഴി ഇൻസ്റ്റാൾ ചെയ്ത ഉപകരണങ്ങളുമായി (മിക്കപ്പോഴും വീഡിയോ, സൗണ്ട് കാർഡുകൾ ഉപയോഗിച്ച്) സംവദിക്കാൻ അനുവദിക്കുന്ന സോഫ്റ്റ്‌വെയർ ആണ്. ഇടനിലക്കാരായി പ്രവർത്തിക്കുക. വാസ്തവത്തിൽ, ഓപ്പൺജിഎൽ, ഡയറക്‌ട് എക്‌സ് എന്നിവ ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിൽ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുള്ള ബാഹ്യ സോഫ്‌റ്റ്‌വെയർ ഉൽപ്പന്നങ്ങളുമായി പ്രവർത്തിക്കുന്നുവെന്ന് ഉറപ്പാക്കാൻ ഉപയോഗിക്കുന്ന ആവശ്യമായ ലൈബ്രറികൾ, ക്ലാസുകൾ, നിർവചനങ്ങൾ, ഘടനകൾ, സ്ഥിരാങ്കങ്ങൾ, ഫംഗ്‌ഷനുകൾ എന്നിവയുള്ള ആപ്ലിക്കേഷൻ പ്രോഗ്രാമിംഗ് ഇന്റർഫേസുകളുടെ ഭാഗമാണ്.

ഈ സാങ്കേതികവിദ്യകൾ എന്തിനുവേണ്ടിയാണ് ഉപയോഗിക്കുന്നത്?

സ്വാഭാവികമായും, ഏത് ഗ്രാഫിക്സാണ് മികച്ചത് എന്നതിനെക്കുറിച്ചുള്ള ചോദ്യങ്ങൾ നിങ്ങൾക്ക് പലപ്പോഴും കാണാൻ കഴിയും - OpenGL അല്ലെങ്കിൽ DirectX? ഈ ഫോർമുലേഷനും ഭാഗികമായി തെറ്റാണ്, കാരണം നമുക്ക് വീഡിയോ കാർഡുകളുടെ ഉറവിടങ്ങൾ മാത്രമല്ല, ശബ്ദമോ മറ്റേതെങ്കിലും "ഹാർഡ്വെയർ", വെർച്വൽ മൾട്ടിമീഡിയ ഉപകരണങ്ങളോ ഉപയോഗിക്കുന്നതിനെക്കുറിച്ച് സംസാരിക്കാം. എന്നാൽ മിക്കപ്പോഴും നമ്മൾ ശരിക്കും ഗ്രാഫിക്സ് ആക്സിലറേറ്ററുകളെക്കുറിച്ചാണ് സംസാരിക്കുന്നത്. അതേ സമയം, ഇൻസ്റ്റാൾ ചെയ്ത ഗെയിമുമായോ മറ്റേതെങ്കിലും പ്രോഗ്രാമുമായോ വീഡിയോ കാർഡിന്റെ ഇടപെടൽ ഉറപ്പാക്കുന്ന ഒന്നോ അതിലധികമോ “പാലത്തിന്” അനുകൂലമായ തിരഞ്ഞെടുപ്പ്, ആവശ്യമെങ്കിൽ അത്തരം പിന്തുണ എത്രത്തോളം നിർബന്ധമാണ് എന്നതിനെ ആശ്രയിച്ചിരിക്കും എന്ന് നിങ്ങൾ വ്യക്തമായി മനസ്സിലാക്കേണ്ടതുണ്ട്. ആണ്.

സങ്കീർണ്ണമായ ടെക്സ്ചറുകളും സൂക്ഷ്മമായി വരച്ച ചലനാത്മക രംഗങ്ങളുമുള്ള ആധുനിക ഗെയിമുകളിൽ, അത്തരം പിന്തുണ അത്യന്താപേക്ഷിതമാണ്. എന്നാൽ എല്ലാ ഗ്രാഫിക്സ് ആക്സിലറേറ്ററുകൾക്കും അത്തരം പിന്തുണ ശരിയായി ഉപയോഗിക്കാൻ കഴിയില്ല എന്നതാണ് പ്രശ്നം. ഈ സാഹചര്യത്തിൽ, എല്ലാം ഡ്രൈവർമാരെ ആശ്രയിച്ചിരിക്കുന്നു. കാർഡ് എത്ര ട്രെൻഡി ആണെങ്കിലും, കാലഹരണപ്പെട്ട നിയന്ത്രണ സോഫ്‌റ്റ്‌വെയർ (ഡ്രൈവറുകൾ) ഉപയോഗിച്ച്, നിർമ്മാതാവ് ആദ്യം പ്രഖ്യാപിച്ച എല്ലാ കഴിവുകളും ഇതിന് ഉപയോഗിക്കാൻ കഴിയില്ല. എന്നിരുന്നാലും, മിക്ക ഗെയിമുകളിലും അല്ലെങ്കിൽ മൾട്ടിമീഡിയയിൽ പ്രവർത്തിക്കുന്നതിനുള്ള പ്രോഗ്രാമുകളിലും (ഉദാഹരണത്തിന്, വീഡിയോ പ്രോസസ്സിംഗിനായി), ക്രമീകരണങ്ങളിൽ ഏത് പിന്തുണയാണ് ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതെന്ന് തിരഞ്ഞെടുക്കേണ്ടത് ആവശ്യമാണ്, ഒരു പ്ലാറ്റ്ഫോം മറ്റൊന്നിനെതിരെ ഉയർത്തുക (ഇംഗ്ലീഷ് പതിപ്പിൽ ഇത് സാധാരണയായി ഇങ്ങനെയാണ് കാണപ്പെടുന്നത്. "ഓപ്പൺജിഎൽ വേഴ്സസ് ഡയറക്റ്റ്എക്സ്") .

DirectX ഉം OpenGL ഉം തമ്മിലുള്ള പ്രധാന വ്യത്യാസങ്ങൾ

പ്രധാന വ്യത്യാസങ്ങളെ സംബന്ധിച്ചിടത്തോളം, പ്രവർത്തനത്തിന്റെ സാങ്കേതിക വശങ്ങളിലേക്ക് കടക്കാതെ, മൈക്രോസോഫ്റ്റ് കോർപ്പറേഷന്റെ എക്സ്ക്ലൂസീവ് ഡെവലപ്‌മെന്റായ ഡയറക്‌റ്റ് എക്‌സ് പ്ലാറ്റ്‌ഫോം, വിൻഡോസ് സിസ്റ്റങ്ങളിലും ഭാഗികമായി എക്‌സ്‌ബോക്‌സിലും ഉപയോഗിക്കുന്നതിന് മാത്രമായി ഉദ്ദേശിച്ചിട്ടുള്ളതാണെന്നും ഓപ്പൺജിഎൽ ഒരു സ്വതന്ത്രമായി വിതരണം ചെയ്യപ്പെടുന്ന ക്രോസ്-പ്ലാറ്റ്ഫോം സാങ്കേതികവിദ്യ മറ്റ് OS-ൽ (മൊബൈലിൽ പോലും) ബാധകമാണ്. ഇതിന്റെ ഘടകങ്ങളിലേക്ക് സംഭാവന നൽകാൻ ഗ്നു ലൈസൻസ് ആരെയും അനുവദിക്കുന്നു API-കൾ സ്വന്തമായുള്ളത്ഒരേ വീഡിയോ കാർഡുകളുടെ പ്രകടനം വർദ്ധിപ്പിക്കുന്നതിനായി അതിന്റെ മെച്ചപ്പെടുത്തലുമായി ബന്ധപ്പെട്ട മാറ്റങ്ങളും കൂട്ടിച്ചേർക്കലുകളും, പ്ലാറ്റ്‌ഫോമിന്റെ പുതിയ പതിപ്പുകൾ പുറത്തിറങ്ങുമ്പോൾ മാത്രമേ ഡയറക്‌റ്റ് എക്‌സ് മെച്ചപ്പെടുത്തലുകൾ പ്രതീക്ഷിക്കാനാകൂ. മാത്രമല്ല, ഏറ്റവും പുതിയ ഡ്രൈവറുകളിൽപ്പോലും, ബ്രിഡ്ജിന്റെ പഴയ പതിപ്പുകളിൽ ഉപയോഗിക്കുമ്പോൾ, ഗ്രാഫിക്സ് ആക്സിലറേറ്ററുകൾ നിർമ്മാതാവ് പ്രഖ്യാപിച്ച പ്രകടനം നൽകുന്നില്ല.

പ്രധാന ഗുണങ്ങളും ദോഷങ്ങളും

ഏതാണ് മികച്ചതെന്ന് പറയുമ്പോൾ - ഓപ്പൺജിഎൽ അല്ലെങ്കിൽ ഡയറക്റ്റ് എക്സ് 11 (12), ആദ്യ പ്ലാറ്റ്ഫോം ഗ്രാഫിക്സിനായി മാത്രം ഉദ്ദേശിച്ചുള്ളതാണെന്നത് ശ്രദ്ധിക്കേണ്ടതാണ്, രണ്ടാമത്തേത് മൾട്ടിമീഡിയയുമായി ബന്ധപ്പെട്ട എല്ലാത്തിനും പൊതുവായി ഉപയോഗിക്കാം (ഈ സാഹചര്യത്തിൽ, ഡയറക്റ്റ് 3 ഡി ഘടകം ഗ്രാഫിക്സിന്റെ ഉത്തരവാദിത്തം) .

കൂടാതെ, ഒരു പാലത്തിനോ മറ്റെന്തെങ്കിലുമോ അനുകൂലമായ തിരഞ്ഞെടുപ്പ് വളരെ ഉയർന്ന അളവിൽ ഗ്രാഫിക്സ് കാർഡിന്റെ തരത്തെ ആശ്രയിച്ചിരിക്കുമെന്ന് പല വിദഗ്ധരും ശ്രദ്ധിക്കുന്നു. പക്ഷേ, ഞങ്ങൾ താരതമ്യത്തെ തുറന്ന മനസ്സോടെ സമീപിക്കുകയാണെങ്കിൽ, പ്ലാറ്റ്‌ഫോം കവറേജിന്റെ കാര്യത്തിൽ OpenGL മികച്ചതായി കാണപ്പെടുന്നുവെന്ന് വിശ്വസിക്കപ്പെടുന്നു, പക്ഷേ പ്ലഗ് & പ്ലേ ക്ലാസിന്റെ ഒരു റെഡിമെയ്ഡ് സോഫ്റ്റ്‌വെയർ ഉൽപ്പന്നം എന്ന നിലയിൽ ഡയറക്‌റ്റ് എക്‌സ് വിജയിക്കുന്നു. എന്നിരുന്നാലും, DirectX ടൂൾകിറ്റിന്റെ ഏറ്റവും പുതിയ പതിപ്പുകൾ ഇതിനകം തന്നെ OpenGL-ൽ ലഭ്യമാണെന്ന കാര്യം നാം മറക്കരുത്, പക്ഷേ റിവേഴ്സ് പിന്തുണയില്ല.

OpenGL അല്ലെങ്കിൽ DirectX: ഗെയിമുകൾക്ക് ഏതാണ് നല്ലത്?

ഗെയിമുകളെ സംബന്ധിച്ചിടത്തോളം, ഇവിടെ പോലും കൃത്യമായ ഉത്തരം നൽകുന്നത് അസാധ്യമാണ്. ഉദാഹരണത്തിന്, DirectX അടിസ്ഥാനമാക്കിയുള്ള ടെസ്റ്റുകളിൽ Radeon 9800 ലൈനിന്റെ ഗ്രാഫിക്സ് ചിപ്പുകൾ മികച്ച ഫലങ്ങൾ കാണിക്കുന്നു എന്ന വസ്തുതയെക്കുറിച്ചുള്ള അഭിപ്രായങ്ങൾ നിങ്ങൾക്ക് പലപ്പോഴും കാണാൻ കഴിയും, കൂടാതെ OpenGL ഉപയോഗിക്കുമ്പോൾ GeForce 5XXX സീരീസ് കാർഡുകൾ മികച്ച ഫലങ്ങൾ കാണിക്കുന്നു. എന്നാൽ DirectX ന് നിഷേധിക്കാനാവാത്ത മറ്റൊരു നേട്ടമുണ്ട്.

ഓപ്പൺജിഎൽ ബ്രിഡ്ജ് യഥാർത്ഥത്തിൽ മറ്റ് പ്ലാറ്റ്‌ഫോമുകൾക്കായി സൃഷ്‌ടിച്ചതിനാൽ, വിൻഡോസിൽ വിവിധ തരത്തിലുള്ള ബഗുകൾ പ്രത്യക്ഷപ്പെടാം, പക്ഷേ താരതമ്യേന കാലഹരണപ്പെട്ട കമ്പ്യൂട്ടറുകളിൽ പോലും മാന്ദ്യങ്ങളില്ലാതെ ഗെയിമുകൾ നന്നായി ഉപയോഗിക്കാൻ ഡയറക്‌ട് എക്‌സ് നിങ്ങളെ അനുവദിക്കുന്നു (ഇതിന്റെ ശ്രദ്ധേയമായ ഉദാഹരണം ഗെയിം ഏജ് ഓഫ് ആണ്. സാമ്രാജ്യങ്ങൾ).

അതും മറിച്ചാണ് സംഭവിക്കുന്നത്. ഉദാഹരണത്തിന്, ഓപ്പൺജിഎൽ ഉപയോഗിക്കുന്ന Radeon X1XXX സീരീസ് കാർഡുകളിലെ DOOM 3 ലളിതമായി "പറക്കുന്നു", ഹാഫ്-ലൈഫ് 2 പലപ്പോഴും "മന്ദഗതിയിലാകുന്നു" എന്ന് ചില ഉപയോക്താക്കൾ ശ്രദ്ധിക്കുന്നു. എന്നാൽ ഇവിടെ, പ്രത്യക്ഷത്തിൽ, എല്ലാം ഡ്രൈവർമാരെയും ആശ്രയിച്ചിരിക്കുന്നു.

പക്ഷേ, വലിയതോതിൽ, ഗെയിം രണ്ട് സാങ്കേതികവിദ്യകളുടെയും ഉപയോഗത്തെ പിന്തുണയ്ക്കുന്നുവെങ്കിൽ, ഓരോ മോഡും മാറിമാറി ഉപയോഗിക്കുമ്പോൾ വീഡിയോ കാർഡിന്റെ ഫലം എന്തായിരിക്കുമെന്ന് കാണുന്നത് നല്ലതാണ്. മികച്ച പ്രകടനം നേടുന്നതിന്, പ്ലാറ്റ്‌ഫോമുകളും ഗ്രാഫിക്‌സ് ആക്‌സിലറേറ്റർ ഡ്രൈവറുകളും ഏറ്റവും പുതിയ പതിപ്പുകളിലേക്ക് അപ്‌ഡേറ്റ് ചെയ്യണമെന്ന് പറയാതെ വയ്യ.

BlueStacks-ന് ഏതാണ് നല്ലത്: DirectX അല്ലെങ്കിൽ OpenGL?

BlueStacks എന്ന് വിളിക്കപ്പെടുന്ന ഏറ്റവും ജനപ്രിയമായ ആൻഡ്രോയിഡ് സിസ്റ്റം എമുലേറ്ററുകളുടെ ഉപയോഗത്തെക്കുറിച്ചുള്ള ചോദ്യങ്ങൾ പലപ്പോഴും നിങ്ങൾക്ക് കാണാവുന്നതാണ്. BlueStacks-ൽ ഏത് പ്ലാറ്റ്‌ഫോമാണ് തിരഞ്ഞെടുക്കേണ്ടത് - OpenGL അല്ലെങ്കിൽ DirectX? അയ്യോ, ഇവിടെയും കൃത്യമായ ഉത്തരം നൽകുന്നത് അസാധ്യമാണ്.

എന്നിരുന്നാലും, ഈ എമുലേറ്റർ വഴി നിങ്ങൾ ഗെയിമുകൾ ഇൻസ്റ്റാൾ ചെയ്യുകയാണെങ്കിൽ, ഓപ്പൺജിഎൽ ഉപയോഗിക്കുന്നതാണ് നല്ലത്, എന്നാൽ ഗെയിം മന്ദഗതിയിലായാൽ, നിങ്ങൾ DirectX-ലേക്ക് മാറേണ്ടിവരും. പക്ഷേ, വീണ്ടും, ഇതെല്ലാം ഗെയിം ഗ്രാഫിക്സിനെ മാത്രം ബാധിക്കുന്നു. പ്രൊഫഷണൽ വീഡിയോ പ്രോസസ്സിംഗിന്റെയും റെൻഡറിംഗിന്റെയും കാര്യത്തിൽ, നിങ്ങൾ വളരെ ഗൗരവമായി പരീക്ഷിക്കേണ്ടിവരും.

അവസാനമായി, ഈ സാങ്കേതികവിദ്യകളിൽ വൈദഗ്ദ്ധ്യം നേടാൻ തുടങ്ങുകയും തന്റെ ആദ്യ ചുവടുകൾ എടുക്കുകയും ചെയ്യുന്ന ഒരു ഡവലപ്പർക്ക് എന്താണ് നല്ലത് - ഓപ്പൺജിഎൽ അല്ലെങ്കിൽ ഡയറക്റ്റ് എക്സ് - എന്നതിനെക്കുറിച്ച് നമ്മൾ സംസാരിക്കുകയാണെങ്കിൽ, ഈ മേഖലയിലെ മിക്ക വിദഗ്ധരും ആദ്യം തന്നെ പ്രവർത്തന തത്വങ്ങളുമായി പരിചയപ്പെടുന്നതാണ് നല്ലതെന്ന് ശ്രദ്ധിക്കുന്നു. കൂടാതെ DirectX-ന്റെ ടൂൾകിറ്റ്, ഈ പ്ലാറ്റ്ഫോം ഒരു തുടക്കക്കാരന് ലളിതമായി തോന്നുന്നതിനാൽ, സോഫ്റ്റ്‌വെയർ ഉൽപ്പന്നങ്ങളുടെ ഹാർഡ്‌വെയറിലേക്ക് പൊരുത്തപ്പെടുത്തുന്നത് ലളിതമാക്കാൻ പ്രത്യേകം രൂപകൽപ്പന ചെയ്ത നല്ല SDK കിറ്റുകൾ അതിനായി നിരന്തരം പുറത്തിറങ്ങുന്നു, അതിനുശേഷം മാത്രമേ OpenGL പഠനത്തിലേക്ക് നീങ്ങൂ.

എന്നിരുന്നാലും, നിങ്ങൾ നിങ്ങൾക്കായി നിശ്ചയിച്ചിട്ടുള്ള അന്തിമ ലക്ഷ്യത്തെ ആശ്രയിച്ചിരിക്കും, ഓരോ പ്രത്യേക സാഹചര്യത്തിലും ഓരോ പ്ലാറ്റ്‌ഫോമിന്റെയും നിർദ്ദിഷ്ട പ്രവർത്തനം (ഗ്രാഫിക്സ് മാത്രം, ശബ്‌ദം മാത്രം അല്ലെങ്കിൽ ഏതെങ്കിലും തരത്തിലുള്ള സംയോജിത പരിഹാരങ്ങൾ മാത്രം) ഉപയോഗിക്കും.

ഹ്രസ്വമായ നിഗമനങ്ങൾ

സംഗ്രഹിച്ചാൽ, ഇതിനകം വ്യക്തമായതുപോലെ, ഒന്നോ അല്ലെങ്കിൽ മറ്റൊരു ഘടകത്തിന് അനുകൂലമായ ഒരു നിഗമനത്തിലെത്തുന്നത് വളരെ ബുദ്ധിമുട്ടാണ്. ഈ പ്ലാറ്റ്‌ഫോമുകൾക്കിടയിൽ നിരന്തരമായ മത്സരമുണ്ട്. ചിലപ്പോൾ പുതിയത് DirectX പതിപ്പ്അതിന്റെ പാരാമീറ്ററുകളുടെ കാര്യത്തിൽ, ഇത് ഓപ്പൺജിഎലിനേക്കാൾ മുന്നിലാണ്, എന്നാൽ ഇത് കാലഹരണപ്പെട്ടതായിത്തീരുമ്പോൾ, അതുപോലെ തന്നെ ചില പുതുമകൾ OpenGL-ൽ അവതരിപ്പിക്കുമ്പോൾ, അത് നഷ്ടപ്പെടാൻ തുടങ്ങുന്നു. പൊതുവേ, ഒരു തിരഞ്ഞെടുപ്പ് നടത്തുമ്പോൾ, താരതമ്യത്തിലൂടെ സത്യം അറിയാമെന്ന അറിയപ്പെടുന്ന തത്വത്തിൽ നിന്ന് മാത്രം മുന്നോട്ട് പോകണം. രണ്ടും പരീക്ഷിക്കുക! നിർദ്ദിഷ്‌ട ഫലങ്ങൾ ലഭിച്ചതിനുശേഷം മാത്രമേ ഓരോ നിർദ്ദിഷ്ട കേസിനും നിങ്ങളുടെ തിരഞ്ഞെടുപ്പ് സ്കെയിലിന്റെ ഏത് വശത്തേക്ക് ചായുമെന്ന് വ്യക്തമാകൂ.

ഈ രണ്ട് എപിഐകളെക്കുറിച്ച് പലപ്പോഴും പലതരം തെറ്റിദ്ധാരണകൾ ഉണ്ട്.

ഡെവലപ്പർമാരും അന്തിമ ഉപയോക്താക്കളും അറിഞ്ഞിരിക്കേണ്ട അടിസ്ഥാന വസ്‌തുതകൾ ഞാൻ ഈ ലേഖനത്തിൽ രൂപപ്പെടുത്താൻ ശ്രമിച്ചു.

വിഷയം വളരെ ഹോളിവർ ആയതിനാൽ, ടോൺ കഴിയുന്നത്ര നിഷ്പക്ഷമായി നിലനിർത്താൻ ഞാൻ ശ്രമിച്ചു.

പക്ഷിയുടെ കാഴ്ച

രണ്ട് API-കളും ഫംഗ്‌ഷനുകളിലേക്ക് ആക്‌സസ് നൽകുന്നു ഹാർഡ്‌വെയർ ത്വരണം 3D ഗ്രാഫിക്സ്.

സാധാരണ തെറ്റിദ്ധാരണകൾ

OpenGL Direct3D-യെക്കാൾ പിന്നിലാണ്, പൊതുവേ, സ്പെസിഫിക്കേഷനിലെ അത്തരം മന്ദഗതിയിലുള്ള മാറ്റങ്ങൾ വിലയിരുത്തുമ്പോൾ, ഒരുപക്ഷേ ഇതിനകം പൂർണ്ണമായും മരിച്ചുപോയിരിക്കാം.

യഥാർത്ഥത്തിൽ, ഈ തെറ്റിദ്ധാരണയുടെ കാരണം വിപുലീകരണങ്ങളെക്കുറിച്ചുള്ള അജ്ഞതയാണ്. പൊതുവായി പറഞ്ഞാൽ, OpenGL-ന് പലപ്പോഴും കഴിയും മുന്നോട്ട്(!) പുതുമയുടെ കാര്യത്തിൽ Direct3D, കാരണം... ഒരു നിർമ്മാതാവിന് ആർക്കും കാത്തുനിൽക്കാതെ OpenGL-ലേക്ക് ഒരു വിപുലീകരണം ചേർക്കാൻ കഴിയും, അതേസമയം Direct3D-ലേക്കുള്ള മാറ്റങ്ങൾ Microsoft-ന് മാത്രമേ ചെയ്യാൻ കഴിയൂ.

OpenGL പ്രൊഫഷണൽ ഗ്രാഫിക്സ് പ്രോഗ്രാമുകൾക്കുള്ളതാണ്, കൂടാതെ Direct3D ഗെയിമുകൾക്കുള്ളതാണ്.

ഈ തെറ്റിദ്ധാരണയ്ക്ക് ചരിത്രപരമായ കാരണമുണ്ട്. ഓപ്പൺജിഎൽ യഥാർത്ഥത്തിൽ രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത് ഒരു 3D ഗ്രാഫിക്സ് ലൈബ്രറിയായിട്ടാണ്, എന്നാൽ ഹാർഡ്‌വെയർ ത്വരിതപ്പെടുത്താൻ പാടില്ല. ഗെയിമുകൾക്ക് ആവശ്യമില്ലാത്ത സ്റ്റീരിയോ ഇമേജുകൾ റെൻഡറിംഗ് പോലുള്ള ചില ഫീച്ചറുകളുടെ സാന്നിധ്യവും ഇത് വിശദീകരിക്കുന്നു. Direct3D വളരെ പിന്നീട് വികസിപ്പിച്ചെടുത്തു, ഉടൻ തന്നെ GPU ത്വരണം മനസ്സിൽ. നിരവധി പാക്കേജുകൾ പ്രത്യക്ഷപ്പെടുന്ന സമയത്ത്, Direct3D ഗ്രാഫിക്സുള്ള പ്രൊഫഷണൽ വർക്ക് നിലവിലില്ല.

മൈക്രോസോഫ്റ്റ് ഷിപ്പ് ചെയ്യുന്നു വിൻഡോസ് ഡ്രൈവറുകൾ OpenGL പിന്തുണ ഇല്ലാതെ. OpenGL ത്വരിതപ്പെടുത്താതെ റെൻഡർ ചെയ്യും, അല്ലെങ്കിൽ DirectX വഴി അനുകരിക്കും. അതിനാൽ, നിങ്ങൾക്ക് വിൻഡോസിന് കീഴിൽ OpenGL പിന്തുണ ആവശ്യമുണ്ടെങ്കിൽ, നിങ്ങൾ നിർമ്മാതാവിന്റെ വെബ്സൈറ്റിൽ നിന്ന് ഡ്രൈവർ ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്. ഓപ്പൺജിഎൽ നിരസിക്കാനുള്ള കാരണങ്ങൾ മിക്കവാറും വീണ്ടും രാഷ്ട്രീയമാണ്.

അപ്പോൾ എന്ത് ചെയ്യണം, എങ്ങനെ ജീവിക്കണം?

ശ്രദ്ധിക്കുക: ഈ ഭാഗം വളരെ ആത്മനിഷ്ഠമാണ്.

നിങ്ങളൊരു ഡെവലപ്പർ ആണെങ്കിൽ ഏത് API ഉപയോഗിക്കണമെന്ന് തീരുമാനിക്കുകയാണെങ്കിൽ, ഇനിപ്പറയുന്നവ പരിഗണിക്കുക:
OpenGL-ന് - വലിയ ക്രോസ്-പ്ലാറ്റ്ഫോം, പ്രത്യേകിച്ചും, Windows XP-യിലെ എല്ലാ പുതിയ ഫംഗ്ഷനുകളുടെയും ലഭ്യത, ഇവിടെ Direct3D 10/11 നിലവിലില്ല, ഒരിക്കലും ഉണ്ടാകില്ല.
OpenGL-നെതിരെ - Windows-ലെ ഡ്രൈവറുകൾക്ക് ബോക്‌സിന് പുറത്ത് OpenGL പിന്തുണ ഇല്ല, അതിനാൽ നിങ്ങൾ അവ നിർമ്മാതാവിന്റെ വെബ്‌സൈറ്റിൽ നിന്ന് ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്.

നിങ്ങൾ 3D ആപ്ലിക്കേഷനുകൾ വികസിപ്പിക്കുന്നതിൽ പുതിയ ആളാണെങ്കിൽ, ഈ മേഖലയിൽ പ്രാവീണ്യം നേടാൻ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, ഇത് ചെയ്യാൻ ഞാൻ ശുപാർശചെയ്യുന്നു: ആദ്യം Direct3D മനസ്സിലാക്കുക (ഇതിന്റെ കാരണം ലളിതമാണ് - Microsoft വളരെ ഉയർന്ന നിലവാരമുള്ള SDK നൽകുന്നു), തുടർന്ന് OpenGL (ഇത്) മനസ്സിലാക്കുക Direct3D ന് ശേഷം വളരെ എളുപ്പമായിരിക്കും). നിർഭാഗ്യവശാൽ, OpenGL-ന് SDK പോലെയുള്ള ഒന്നുമില്ല. അതിനാൽ, ആദ്യം മുതൽ മാസ്റ്റർ ചെയ്യുന്നത് കൂടുതൽ ബുദ്ധിമുട്ടായിരിക്കും.

അത്രയേയുള്ളൂ. നിങ്ങളുടെ വികസനത്തിൽ ഭാഗ്യം!

നിങ്ങൾ ചോദിക്കുന്നു: അവർ ആരാണ്? യഥാർത്ഥ OpenGL കൊലയാളിയായി ഞാൻ കരുതുന്ന ഒരു ചത്ത കമ്പനിയാണ് അവർ. തീർച്ചയായും, ഡി3ഡിയെ കീറിമുറിക്കേണ്ടിയിരുന്നപ്പോൾ കമ്മിറ്റിയുടെ മൊത്തത്തിലുള്ള കഴിവുകേട് OpenGL-നെ അപകടത്തിലാക്കി. പക്ഷേ, എന്റെ അഭിപ്രായത്തിൽ, 3D ലാബ്സ് ഒരു പക്ഷേ ഒരേയൊരു കാരണം നിലവിലെ സ്ഥിതിവിപണിയിൽ OpenGL. ഇതിനായി അവർ എന്താണ് ചെയ്തത്?

അവർ OpenGL-നായി ഒരു ഷേഡർ ഭാഷ വികസിപ്പിച്ചെടുത്തു.

3D ലാബ്സ് ഒരു നശിച്ചുകൊണ്ടിരിക്കുന്ന കമ്പനിയായിരുന്നു. എൻ‌വിഡിയയിൽ നിന്നുള്ള സമ്മർദ്ദം വർദ്ധിപ്പിച്ച് അവരുടെ വിലയേറിയ ജിപിയു വർക്ക്‌സ്റ്റേഷൻ വിപണിയിൽ നിന്ന് പുറത്താക്കപ്പെട്ടു. എൻവിഡിയയിൽ നിന്ന് വ്യത്യസ്തമായി, 3D ലാബുകൾക്ക് ഉപഭോക്തൃ വിപണിയിൽ സാന്നിധ്യമില്ലായിരുന്നു; എൻവിഡിയയുടെ വിജയം 3D ലാബുകളുടെ മരണത്തെ അർത്ഥമാക്കും.

അതാണ് ഒടുവിൽ സംഭവിച്ചത്.

തങ്ങളുടെ ഉൽപ്പന്നങ്ങൾ ആവശ്യമില്ലാത്ത ഒരു ലോകത്ത് പൊങ്ങിക്കിടക്കാനുള്ള ശ്രമത്തിൽ, 3D ലാബുകൾ ഗെയിം ഡെവലപ്പർ കോൺഫറൻസിൽ അവർ "ഓപ്പൺജിഎൽ 2.0" എന്ന് വിളിച്ചതിന്റെ അവതരണത്തോടെ കാണിച്ചു. ആദ്യം മുതൽ മാറ്റിയെഴുതിയ OpenGL API ആയിരുന്നു അത്. ഇത് അർത്ഥവത്താണ്, കാരണം ആ ദിവസങ്ങളിൽ OpenGL APIഅതിൽ നിറയെ ചപ്പുചവറുകളായിരുന്നു (എന്നിരുന്നാലും, അത് ഇന്നും അവിടെ അവശേഷിക്കുന്നു). ടെക്സ്ചറുകളുടെ ലോഡിംഗും ബൈൻഡിംഗും എത്രമാത്രം നിഗൂഢമാണെന്ന് നോക്കൂ.

അവരുടെ നിർദ്ദേശത്തിന്റെ ഒരു ഭാഗം ഷേഡർ ഭാഷയായിരുന്നു. അതെ, അത് തന്നെ. എന്നിരുന്നാലും, നിലവിലുള്ള ക്രോസ്-പ്ലാറ്റ്ഫോം വിപുലീകരണങ്ങളിൽ നിന്ന് വ്യത്യസ്തമായി, അവയുടെ ഷേഡർ ഭാഷ "ഉയർന്ന നില" ആയിരുന്നു (സി ഉയർന്ന തലംഷേഡർ ഭാഷയ്ക്ക്).

അതേ സമയം, മൈക്രോസോഫ്റ്റ് സ്വന്തം ഷേഡർ ഭാഷയിൽ പ്രവർത്തിക്കുകയായിരുന്നു. അവരുടെ എല്ലാ കൂട്ടായ ഭാവനയും ഉപയോഗിച്ച് അവർ അതിനെ വിളിച്ചു... ഹൈ ലെവൽ ഷേഡർ ലാംഗ്വേജ് (HLSL). എന്നാൽ ഭാഷയോടുള്ള അവരുടെ സമീപനം അടിസ്ഥാനപരമായി വ്യത്യസ്തമായിരുന്നു.

3D ലാബ്സ് ഭാഷയുടെ ഏറ്റവും വലിയ പ്രശ്നം അത് എംബെഡബിൾ ആയിരുന്നു എന്നതാണ്. മൈക്രോസോഫ്റ്റ് അതിന്റെ ഭാഷ പൂർണ്ണമായും സ്വതന്ത്രമായി നിർവചിച്ചു. SM 2.0 (അല്ലെങ്കിൽ ഉയർന്നത്) ഷേഡറുകൾക്കായി അസംബ്ലി കോഡ് ജനറേറ്റ് ചെയ്യുന്ന ഒരു കംപൈലർ അവർ പുറത്തിറക്കി, അത് D3D-യിലേക്ക് നൽകാം. D3D v9-ന്റെ സമയത്ത്, HLSL ഒരിക്കലും D3Dയെ നേരിട്ട് സ്പർശിച്ചിട്ടില്ല. അത് നല്ലതും എന്നാൽ അനാവശ്യവുമായ അമൂർത്തീകരണമായിരുന്നു. കംപൈലറിന്റെ എക്‌സ്‌ഹോസ്റ്റ് എടുത്ത് പരമാവധി പ്രകടനത്തിനായി അത് ട്വീക്ക് ചെയ്യാനുള്ള അവസരം ഡവലപ്പർക്ക് എല്ലായ്പ്പോഴും ലഭിച്ചിട്ടുണ്ട്.

3D ലാബുകളിൽ നിന്നുള്ള ഭാഷയിൽ ഒന്നുമില്ലഇത് അങ്ങനെയായിരുന്നില്ല. നിങ്ങൾ ഡ്രൈവർക്ക് ഒരു സി പോലെയുള്ള ഭാഷ നൽകുന്നു, അത് ഒരു ഷേഡർ സൃഷ്ടിക്കുന്നു. അത്രയേയുള്ളൂ. അസംബ്ലി ഷേഡർ ഇല്ല, മറ്റെന്തെങ്കിലും ഭക്ഷണം നൽകാൻ കഴിയില്ല. ഷേഡറിനെ പ്രതിനിധീകരിക്കുന്ന OpenGL ഒബ്‌ജക്റ്റ് മാത്രം.

ഓപ്പൺജിഎൽ ഉപയോക്താക്കൾക്ക്, അസംബ്ലി പോലുള്ള ഭാഷകൾ എങ്ങനെ കംപൈൽ ചെയ്യാമെന്ന് പഠിക്കുന്ന ഓപ്പൺജിഎൽ ഡവലപ്പർമാരുടെ ഇഷ്ടാനിഷ്ടങ്ങൾക്ക് അവർ വിധേയരാണെന്നാണ് ഇതിനർത്ഥം. നവജാതശിശു ഷേഡർ ഭാഷയായ OpenGL (GLSL) കംപൈലറുകളിൽ ബഗുകൾ വ്യാപകമായിരുന്നു. ഷേഡർ ശരിയായി കംപൈൽ ചെയ്യാൻ നിങ്ങൾക്ക് കഴിഞ്ഞെങ്കിൽ എന്താണ് മോശം വിവിധ പ്ലാറ്റ്ഫോമുകൾ(അത് തന്നെ ഒരു വലിയ നേട്ടമായിരുന്നു), അവൻ ഇപ്പോഴും വിധേയനായിരുന്നു ഒപ്റ്റിമൈസറുകൾആ സമയങ്ങൾ അവർക്ക് സാധ്യമായത്രയും അനുയോജ്യമല്ലായിരുന്നു.

ഇതൊരു വലിയ കാര്യമായിരുന്നു, എന്നാൽ GLSL ന്റെ ഒരേയൊരു പോരായ്മയല്ല. ബഹുദൂരംമാത്രമല്ല.

D3D-യിലും, പഴയ ഓപ്പൺജിഎൽ അസംബ്ലി ഭാഷകളിലെന്നപോലെ, സാധ്യമായ എല്ലാ വിധത്തിലും നിങ്ങൾക്ക് വെർട്ടെക്സും ഫ്രാഗ്മെന്റ് ഷേഡറുകളും മിക്സ് ചെയ്ത് പൊരുത്തപ്പെടുത്താനാകും. ഒരേ ഇന്റർഫേസിലൂടെ ആശയവിനിമയം നടത്തുന്നിടത്തോളം, അനുയോജ്യമായ ഏതെങ്കിലും ഫ്രാഗ്മെന്റ് ഷേഡറിനൊപ്പം ഏത് വെർട്ടെക്സ് ഷേഡറും ഉപയോഗിക്കാൻ കഴിയും. മാത്രമല്ല, ചില പൊരുത്തക്കേടുകൾ പോലും അനുവദനീയമായിരുന്നു: ഉദാഹരണത്തിന്, വെർട്ടെക്സ് ഷേഡറിന് ശകലം ഷേഡർ ഉപയോഗിക്കാത്ത ഒരു മൂല്യം ഔട്ട്പുട്ട് ചെയ്യാൻ കഴിയും.

GLSL-ൽ അങ്ങനെയൊന്നും ഉണ്ടായിരുന്നില്ല. വെർട്ടക്സും ഫ്രാഗ്മെന്റ് ഷേഡറും ഒന്നിച്ച് യോജിപ്പിച്ച് 3D ലാബുകൾ "സോഫ്റ്റ്‌വെയർ ഒബ്‌ജക്റ്റ്" എന്ന് വിളിക്കുന്നു. അതിനാൽ, വേണ്ടി പങ്കുവയ്ക്കുന്നുഒന്നിലധികം വെർട്ടക്സും ഫ്രാഗ്മെന്റ് ഷേഡറുകളും വിവിധ കോമ്പിനേഷനുകൾ, എനിക്ക് നിരവധി സോഫ്‌റ്റ്‌വെയർ ഒബ്‌ജക്‌റ്റുകൾ സൃഷ്‌ടിക്കേണ്ടി വന്നു. ഇത് രണ്ടാമത്തെ വലിയ പ്രശ്നത്തിന് കാരണമായി.

3D ലാബുകൾ തങ്ങളാണ് ഏറ്റവും മിടുക്കരെന്ന് കരുതി. GLSL കംപൈലേഷൻ മോഡലിന്റെ അടിസ്ഥാനമായി അവർ C/C++ ഉപയോഗിച്ചു. നിങ്ങൾ ഒരു c ഫയൽ എടുത്ത് ഒരു ഒബ്‌ജക്റ്റ് ഫയലിലേക്ക് കംപൈൽ ചെയ്യുക, തുടർന്ന് നിരവധി ഒബ്‌ജക്റ്റ് ഫയലുകൾ എടുത്ത് ഒരു പ്രോഗ്രാമിലേക്ക് ലിങ്ക് ചെയ്യുക. GLSL കംപൈൽ ചെയ്യുന്നത് ഇങ്ങനെയാണ്: ആദ്യം നിങ്ങൾ ഒരു ഷേഡർ ഒബ്‌ജക്‌റ്റിലേക്ക് ഒരു വെർട്ടെക്‌സ് അല്ലെങ്കിൽ ഫ്രാഗ്‌മെന്റ് ഷേഡർ കംപൈൽ ചെയ്യുക, തുടർന്ന് നിങ്ങൾ ആ ഒബ്‌ജക്റ്റുകൾ ഇടുക സോഫ്റ്റ്വെയർ ഒബ്ജക്റ്റ്അവസാനം ഒരു പ്രോഗ്രാം രൂപീകരിക്കാൻ അവരെ ഒരുമിച്ച് ചേർക്കുക.

സൈദ്ധാന്തികമായി, പ്രധാന ഷേഡർ വിളിക്കുന്ന കോഡ് അടങ്ങിയിരിക്കുന്ന "ലൈബ്രറി" ഷേഡറുകൾ പോലുള്ള രസകരമായ കാര്യങ്ങൾക്ക് ഇത് അനുവദിച്ചു. പ്രായോഗികമായി, ഷേഡറുകൾ കംപൈൽ ചെയ്യാത്തതിന് ഇത് കാരണമായി രണ്ടുതവണ: കംപൈൽ ഘട്ടത്തിൽ ഒരിക്കൽ, ലിങ്ക് ഘട്ടത്തിൽ രണ്ടാം തവണ. പ്രത്യേകിച്ചും, എൻവിഡിയയിൽ നിന്നുള്ള കംപൈലർ ഇതിന് പ്രശസ്തമായിരുന്നു. ഇത് ഒരു ഇന്റർമീഡിയറ്റ് ഒബ്‌ജക്റ്റ് കോഡും സൃഷ്ടിച്ചില്ല; അത് തുടക്കത്തിൽ സമാഹരിച്ചു, ഫലം വലിച്ചെറിഞ്ഞ് ലിങ്ക് ഘട്ടത്തിൽ വീണ്ടും സമാഹരിച്ചു.

അതിനാൽ, രണ്ട് വ്യത്യസ്ത ശകലങ്ങളുടെ ഷേഡറുകളിലേക്ക് ഒരു വെർട്ടെക്സ് ഷേഡർ അറ്റാച്ചുചെയ്യാൻ, നിങ്ങൾ D3D-യേക്കാൾ കൂടുതൽ കംപൈൽ ചെയ്യേണ്ടതുണ്ട്. എല്ലാ കംപൈലേഷനും പൂർത്തിയായതിനാൽ പ്രത്യേകിച്ചും ഓഫ്‌ലൈൻ, പ്രോഗ്രാമിന്റെ യഥാർത്ഥ നിർവ്വഹണത്തിന് മുമ്പല്ല.

GLSL-ന് മറ്റ് പ്രശ്നങ്ങളും ഉണ്ടായിരുന്നു. ARB ഒടുവിൽ അംഗീകരിക്കുകയും OpenGL-ൽ ഷേഡർ ഭാഷ ഉൾപ്പെടുത്തുകയും ചെയ്‌തതിനാൽ എല്ലാ കുറ്റങ്ങളും 3D ലാബുകളിൽ ചുമത്തുന്നത് തെറ്റായിരിക്കാം (എന്നാൽ 3DLabs-ന്റെ നിർദ്ദേശങ്ങളിൽ നിന്ന് മറ്റൊന്നുമല്ല). എന്നിരുന്നാലും, യഥാർത്ഥ ആശയം ഇപ്പോഴും 3D ലാബുകളിലായിരുന്നു.

ഇപ്പോൾ ഏറ്റവും സങ്കടകരമായ കാര്യം: 3D ലാബുകൾ ശരിയാണ്(മിക്കവാറും). അക്കാലത്തെ എച്ച്എൽഎസ്എൽ പോലെയുള്ള വെക്റ്റർ ഭാഷയല്ല ജിഎൽഎസ്എൽ. കാരണം, 3D ലാബ്‌സിന്റെ ഹാർഡ്‌വെയർ സ്കെയിലർ ആയിരുന്നു (ആധുനിക nVidia ഹാർഡ്‌വെയർ പോലെ), കൂടാതെ പിന്നീട് പല ഹാർഡ്‌വെയർ നിർമ്മാതാക്കളും പിന്തുടരുന്ന ദിശയിലേക്ക് അവ തികച്ചും ശരിയായിരുന്നു.

"ഹൈ-ലെവൽ" ഭാഷയ്ക്കുള്ള സമാഹാര മാതൃക തിരഞ്ഞെടുക്കുന്നതിനെക്കുറിച്ച് അവർ ശരിയായിരുന്നു. D3D പോലും ഒടുവിൽ ഇതിലേക്ക് വന്നു.

3D ലാബ്‌സ് തെറ്റിനെക്കുറിച്ച് ശരിയായിരുന്നു എന്നതാണ് പ്രശ്നം സമയം. കൂടാതെ, അകാലത്തിൽ ഭാവിയിലേക്ക് കടക്കാൻ ശ്രമിക്കുമ്പോൾ, ഭാവിക്കായി തയ്യാറെടുക്കാൻ ശ്രമിക്കുമ്പോൾ, അവർ വർത്തമാനകാലം മാറ്റിവച്ചു. ഇത് OpenGL-ലെ T&L ഫംഗ്‌ഷണാലിറ്റി പോലെ കാണപ്പെടുന്നു. OpenGL T&L പൈപ്പ്‌ലൈൻ ആയിരുന്നു എന്നതൊഴിച്ചാൽ ഉപയോഗപ്രദമായഹാർഡ്‌വെയർ T&L വരുന്നതിനുമുമ്പ്, GLSL ലോകത്തിന്റെ മറ്റു ഭാഗങ്ങൾ പിടിക്കപ്പെടുന്നതിന് മുമ്പ് ഒരു ബാധ്യതയായിരുന്നു.

GLSL ആണ് നല്ല ഭാഷ ഇപ്പോൾ. എന്നാൽ ആ സമയത്ത് എന്താണ് സംഭവിച്ചത്? അവൻ ഭയങ്കരനായിരുന്നു. ഓപ്പൺജിഎൽ ഇതിൽ നിന്ന് കഷ്ടപ്പെട്ടു.

അപ്പോത്തിയോസിസിലേക്കുള്ള വഴിയിൽ

3D ലാബ്‌സ് OpenGL-ന് മാരകമായ പ്രഹരം ഏൽപ്പിച്ചു എന്ന വീക്ഷണത്തെ ഞാൻ പിന്തുണയ്ക്കുന്നു, എന്നാൽ ARB തന്നെ ശവപ്പെട്ടിയിൽ അവസാന ആണി അടിച്ചു.

ഈ കഥ നിങ്ങൾ കേട്ടിട്ടുണ്ടാകും. OpenGL 2.1-ന്റെ സമയത്ത്, OpenGL ഉണ്ടായിരുന്നു വലിയ പ്രശ്നങ്ങൾ. അവൻ വലിച്ചുകൊണ്ടിരുന്നു വൻഅനുയോജ്യത ലോഡ്. API ഇനി ഉപയോഗിക്കാൻ എളുപ്പമായിരുന്നില്ല. അഞ്ചെണ്ണം കൊണ്ട് ഒരു കാര്യം ചെയ്യാം വ്യത്യസ്ത വഴികൾഏതാണ് വേഗതയേറിയതെന്ന് വ്യക്തമല്ല. ഇത് ഉപയോഗിച്ച് OpenGL "പഠിക്കാൻ" സാധിച്ചു ലളിതമായ ഗൈഡുകൾ, എന്നാൽ യഥാർത്ഥ ഗ്രാഫിക്കൽ ശക്തിയും പ്രകടനവും നൽകുന്ന OpenGL നിങ്ങൾ പഠിച്ചിട്ടില്ല.

ഓപ്പൺജിഎൽ വീണ്ടും കണ്ടുപിടിക്കാൻ മറ്റൊരു ശ്രമം നടത്താൻ ARB തീരുമാനിച്ചു. ഇത് 3D ലാബിൽ നിന്നുള്ള "OpenGL 2.0" പോലെയായിരുന്നു, പക്ഷേ ARB ആണ് ഈ ശ്രമത്തിന് പിന്നിൽ പ്രവർത്തിച്ചത്. അവർ അതിനെ "ലോംഗ്സ് പീക്ക്" എന്ന് വിളിച്ചു.

API മെച്ചപ്പെടുത്തുന്നതിന് കുറച്ച് സമയം ചെലവഴിക്കുന്നതിൽ എന്താണ് മോശം? മൈക്രോസോഫ്റ്റ് വളരെ അപകടകരമായ അവസ്ഥയിലാണ് എന്നതാണ് മോശം വാർത്ത. വിസ്തയിലേക്കുള്ള മാറ്റത്തിന്റെ സമയമായിരുന്നു ഇത്.

IN വിസ്റ്റ മൈക്രോസോഫ്റ്റ്ദീർഘകാലമായി കാത്തിരുന്ന മാറ്റങ്ങൾ വരുത്താൻ തീരുമാനിച്ചു ഗ്രാഫിക്സ് ഡ്രൈവറുകൾ. വെർച്വലൈസേഷനായി OS-ലേക്ക് തിരിയാൻ അവർ ഡ്രൈവർമാരെ നിർബന്ധിച്ചു ഗ്രാഫിക്സ് മെമ്മറികൂടാതെ മറ്റു പലതും.

ഈ സമീപനത്തിന്റെ ഗുണങ്ങളെക്കുറിച്ചും അത് സാധ്യമാണോ എന്നതിനെക്കുറിച്ചും ഒരാൾക്ക് വളരെക്കാലം വാദിക്കാൻ കഴിയും, പക്ഷേ വസ്തുത അവശേഷിക്കുന്നു: മൈക്രോസോഫ്റ്റ് D3D 10 വിസ്റ്റയ്ക്കും ഉയർന്നതിനും മാത്രമായി നിർമ്മിച്ചു. പോലും പിന്തുണയ്ക്കുന്നവിസ്റ്റ ഇല്ലാതെ D3D ഹാർഡ്‌വെയറിന് D3D ആപ്ലിക്കേഷൻ പ്രവർത്തിപ്പിക്കുക അസാധ്യമായിരുന്നു.

വിസ്റ്റ എന്ന് നിങ്ങൾ ഓർക്കുന്നുണ്ടാകും... അത് അത്ര നന്നായി പ്രവർത്തിച്ചില്ല എന്ന് പറയാം. അതിനാൽ ഞങ്ങൾക്ക് ഒരു വിശ്രമ OS ഉണ്ടായിരുന്നു, പുതിയ API, ഈ OS-ൽ മാത്രം പ്രവർത്തിച്ചതും പുതിയ തലമുറ ഹാർഡ്‌വെയറും ആവശ്യമുണ്ട്ഈ API-യിലും OS-ലും മുൻ തലമുറയെക്കാൾ മികച്ച പ്രകടനം കാഴ്ചവയ്ക്കാൻ കഴിയും.

എന്നിരുന്നാലും, ഡവലപ്പർമാർ കഴിയുമായിരുന്നു OpenGL വഴി D3D 10 ലെവൽ പ്രവർത്തനം ഉപയോഗിക്കുക. അതായത്, ARB ലോംഗ് പീക്കുകളിൽ ജോലി ചെയ്യുന്ന തിരക്കിലല്ലെങ്കിൽ അവർക്ക് കഴിയും.

API മെച്ചപ്പെടുത്തുന്നതിനായി ARB നല്ല ഒന്നര വർഷം മുതൽ രണ്ട് വർഷം വരെ ചെലവഴിച്ചു. ഓപ്പൺജിഎൽ 3.0 ഇറങ്ങിയപ്പോഴേക്കും, വിസ്റ്റയിലേക്കുള്ള മാറ്റം അവസാനിച്ചു, വിൻഡോസ് 7 അതിന്റെ പാതയിലായിരുന്നു, ഗെയിം ഡെവലപ്പർമാർ D3D 10-ലെവൽ പ്രവർത്തനത്തെക്കുറിച്ച് കൂടുതൽ ശ്രദ്ധിച്ചില്ല. എല്ലാത്തിനുമുപരി, D3D 10 ഹാർഡ്‌വെയർ D3D 9 ആപ്ലിക്കേഷനുകളിൽ നന്നായി പ്രവർത്തിച്ചു. പിസി പോർട്ടുകളുടെ വേഗത വർദ്ധിച്ചു, കൺസോൾ (അല്ലെങ്കിൽ പിസി ഡെവലപ്പർമാർ കൺസോൾ മാർക്കറ്റിലേക്ക് മാറുന്നതോടെ), ഡെവലപ്പർമാർക്ക് ഡി3ഡി 10 ഫങ്ഷണാലിറ്റി കുറവും കുറവും ആവശ്യമായിരുന്നു.

Windows XP-യിൽ പോലും ഡവലപ്പർമാർക്ക് ഈ പ്രവർത്തനത്തിലേക്ക് ആക്‌സസ് ഉണ്ടെങ്കിൽ, ഓപ്പൺജിഎൽ വികസനം സജീവമാക്കാം. എന്നാൽ ഈ അവസരം എആർബി നഷ്ടപ്പെടുത്തി. ഏറ്റവും മോശമായ കാര്യം എന്താണെന്ന് അറിയണോ?

എ.ആർ.ബി പരാജയപ്പെട്ടുരണ്ട് വിലയേറിയ വർഷങ്ങൾ പാഴാക്കിയിട്ടും ആദ്യം മുതൽ ഒരു API കണ്ടുപിടിക്കുക. അതിനാൽ, പ്രവർത്തനക്ഷമത ഒഴിവാക്കാനുള്ള ഒരു സംവിധാനം മാത്രം ചേർത്തുകൊണ്ട് അവർ തൽസ്ഥിതി തിരികെ നൽകി.

തൽഫലമായി, ARB നഷ്‌ടപ്പെട്ടു മാത്രമല്ല താക്കോൽഅവസരങ്ങൾ, മാത്രമല്ല അവരെ ഈ ഒഴിവാക്കലിലേക്ക് നയിച്ച ജോലിയും ചെയ്തില്ല. എല്ലാ മേഖലകളിലും ഇതൊരു ഇതിഹാസ പരാജയമായിരുന്നു.

യുടെ കഥ ഇതാണ് OpenGL-നോടുള്ള എതിർപ്പ്കൂടാതെ Direct3D. നഷ്‌ടമായ അവസരങ്ങൾ, വലിയ മണ്ടത്തരങ്ങൾ, മനഃപൂർവമായ അശ്രദ്ധ, നിസ്സാരമായ അസംബന്ധങ്ങൾ എന്നിവയുടെ കഥ.

ഓ, OpenGL-ൽ ഇത് വളരെ ലളിതമായിരുന്നെങ്കിൽ. ഇപ്പോൾ, ഒരു തരത്തിലല്ലെങ്കിൽ മറ്റൊരു തരത്തിൽ, വ്യത്യസ്ത ഷേഡർ ഭാഷകളും ഭാഗികമായും (ചിലപ്പോൾ ഏതാണ്ട് പൂർണ്ണമായും) വ്യത്യസ്ത API- കൾ ഉള്ള 6 പൊരുത്തപ്പെടാത്ത മാനദണ്ഡങ്ങൾ (2.1,3.3,4.x, ES 1.0, ES 2.0, ES 3.0) ഉപയോഗത്തിലുണ്ട്. . അതിലും മോശം, റഫറൻസ് നടപ്പിലാക്കൽ ഇല്ല, വളരെ കുറച്ച് ഗുണനിലവാര നിയന്ത്രണം. തൽഫലമായി, മിക്ക പിസി മാർക്കറ്റുകളിലും (ഇന്റൽ, എഎംഡി) ഓപ്പൺജിഎൽ വളച്ചൊടിച്ച് നടപ്പിലാക്കുന്നു, കൂടാതെ മൊബൈൽ ഫോണുകളിൽ, പലപ്പോഴും വളഞ്ഞ ഡ്രൈവറുകൾക്ക് പുറമേ (അഡ്രിനോയ്ക്ക് (എടിഐ, നിങ്ങൾക്ക് എന്താണ് വേണ്ടത്), ഒപ്റ്റിമൈസേഷനുള്ള സമീപനങ്ങൾ വ്യത്യാസപ്പെടുന്നു. അത്യന്തം

ദിദി

മിഖായേൽ, നിങ്ങൾക്ക് കുറച്ച് തെറ്റി. ഒരൊറ്റ കേസിൽ മാത്രം നിങ്ങൾ DirectX തിരഞ്ഞെടുക്കേണ്ടതുണ്ട്. നിങ്ങളുടെ പ്രേക്ഷകരെ വിൻഡോസ് പ്ലാറ്റ്‌ഫോമിലേക്ക് മാത്രമല്ല, വിൻഡോസിന്റെ ഒരു പതിപ്പിലേക്കും നിർമ്മാതാക്കളുടെയും വികസനത്തിനായി ഉപയോഗിക്കുന്ന കമ്പ്യൂട്ടർ ഘടകങ്ങളുടെയും കൃത്യമായ പൊരുത്തത്തിലേക്കും പരിമിതപ്പെടുത്താൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ. ഡയറക്ട് ഉപയോഗിച്ച് എഴുതിയത് മറ്റ് ഘടകങ്ങളിലും വിൻഡോസിന്റെ ചില പതിപ്പുകളിലും പ്രവർത്തിക്കുമെന്ന് ആരും വാദിക്കില്ലെങ്കിലും, എന്തെങ്കിലും പൊരുത്തക്കേടുണ്ടെങ്കിൽ, ചിത്രം വ്യത്യസ്തമായിരിക്കും ഏറ്റവും മോശം വശംഅതുപോലെ പ്രകടനം. മറ്റെല്ലാ സാഹചര്യങ്ങളിലും, ഡവലപ്പർ തന്റെ സൃഷ്ടിയെ അത് ചെയ്ത രൂപത്തിൽ അറിയിക്കണമെങ്കിൽ, അവൻ OpenGL തിരഞ്ഞെടുക്കണം.

crsib

ദിദി, നിങ്ങൾ വിചിത്രമായ കാര്യങ്ങൾ പറയുന്നു. ഒന്നാമതായി, XP-യിൽ നിന്ന് തുടങ്ങി എല്ലായിടത്തും D3D9 ഉണ്ട്, കൂടാതെ, XBox-ലും ചില വിൻഡോസുകളിലും സർപ്രൈസ് സർപ്രൈസ് മൊബൈൽ ഫോണുകൾ. Vista+, WinRT, WP8 എന്നിവയുള്ള എല്ലാ പിസികളിലും D3D11 ലഭ്യമാണ്. പ്രത്യക്ഷത്തിൽ ഇത് XBox-ന്റെ അടുത്ത തലമുറയിലായിരിക്കും.

ഓപ്പൺജിഎൽ പിസിയിൽ വളരെ മോശമായി പ്രവർത്തിക്കുന്നു. എല്ലാം എഎംഡിയിൽ പ്രവർത്തിക്കാനുള്ള സാധ്യത കുറവാണ്. ഇന്റലിനെ കുറിച്ച് ഞാൻ ഒന്നും പറയുന്നില്ല. ഉപയോക്താവിന്, പ്രത്യേകിച്ച് പന്നിക്ക്, ഡ്രൈവറുകൾ ഇല്ലായിരിക്കാം, അത് അയാൾക്ക് രസകരമായ സോഫ്റ്റ്‌വെയർ റെൻഡറിംഗും API 1.1-നുള്ള പിന്തുണയും നൽകും. അതേ സമയം, D3D ഗെയിം മികച്ച രീതിയിൽ പ്രവർത്തിക്കാനുള്ള മികച്ച അവസരമുണ്ട്.

ദിദി

crsib, നിങ്ങളുടേതായ ഗെയിം പ്രോജക്ടുകൾ ഉണ്ടെന്ന് ഞാൻ പ്രതീക്ഷിക്കുന്നു.. ഈ D3D9 ഉള്ള എല്ലായിടത്തും ചിത്രം കാണത്തക്കവിധം എഴുതാൻ ആവശ്യമായ കോഡ് ഞാൻ കണ്ടാൽ മതി, ഉപയോഗിക്കുന്ന മിക്ക പ്രോഗ്രാമർമാരും എന്ന് ഞാൻ വാദിക്കില്ല ഓപ്പൺജിഎൽ ഇഷ്ടപ്പെടുന്നവരിൽ നിന്ന് വ്യത്യസ്തമായി ഡയറക്‌ട് എക്‌സ് മടിയന്മാരല്ല, പക്ഷേ ഇത് ഡയറക്‌ട് എക്‌സിന് തന്നെ ഒരു മൂല്യവും നൽകുന്നില്ല. അവസാനം, വ്യക്തിപരമായി, എന്നെ സംബന്ധിച്ചിടത്തോളം, ഡെവലപ്പർമാരുടെ ചെലവാണ് അളവ്, നേരിട്ടുള്ള കാര്യങ്ങളിൽ അവ ആനുപാതികമായി ഉയർന്നതാണ്, അവസാനം ഉപയോഗപ്രദമായ ഔട്ട്പുട്ട് വളരെ കുറവാണ്.

crsib

എനിക്കതേയുള്ളൂ. കൂടാതെ OpenGL ES-ലും. പണിക്കൂലിയെക്കുറിച്ചുള്ള തമാശ എനിക്ക് മനസ്സിലായില്ല. ഓപ്പൺജിഎല്ലിൽ പൈപ്പ്ലൈനിന്റെ അവസ്ഥ നിരീക്ഷിക്കുന്നത് ഇപ്പോഴും പീഡനമാണ്, കാരണം ചില കാരണങ്ങളാൽ അതിന്റെ ഒരു പ്രധാന ഭാഗം ഗ്രാഫിക് "പ്രിമിറ്റീവുകളിൽ" പൊതിഞ്ഞിരിക്കുന്നു. കോഡ് പോർട്ടബിൾ ആയി സൂക്ഷിക്കുന്നത് പൊതുവെ ബുദ്ധിമുട്ടാണ്. ES 1-ന് ഹാർഡ്‌വെയർ ടെക്‌സ്‌ചർ കംപ്രഷൻ ഫോർമാറ്റുകൾക്ക് ആവശ്യങ്ങളൊന്നുമില്ല, ES 2.0-ന് മോശം ETC ഉണ്ട്. തൽഫലമായി, അതേ ആൻഡ്രോയിഡിനായി നിങ്ങൾ ടെക്സ്ചറുകൾ ഉള്ള ഒരു പായ്ക്ക് ബിൽഡുകൾ കൂട്ടിച്ചേർക്കേണ്ടതുണ്ട് വ്യത്യസ്ത ഫോർമാറ്റുകൾ. PowerVR, Mali, Adreno എന്നിവയ്ക്ക് ചില സ്ഥലങ്ങളിൽ OpenGL ലെവലിൽ (ഹാർഡ്‌വെയർ അമൂർത്തീകരണത്തോടുള്ള സമീപനത്തോടെ) ഒപ്റ്റിമൈസേഷന് നേരിട്ട് വിപരീത സമീപനങ്ങളുണ്ടെന്ന വസ്തുതയെക്കുറിച്ച് ഞാൻ സംസാരിക്കുന്നില്ല. പിസിയെക്കുറിച്ച് സംസാരിക്കാൻ പോലും ഞാൻ ആഗ്രഹിക്കുന്നില്ല. ഓപ്പൺജിഎൽ പ്രവർത്തിക്കേണ്ടതായതിനാൽ, എന്റെ കമ്പ്യൂട്ടറുകളിൽ എപ്പോഴും എൻവിഡിയ ആക്‌സിലറേറ്റർ ഉണ്ടായിരിക്കും. എനിക്ക് ശരിക്കും വേറെ വഴിയില്ല. ഞാൻ 10 ഡ്രൈവറുകൾ ഇൻസ്റ്റാൾ ചെയ്താലും, Intel GMA/HD-യിലെ സ്റ്റാൻഡേർഡിന് അനുസൃതമായി എഴുതിയ കോഡ് മണ്ടത്തരമായി പ്രവർത്തിക്കില്ലെന്ന് എനിക്ക് ഉറപ്പ് നൽകാൻ കഴിയും. ശരി, അല്ലെങ്കിൽ അത് സത്യസന്ധമായി പ്രവർത്തിച്ചില്ലെങ്കിൽ നന്നായിരിക്കും എന്ന രീതിയിൽ പ്രവർത്തിക്കും. എ‌ടി‌ഐ/എ‌എം‌ഡിയുടെ കാര്യത്തിലും ഇത് സമാനമാണ്, സ്ഥിതി അൽപ്പം മെച്ചമാണ്.

പൊതുവേ, OpenGL-ലെ പ്രൊഡക്ഷൻ ഡെവലപ്‌മെന്റിന്റെ എല്ലാ സർക്കിളുകളിലൂടെയും കടന്നുപോകാൻ ഇതുവരെ സമയമില്ലാത്ത ഒരു തുടക്കക്കാരനായ ഡെവലപ്പറുടെ മനോഭാവത്തിലാണ് നിങ്ങളുടെ അഭിപ്രായങ്ങൾ മുഴങ്ങുന്നത്.