ඔයාලා කවදාහරි හිතලා තියෙනවාද Red Dead Redemption 2 වගේ ගේම් එකක තියෙන ඒ realistic environment එක, ගොඩනැගිලි, සහ මිනිස්සු ඇත්තටම හැදෙන්නේ කොහොමද කියලා? මේ හැමදේම ඇත්තටම graphics කාඩ් එක ඇතුළේ දුවන බිලියන ගණනක බිංදු සහ එක (0 and 1) විතරයි.
අද අපි බලමු මේ 0 සහ 1 කොහොමද ඔයාගේ screen එකේ ලස්සන රූප බවට පත් වෙන්නේ කියලා. මේ වැඩේ ප්රධාන පියවර තුනකින් සිද්ධ වෙනවා: Vertex Shading, Rasterization, සහ Fragment Shading.
අපි දකින ඕනෑම 3D වස්තුවක් හැදිලා තියෙන්නේ පුංචි ත්රිකෝණ (Triangles) දහස් ගණනක් එකතු වෙලා. මේ ත්රිකෝණ එකතු වෙලා තමයි "Mesh" එකක් හැදෙන්නේ.
Vertex Shading වලදී කරන්නේ, මේ 3D අවකාශයේ තියෙන ලක්ෂ්ය (Vertices) ඔයාගේ 2D මොනිටර් එකේ පේන්න ඕනේ කොතනද කියලා ගණනය කරන එකයි. මේක කරන්නේ හරිම සංකීර්ණ "Matrix Math" පාවිච්චි කරලා.
ඔයාගේ graphics කාඩ් එකේ තියෙන Cores දහස් ගණනක් එකපාර මේ ගණනය කිරීම් ට්රිලියන ගණනක් කරන නිසා තමයි, තත්පරයකට ෆ්රේම්ස් (Frames) 120කට වඩා වැඩි වේගයකින් අපිට ගේම් එකක් පේන්නේ.
දැන් අපේ ත්රිකෝණ ටික 2D ස්ක්රීන් එකේ තියෙන තැන් අපි දන්නවා. හැබැයි මොනිටර් එකක් හැදිලා තියෙන්නේ කුඩා කොටු, ඒ කියන්නේ පික්සල් (Pixels) වලින්. 4K මොනිටර් එකක පික්සල් මිලියන 8.3ක් විතර තියෙනවා.
Rasterization පියවරේදී කරන්නේ, අර ත්රිකෝණ වැහිලා තියෙන පික්සල් මොනවාද කියලා හොයාගන්න එකයි. එතකොට ඒ පික්සල් වලට අදාළ පාට සහ Textures ලබා දෙන්න පුළුවන්.
ගේම් එකක එක වස්තුවක් පිටිපස්සේ තවත් වස්තුවක් තියෙන්න පුළුවන්. එතකොට මොකක්ද පේන්න ඕනේ? මේක විසඳන්න Z-Buffer එහෙමත් නැත්නම් Depth Buffer එකක් පාවිච්චි කරනවා. මෙතැනදී හැම පික්සල් එකකටම "ගැඹුරක්" (Depth) ලබා දෙනවා. කැමරාවට ළඟම තියෙන දේ විතරක් ස්ක්රීන් එකේ පෙන්නලා, පිටිපස්සෙන් තියෙන දේවල් GPU එක මගින් අයින් කරනවා.
ත්රිකෝණ පික්සල් බවට හරවද්දී දාරවල "කටුක" (Jagged edges) ස්වභාවයක් එන්න පුළුවන්. මේක නැති කරන්න Super Sampling Anti-Aliasing (SSAA) වගේ තාක්ෂණයන් පාවිච්චි කරනවා. මෙතැනදී එක පික්සල් එකක් ඇතුළේ තවත් පොඩි ලක්ෂ්ය කිහිපයක් පරීක්ෂා කරලා, පාටවල් මෘදු (Smooth) විදිහට මිශ්ර කරනවා.
මේක තමයි ගේම් එකක් realistic කරන්න තියෙන වැදගත්ම පියවර. පික්සල් වලට නිකන්ම පාටක් දාලා මදි, ඒ මතට ආලෝකය වැටෙන්නේ කොහොමද කියලා බලන්න ඕනේ.
Fragment Shading වලදී ආලෝකය එන දිශාව සහ වස්තුවේ මතුපිට හැරිලා තියෙන දිශාව (Surface Normal) අතර කෝණය ගණනය කරනවා.
මේ විදිහට තමයි ලෝහ වස්තුවක් දිලිසෙන විදිහ හෝ හෙවනැලි වැටෙන විදිහ ඇත්තටම වගේ අපිට පේන්නේ.
අද කාලේ එන අලුත්ම ගේම්ස් වල මේ පියවර වලට අමතරව තවත් දේවල් කෙරෙනවා.
මේ හැම වැඩක්ම ඔයාගේ ග්රැෆික් කාඩ් එක තත්පරයකින් දහයෙන් පංගුවකටත් වඩා අඩු කාලයකදී කරලා ඉවර කරනවා. ඒකයි අපිට මෙච්චර smooth ව ගේම් එකක් play කරන්න පුළුවන් වෙලා තියෙන්නේ.
Graphics Cards වැඩ කරන්නේ කොහොමද කියලා දැනගන්න කැමති අය මේ link එකෙන් ගිහින් බලන්න.
💬 Comments