ការតាមដានកាំរស្មីនៅក្នុងពេលវេលាជាក់ស្តែង។ DirectX Raytracing៖ ការតាមដានកាំរស្មីតាមពេលវេលាជាក់ស្តែង

មិនយូរប៉ុន្មាន ហ្គេម 4A ដែលជាអ្នកបង្កើតហ្គេម Metro ប្រាកដនិយមបានបញ្ចេញវីដេអូមួយដោយប្រើបច្ចេកវិទ្យា RTX របស់ Nvidia ដោយប្រើ METRO: EXODUS ជាឧទាហរណ៍។ ការច្នៃប្រឌិតក្រាហ្វិកនេះគឺជាជំហានដ៏ធំមួយ និងទំនុកចិត្តឆ្ពោះទៅមុខក្នុងការតាមដានកាំរស្មី។ ប៉ុន្តែតើទាំងអស់នេះមានន័យយ៉ាងណា?

នៅពីក្រោយវាំងននសម្ងាត់

ចូរចាប់ផ្តើមពីដំបូង។ ទីមួយ ការបង្ហាញការតាមដានកាំរស្មីគឺជាប្រភេទមូលដ្ឋាននៃការមើលឃើញដែលត្រូវបានប្រើនៅក្នុងខ្សែភាពយន្ត និងប្រភេទផ្សេងៗនៃការរចនា៖ ពីឧស្សាហកម្មរហូតដល់ស្ថាបត្យកម្ម។ នោះ​គឺ​អ្វី​ដែល​អ្នក​ឃើញ​នៅ​លើ​គេហទំព័រ​ជា​រូបថត​ឧបករណ៍​គឺ​ពិត​ជា​ការ​បង្ហាញ 3D។

ខ្លឹមសារនៃបច្ចេកវិទ្យាគឺថា កុំព្យូទ័រធ្វើគំរូនូវឥរិយាបទរូបវន្តនៃពន្លឺ ដោយគណនាគន្លងនៃពន្លឺនីមួយៗតាមលក្ខខណ្ឌ ហ្វូតុននៃពន្លឺ ពោលគឺប្រសិនបើធ្នឹមធ្លាក់មកលើវត្ថុមួយ នោះវាត្រូវបានឆ្លុះបញ្ចាំងនៅក្នុងវា ឬឆ្លុះបញ្ចាំងពីវានៅពេលតែមួយ។ មុំឬផ្សេងទៀត។ លទ្ធផល​គឺ​ជា​ដាន​ជាក់លាក់​នៃ​កាំរស្មី​ពន្លឺ​នេះ ហេតុ​ដូច្នេះ​ហើយ​បាន​ជា​ឈ្មោះ​ថា "ដាន​កាំរស្មី"។

កុំព្យូទ័រនេះបង្កើតរូបភាពដោយ Enrico Cerica ដោយប្រើ OctaneRender បង្ហាញកាំរស្មី ស្រមោល និងការឆ្លុះបញ្ចាំងលើផ្ទៃជាន់ដ៏ស្មុគស្មាញ។

បញ្ហាតែមួយគត់គឺថាកាំរស្មីច្រើនត្រូវបានគេត្រូវការហើយសម្រាប់ពួកវានីមួយៗវាចាំបាច់ក្នុងការគណនាម្តងហើយម្តងទៀតនូវការប៉ះទង្គិចគ្នានៃកាំរស្មីជាមួយនឹងឧបសគ្គ។ តាមពិតវាគឺជាបញ្ហាគណិតវិទ្យាដ៏សាមញ្ញមួយ។ ដំបូងអ្នកត្រូវគណនាកន្លែងដែលធ្នឹមប៉ះនឹងវត្ថុដែលមានស្រាប់ ពោលគឺគណនាការប៉ះទង្គិច បន្ទាប់មកដោយផ្អែកលើលក្ខណៈសម្បត្តិដែលបានបញ្ជាក់ អ្នកត្រូវធ្វើការបំប្លែងគណិតវិទ្យាបន្ថែមទៀត។


គ្រោងការណ៍តាមដានកាំរស្មីសាមញ្ញ

ជាឧទាហរណ៍ មានផ្ទៃ Matt ជាមួយនឹងភាពរដុបតាមលក្ខខណ្ឌជាក់លាក់មួយ ប៉ុន្តែមិនមានភាពរដុបទាំងស្រុងទេ ហើយធ្នឹមបានងាកចេញពីវាជាមួយនឹងប្រូបាប៊ីលីតេជាក់លាក់មួយនៅមុំមួយចំនួនខុសពីមុំនៃឧប្បត្តិហេតុ។ វាគួរតែត្រូវបានគេយកទៅក្នុងគណនីថាប្រសិនបើវត្ថុមានទ្រព្យសម្បត្តិនៃរលូនគ្មានទីបញ្ចប់នោះមុំនៃឧប្បត្តិហេតុគឺស្មើនឹងមុំនៃការឆ្លុះបញ្ចាំង។ ប្រសិនបើលក្ខណៈសម្បត្តិនៃផ្ទៃនិយាយអំពីអ័ព្ទ នោះតាមគណិតវិទ្យា នេះត្រូវបានដឹងដោយគម្លាតនៃមុំឆ្លុះបញ្ចាំងពីមុំនៃឧប្បត្តិហេតុ។

នៅក្នុងជីវិតនេះជាការពិតផ្ទៃគឺស្ទើរតែមិនរលោងទាំងស្រុង។ ដូច្នេះ នៅពេលដែលពន្លឺប៉ះនឹងចំណុចមួយ ឬចំណុចផ្សេងទៀត វាត្រូវបានឆ្លុះបញ្ចាំងទាក់ទងទៅនឹងទីតាំងផ្ទៃ ដែលអាចត្រូវបានបង្វិលដោយដូចម្ដេចទាក់ទងទៅនឹងយន្តហោះដែលហាក់ដូចជាយើង ហើយធ្នឹមជិតខាងត្រូវបានឆ្លុះបញ្ចាំងក្នុងទិសដៅខុសគ្នាទាំងស្រុង។ ដូច្នេះវាច្បាស់ណាស់ថាគ្មានចំណុចណាមួយក្នុងការធ្វើឱ្យគំរូវត្ថុមានពហុកោណពេកទេ ដូច្នេះភាពមិនប្រក្រតីត្រូវបានកំណត់ដោយលក្ខណៈសម្បត្តិនៃផ្ទៃ។ លទ្ធផលគឺស្រដៀងគ្នាទៅនឹងការខ្ចាត់ខ្ចាយនៃពន្លឺពីផ្ទៃ Matt ។

ឥឡូវនេះនៅក្នុងហ្គេម ពួកគេប្រើវត្ថុដែលមើលទៅដូចជាវាត្រូវបានលាបជាមួយនឹងអ្វីមួយដូចជាទឹកកក។ ដោយមិនសង្ស័យ អ្នករាល់គ្នាបានឃើញជញ្ជាំង និងកម្រាលឥដ្ឋចម្លែកនៅក្នុងហ្គេមដែលមើលទៅដូចជាពួកគេត្រូវបានលាបជាមួយនឹងទឹករំអិលមួយចំនួន។ ជាការប្រសើរណាស់ អ្នកមិនចាំបាច់ធ្វើបែបនេះជាមួយការតាមដានកាំរស្មីទេ ផ្ទៃអាចខ្ចាត់ខ្ចាយពន្លឺតាមធម្មជាតិ។ នេះត្រូវបានបង្ហាញយ៉ាងល្អឥតខ្ចោះនៅក្នុងការបង្ហាញ វាមានផ្នែកជាច្រើនពីកញ្ចក់ឆ្លុះបំផុត ដល់ ម៉ាត់បំផុត។

វាគួរឱ្យកត់សម្គាល់ជាពិសេសថានៅក្នុងតំបន់ Matt ការឆ្លុះបញ្ចាំងយ៉ាងខ្លាំងអាស្រ័យលើភាពជិតនៃវត្ថុទៅនឹងផ្ទៃ។ ពោលគឺ កាលណាវត្ថុនៅឆ្ងាយពីផ្ទៃ វានឹងកាន់តែព្រិល។ នេះគឺជាទ្រព្យសម្បត្តិដ៏សំខាន់មួយដែលយើងមិនកត់សំគាល់ក្នុងជីវិត ទោះបីជាវាមានក៏ដោយ។

ប៉ុន្តែអ្វីដែលសំខាន់បំផុតគឺស្រមោល។ មិនមានអ្វីអាក្រក់ជាងស្រមោលនៅក្នុងហ្គេមណាមួយឡើយ។

ទាំងនេះជាធម្មតាគ្រាន់តែជាការព្យាករនៃវត្ថុដែលមានគែមមុតស្រួចខុសពីធម្មជាតិ។ ទោះយ៉ាងណាក៏ដោយ មានភាពប្រសើរជាងមុន ដោយស្តង់ដារហ្គេម ស្រមោល។ ទាំងនេះគឺជាជម្រើសទន់ជាមួយនឹងបន្ទាត់ផ្លាស់ប្តូរ នោះគឺស្រមោល និង penumbra ។


ដើម្បីបង្កើតស្រមោលទន់ ឬការឆ្លុះបញ្ចាំងដែលសាយភាយ (ដូចជាអ្វីដែលអ្នកឃើញនៅក្នុងដែកជក់ ជាឧទាហរណ៍) ត្រូវការបច្ចេកទេសតាមដានកាំរស្មីកម្រិតខ្ពស់បន្ថែមទៀត។

បញ្ហាតែមួយគត់គឺថាវាមិនដំណើរការដូចនោះនៅក្នុងជីវិតពិត។ ប្រសិនបើប្រភពពន្លឺមិនមែនជាចំណុចមួយ ហើយមិនឆ្ងាយដាច់ពីគ្នា នោះបរិមាណនៃ penumbra អាស្រ័យលើសមាមាត្រនៃចម្ងាយនៃប្រភពពន្លឺពីវត្ថុ និងចម្ងាយនៃវត្ថុពីស្រមោលរបស់វា។ នោះគឺគែមនៃ penumbra នៅកន្លែងផ្សេងគ្នារបស់វាអាចធំទូលាយឬតូចជាងជាពិសេសនៅពេលដែលវាមកដល់ប្រភពពន្លឺធំ។

ជាឧទាហរណ៍ ពន្លឺចេញពីបង្អួចក្នុងអាកាសធាតុមានពពកច្រើនផ្ដល់ឱ្យនូវស្រមោលទន់ៗ ដែលប្រសិនបើអ្នកដាក់វត្ថុតូចជាងពីរម៉ែត្រពីបង្អួចនេះ អ្នកអាចមើលឃើញស្រមោលច្បាស់លាស់ និងម្លប់ផ្នែកខ្លះនៅលើមូលដ្ឋានរបស់វា ហើយប្រហែលជាមិនមានស្រមោលនៅ ទាំងអស់ពីផ្នែកខាងលើនៃវត្ថុ ហើយ penumbra នឹងមិនមានព្រំដែនច្បាស់លាស់ទេ។ នៅក្នុងហ្គេមដែលមានទម្រង់បែបប្រពៃណី វាមិនកើតឡើងទេ។

ការតាមដានកាំរស្មីមិនពិបាកទេ ប៉ុន្តែមានកាំរស្មីច្រើន ហើយជាអកុសលនៅពេលនេះ វាមិនអាចធ្វើអ្វីៗគ្រប់យ៉ាងតាមពេលវេលាជាក់ស្តែងបានទេ។ ការពិតគឺថានៅក្នុងជីវិត កាំរស្មីបានបង្វែរទិសដៅខុសគ្នាទាំងស្រុង។ វាជាការល្អប្រសិនបើធ្នឹមឧបទ្ទវហេតុត្រូវបានបែងចែកទៅជាចំនួនគ្មានកំណត់នៃធ្នឹម ពន្លឺសរុបនឹងអាស្រ័យលើទ្រព្យសម្បត្តិរបស់វត្ថុដែលឆ្លុះបញ្ចាំង និងពន្លឺដំបូងនៃធ្នឹមឧប្បត្តិហេតុ។

ដើម្បីកាត់បន្ថយបន្ទុក អ្នកអាចកំណត់ចំនួនកាំរស្មី ចំនួននៃការប៉ះទង្គិច ប៉ុន្តែការរឹតបន្តឹងទាំងនេះនាំឱ្យការពិតដែលថានៅក្នុងរូបភាពអ្នកទទួលបានបំណែកនៃស្រមោល និងចំណុចភ្លឺខុសពីធម្មជាតិពីប្រភពពន្លឺ។ នោះគឺជាចំនួនទិន្នន័យមិនគ្រប់គ្រាន់នាំឱ្យមានការលេចចេញនូវសម្លេងរំខាន ហើយការលំបាកទាំងមូលស្ថិតនៅក្នុងការពិតដែលថាវាមិនអាចទៅរួចទេក្នុងការគណនាកន្លែងកើតហេតុម្តងហើយបន្ទាប់មកផ្លាស់ប្តូរនៅក្នុងវានូវអ្វីដែលផ្លាស់ប្តូរពីស៊ុមមួយទៅស៊ុមមួយចាប់តាំងពីការផ្លាស់ប្តូរវត្ថុផ្លាស់ទីណាមួយ។ គ្រប់ផ្លូវនៃកាំរស្មីទាំងអស់។ ពីចលនានីមួយៗនៃកាមេរ៉ា និងវត្ថុ អ្នកត្រូវ "កសាង" ឈុតទាំងមូលម្តងទៀត ដែលជាមូលហេតុដែលខ្សែភាពយន្តត្រូវបានបង្កើតឡើងដោយកសិដ្ឋានបង្ហាញ និងម៉ាស៊ីនមេជាច្រើនដែលបន្តរយៈពេលជាច្រើនខែ បង្ហាញក្រាហ្វិក។ ប៉ុន្តែជាអកុសលនៅក្នុងពេលវេលាជាក់ស្តែងនៅក្នុងហ្គេមនេះនៅតែមិនអាចធ្វើបាន។

ដូច្នេះសំណួរកើតឡើងថាតើ Nvidia និងដៃគូបានចេញពីស្ថានភាពនេះដោយរបៀបណា: តើពួកគេបានលះបង់អ្វីខ្លះដើម្បីសម្រេចបាននូវការតាមដានពេលវេលាជាក់ស្តែង?

ពីរពាក់កណ្តាលនៃមួយទាំងមូល

ប្រសិនបើអ្នកធ្វើតាមដោយប្រុងប្រយ័ត្នពីរបៀបដែលរូបភាពត្រូវបានបង្ហាញជាដំណាក់កាល អ្នកអាចមើលឃើញថាកន្លែងណាមួយបន្ទាប់ពីការរួមបញ្ចូលទីប្រាំ ស្រមោល និងពន្លឺខ្លួនឯងស្ទើរតែផ្លាស់ប្តូរគួរឱ្យកត់សម្គាល់រួចទៅហើយ។ វាច្បាស់ថាកន្លែងណា អ្វី និងរបៀបដែលវានឹងមើលទៅក្នុងទម្រង់ចុងក្រោយ។ សម្រាប់បញ្ហានេះ ជាគោលការណ៍ កម្មវិធីពេលវេលាពិតគឺត្រូវការជាចាំបាច់ ដើម្បីឱ្យអ្នកអាចបង្វែរប្រភពពន្លឺ យល់ពីកន្លែងដែលនឹងមានពន្លឺចាំង និងបន្ទាប់មកចាប់ផ្តើមការបង្ហាញចុងក្រោយ។ វានៅតែត្រូវមើលពីរបៀបដែលស៊ុមចុងក្រោយអាចយល់បានពីរូបភាពភក់។ តាមពិត កុំព្យូទ័រដំបូងគេធ្វើគំរូរូបភាពដើមដែលមិនមានសម្លេងរំខាន បន្ទាប់មកវិភាគវា ហើយផ្អែកលើទិន្នន័យដែលទទួលបាន គូររូបមួយទៀតគឺរូបភាពចុងក្រោយ។ ដូចដែលការអនុវត្តបានបង្ហាញ វិធីសាស្រ្តនេះគឺសាមញ្ញជាងនៅក្នុងលក្ខខណ្ឌនៃការចំណាយធនធាន។

តាមពិត ការលោតផ្លោះជាបណ្តើរៗក្នុងការអភិវឌ្ឍន៍ការតាមដានតាមពេលវេលាជាក់ស្តែង គឺជាការបង្កើតនូវក្បួនដោះស្រាយដែលអនុញ្ញាតឱ្យយើងវាយតម្លៃរូបភាពពីស្ថានភាពគ្មានសម្លេង ហើយគូរវារហូតដល់ធម្មតា។ នេះជាការច្នៃប្រឌិតដ៏សំខាន់។ អ្វីៗផ្សេងទៀតត្រូវបានប្រើប្រាស់យ៉ាងទូលំទូលាយពីមុនមក។ អ្នកបង្ហាញរូបភាពជាច្រើនមាន GPU rendering និងកម្មវិធីជំនួយ OpenGL ដែលគាំទ្រដោយកាតក្រាហ្វិកដែលត្រូវគ្នាជាមួយ OpenGL ណាមួយ។

សព្វថ្ងៃនេះវាត្រូវបានអះអាងថាបច្ចេកទេសកាត់បន្ថយសំលេងរំខាននេះដំណើរការតែលើស្នូលដេញថ្លៃនៅក្នុងកាតនាពេលអនាគតពី Nvidia ប៉ុណ្ណោះ។ ប៉ុន្តែតាមពិតទៅ បច្ចេកវិទ្យានេះត្រូវបានបង្ហាញក្នុងបរិមាណដ៏ច្រើនតែប៉ុណ្ណោះ ហើយវាបានបង្ហាញខ្លួនជាក់ស្តែងកាលពីឆ្នាំមុន ចាប់តាំងពីក្នុងខែតុលា នៅក្នុងព្រឹត្តិការណ៍មួយ Unity បានបង្ហាញនូវបច្ចេកវិជ្ជានេះសម្រាប់ការដកសំលេងរំខានក្នុងការតាមដានពេលវេលាជាក់ស្តែង។

ល្បិចគឺថាមិនមែនវត្ថុទាំងអស់ចូលរួមក្នុងការតាមដានកាំរស្មីដូចដែលវាគួរនោះទេ។ ក្នុងន័យនេះ យើងនឹងនិយាយអំពីប្រធានបទនៃការបំភ្លឺជាសកល - យន្តការតាមដានដែលពឹងផ្អែកខ្លាំងលើធនធានបំផុត។ នៅក្នុងជីវិត វត្ថុណាមួយដែលពន្លឺធ្លាក់ ឆ្លុះបញ្ចាំងពីផ្នែកនៃពន្លឺនេះ។ ឧទាហរណ៍ ប្រសិនបើអ្នកចង្អុលប្រភពពន្លឺនៅជញ្ជាំងពណ៌បៃតង នោះពន្លឺទាំងអស់នឹងប្រែទៅជាពណ៌បៃតង ព្រោះជញ្ជាំងពណ៌បៃតងមិនស្រូបយកពន្លឺបានល្អទេ។


ការឆ្លុះបញ្ចាំងនៃកាំរស្មីពន្លឺពីផ្ទៃមួយ។

មិនមានផលប៉ះពាល់បែបនេះនៅក្នុងការបង្ហាញនោះទេ។ ជំនួសឱ្យការឆ្លុះបញ្ចាំងពន្លឺ និងការផ្លាស់ប្តូរគំរូពន្លឺនៃស៊ុមអាស្រ័យលើប្រភពពន្លឺ ចន្លោះទាំងមូលត្រូវបានបំពេញដោយរូបភាពភ្លឺដែលធ្វើឱ្យពន្លឺហាក់ដូចជាថាមវន្ត។ តាមពិត អ្នកអភិវឌ្ឍន៍មិនបានអនុវត្តការតាមដានកាំរស្មីទៅព័ត៌មានលម្អិតដូចជាអ័ព្ទ និងអណ្តាតភ្លើងទេ។

ការពិតគឺថាកាំរស្មីនៃពន្លឺត្រូវតែត្រូវបានគណនាដោយមិនគិតពីថាតើវាធ្លាក់លើវត្ថុឬអត់។ នោះគឺការបន្ថែមភ្លើងមួយចំនួនធំគឺជាកិច្ចការដ៏លំបាកសម្រាប់ការគណនាតាមដាន។ លើសពីនេះទៀត មិនមានវត្ថុនៅក្នុងការបង្ហាញបច្ចេកវិទ្យាណាមួយដែលធ្វើត្រាប់តាមវត្ថុថ្លានោះទេ។

តើយើងនឹងឃើញអត្ថប្រយោជន៍នៅពេលណា?

ដោយផ្អែកលើលក្ខណៈវិនិច្ឆ័យដែលបានពិពណ៌នាខាងលើ (ភាពងងឹតនៃរូបភាព និងការតាមដានវត្ថុមិនមែនទាំងអស់) យើងអាចនិយាយបានថាក្រាហ្វិកនៅក្នុងហ្គេមមិនទាន់មើលទៅលម្អិត និងប្រាកដនិយមដូចនៅក្នុងខ្សែភាពយន្តនោះទេ។

ទោះ​ជា​យ៉ាង​ណា ប្រាកដ​ជា​មាន​ការ​រីក​ចម្រើន។ ទីមួយ ការឆ្លុះបញ្ចាំងឥឡូវនេះកាន់តែងាយស្រួលធ្វើ មិនចាំបាច់បង្កើតផែនទីស្រមោល និងពន្លឺទេ អ្វីៗទាំងអស់នេះត្រូវបានដោះស្រាយដោយការតាមដាន។ ទីពីរ យ៉ាងហោច​ណាស់​រូបរាង​ខ្លះ​នៃ​ការ​ឆ្លុះ​បញ្ចាំង​ដែល​ខ្ចាត់ខ្ចាយ​បាន​លេច​ឡើង។ ទីបី ពន្លឺ និងស្រមោលរបស់វត្ថុមានភាពប្រសើរឡើងគួរឱ្យកត់សម្គាល់។ ទាំងអស់គ្នា វាអាចត្រូវបានអះអាងថា នេះអាចត្រូវបានចាត់ទុកថាជាបច្ចេកវិទ្យាសំខាន់នៅក្នុងហ្គេមដែលនឹងមិនបោះបង់តំណែងរបស់ខ្លួនក្នុងរយៈពេលដប់ឆ្នាំខាងមុខ។

អត្ថបទ៖ Alexey Kharitonov, QA, Bytex

វិធីសាស្រ្តតាមដាន

វិធីសាស្រ្ត ដានខាងក្រោយ កាំរស្មីអនុញ្ញាតឱ្យអ្នកកាត់បន្ថយយ៉ាងខ្លាំងនូវការស្វែងរកកាំរស្មីពន្លឺ។ វិធីសាស្រ្តនេះត្រូវបានបង្កើតឡើងក្នុងទសវត្សរ៍ទី 80 ស្នាដៃត្រូវបានចាត់ទុកថាជាមូលដ្ឋាន whittedនិង កៃ។យោងតាមវិធីសាស្រ្តនេះការតាមដានកាំរស្មីត្រូវបានអនុវត្តមិនមែនមកពីប្រភពពន្លឺនោះទេប៉ុន្តែក្នុងទិសដៅផ្ទុយ - ចំណុចនៃការសង្កេត។ តាមរបៀបនេះមានតែកាំរស្មីទាំងនោះដែលរួមចំណែកដល់ការបង្កើតរូបភាពត្រូវបានគេយកមកពិចារណា។

ពិចារណាពីរបៀបដែលអ្នកអាចទទួលបានរូបភាពផែនទីនៃទិដ្ឋភាពបីវិមាត្រ ដោយប្រើវិធីសាស្ត្រតាមដានខាងក្រោយ។ ឧបមា​ថា​យន្តហោះ​ព្យាករ​ត្រូវ​បាន​បែង​ចែក​ជា​ច្រើន​ការ៉េ - ភីកសែល។ ចូរជ្រើសរើសការព្យាករកណ្តាលជាមួយមជ្ឈមណ្ឌលដែលបាត់នៅចម្ងាយខ្លះពីយន្តហោះដែលព្យាករណ៍។ ចូរគូរបន្ទាត់ត្រង់ពីចំណុចកណ្តាលនៃតំណកាត់តាមពាក់កណ្តាលការ៉េ (ភីកសែល) នៃយន្តហោះព្យាករ។ នេះ​នឹង​ជា​កាំរស្មី​ដាន​ខាងក្រោយ​ចម្បង។ ប្រសិនបើបន្ទាត់ត្រង់នៃកាំរស្មីនេះប៉ះវត្ថុមួយ ឬច្រើននោះ សូមជ្រើសរើសចំណុចប្រសព្វដែលនៅជិតបំផុត។ ដើម្បីកំណត់ពណ៌នៃភីកសែលរូបភាព ចាំបាច់ត្រូវគិតគូរពីលក្ខណៈសម្បត្តិរបស់វត្ថុ ក៏ដូចជាប្រភេទណាដែលវិទ្យុសកម្មពន្លឺធ្លាក់លើចំណុចដែលត្រូវគ្នានៃវត្ថុ។

ប្រសិនបើវត្ថុមានលក្ខណៈជាក់លាក់ (យ៉ាងហោចណាស់ដោយផ្នែក) នោះយើងបង្កើតកាំរស្មីបន្ទាប់បន្សំ - កាំរស្មីឧប្បត្តិហេតុ ដោយពិចារណាលើកាំរស្មីបឋមដែលតាមដានពីមុនជាកាំរស្មីឆ្លុះបញ្ចាំង។ ខាងលើ យើងបានពិចារណាពីការឆ្លុះបញ្ចាំងជាក់លាក់ និងទទួលបានរូបមន្តសម្រាប់វ៉ិចទ័រកាំរស្មីដែលបានឆ្លុះបញ្ចាំងដែលបានផ្តល់ឱ្យវ៉ិចទ័រកាំរស្មីធម្មតា និងឧប្បត្តិហេតុ។ ប៉ុន្តែនៅទីនេះយើងដឹងពីវ៉ិចទ័រនៃធ្នឹមឆ្លុះបញ្ចាំង ប៉ុន្តែតើធ្វើដូចម្តេចដើម្បីស្វែងរកវ៉ិចទ័រនៃធ្នឹមឧប្បត្តិហេតុ? ដើម្បីធ្វើដូចនេះអ្នកអាចប្រើរូបមន្តឆ្លុះបញ្ចាំងពិសេសដូចគ្នា ប៉ុន្តែការបញ្ជាក់វ៉ិចទ័រកាំរស្មីឧប្បត្តិហេតុដែលត្រូវការជាកាំរស្មីឆ្លុះបញ្ចាំង។ នោះគឺការឆ្លុះបញ្ចាំងផ្ទុយ ខ្ញុំ

សម្រាប់កញ្ចក់ដ៏ល្អមួយ វាគឺគ្រប់គ្រាន់ដើម្បីតាមដានតែចំណុចប្រសព្វបន្ទាប់នៃធ្នឹមបន្ទាប់បន្សំជាមួយនឹងវត្ថុមួយចំនួន។ កញ្ចក់ដែលមិនសមហេតុផលធ្វើឱ្យស្មុគស្មាញដល់ការតាមដានយ៉ាងខ្លាំង - វាចាំបាច់ក្នុងការតាមដានមិនមែនមួយទេ ប៉ុន្តែជាកាំរស្មីឧប្បត្តិហេតុជាច្រើន ហើយគិតគូរពីការរួមចំណែកនៃវិទ្យុសកម្មពីវត្ថុផ្សេងទៀតដែលអាចមើលឃើញពីចំណុចដែលបានផ្តល់ឱ្យ។

ប្រសិនបើវត្ថុមានតម្លាភាព នោះចាំបាច់ត្រូវបង្កើតកាំរស្មីថ្មីមួយ ដែលនៅពេលចំណាំងផ្លាត វានឹងផ្តល់ឱ្យកាំរស្មីដែលបានតាមដានពីមុន។ នៅទីនេះ អ្នកក៏អាចប្រើភាពបញ្ច្រាសបានដែរ ដែលវាមានសុពលភាពសម្រាប់ចំណាំងបែរផងដែរ។

ប្រសិនបើវត្ថុមួយមានលក្ខណៈសម្បត្តិនៃការឆ្លុះបញ្ចាំង និងចំណាំងបែរ នោះក្នុងករណីទូទៅ ដូចជាកញ្ចក់ដែលមិនសមស្រប ចាំបាច់ត្រូវតាមដានកាំរស្មីដែលចេញមកពីវត្ថុដែលមានទាំងអស់។ ចំពោះការឆ្លុះបញ្ចាំងដែលសាយភាយ អាំងតង់ស៊ីតេនៃពន្លឺដែលឆ្លុះបញ្ចាំងត្រូវបានគេដឹងថាសមាមាត្រទៅនឹងកូស៊ីនុសនៃមុំរវាងវ៉ិចទ័រកាំរស្មីពីប្រភពពន្លឺ និងធម្មតា។ នៅទីនេះ ប្រភពពន្លឺអាចជាវត្ថុណាមួយដែលអាចមើលឃើញពីចំណុចដែលបានផ្តល់ឱ្យ មានសមត្ថភាពបញ្ជូនថាមពលពន្លឺ។

នៅពេលដែលវាប្រែចេញ; ថាកាំរស្មីតាមដានបច្ចុប្បន្នមិនកាត់វត្ថុណាមួយទេ ប៉ុន្តែចូលទៅក្នុងកន្លែងទំនេរ បន្ទាប់មកការតាមដានសម្រាប់កាំរស្មីនេះបញ្ចប់។

អង្ករ។ 14.1 ឧទាហរណ៍នៃការតាមដានកាំរស្មីបញ្ច្រាស។

ការតាមដានកាំរស្មីនៅក្នុងទម្រង់ដែលយើងបានពិចារណានៅទីនេះ ទោះបីជាវាកាត់បន្ថយការរាប់បញ្ចូលក៏ដោយ មិនអនុញ្ញាតឱ្យកម្ចាត់ចោលនូវចំនួនកាំរស្មីដែលបានវិភាគនោះទេ។ ជាការពិតណាស់ វិធីសាស្រ្តនេះធ្វើឱ្យវាអាចទទួលបានកាំរស្មី backtracing បឋមតែមួយភ្លាមៗសម្រាប់ចំណុចរូបភាពនីមួយៗ។ ទោះយ៉ាងណាក៏ដោយ វាអាចមានចំនួនគ្មានកំណត់នៃកាំរស្មីឆ្លុះបញ្ចាំងបន្ទាប់បន្សំ។ ដូច្នេះ ជាឧទាហរណ៍ ប្រសិនបើវត្ថុមួយអាចឆ្លុះពន្លឺពីវត្ថុណាមួយផ្សេងទៀត ហើយប្រសិនបើវត្ថុផ្សេងទៀតទាំងនេះមានទំហំធំល្មមនោះ តើចំណុចណាខ្លះនៃវត្ថុដែលបញ្ចេញពន្លឺគួរត្រូវយកមកពិចារណាដើម្បីបង្កើតកាំរស្មីដែលត្រូវគ្នា ឧទាហរណ៍ នៅក្នុងការឆ្លុះបញ្ចាំងដែលសាយភាយ? ច្បាស់ណាស់ចំណុចទាំងអស់។

របៀបដែលការតាមដានកាំរស្មីដំណើរការ៖

1. កាំរស្មីស្រមៃត្រូវបានបញ្ចេញចេញពីភ្នែករបស់អ្នកសង្កេតតាមរយៈភីកសែលអេក្រង់មួយចំនួន ហើយផ្លូវរបស់វាត្រូវបានតាមដានរហូតដល់វាប្រសព្វវត្ថុ។

2. ពីចំនុចទីមួយនៃចំនុចប្រសព្វនៃធ្នឹមជាមួយនឹងស្វ៊ែរ ធ្នឹមឆ្លុះបញ្ចាំងមួយត្រូវបានបញ្ចេញ។ ទុកឱ្យផ្ទៃស្រអាប់។ បន្ទាប់មកយើងមិនគូរកាំរស្មីឆ្លុះបញ្ចាំងទេ។ យើងកំណត់កាំរស្មីស្រមោលពីចំណុចប្រសព្វទៅប្រភពពន្លឺ។ ដោយសារកាំរស្មីនេះមិនឆ្លងកាត់ផ្ទៃស្រអាប់ផ្សេងទៀត ប្រភពពន្លឺប៉ះពាល់ដោយផ្ទាល់ទៅលើអាំងតង់ស៊ីតេនៃការបំភ្លឺនៅចំណុចដែលបានផ្តល់ឱ្យ។

3. សូមអោយធ្នឹមដែលឆ្លុះមកកាត់វត្ថុមួយផ្សេងទៀត ពេលនេះជាលំហថ្លាដែលឆ្លុះបញ្ចាំង និងបញ្ជូនពន្លឺ។ កាំរស្មីដែលឆ្លុះ និងឆ្លុះត្រូវបានបញ្ចេញ រួមជាមួយនឹងកាំរស្មីស្រមោលដែលឆ្ពោះទៅរកប្រភពពន្លឺ។ ធ្នឹមបញ្ជូនផ្លាស់ប្តូរទិសដៅរបស់វាមុននិងក្រោយពេលចូលទៅក្នុងស្វ៊ែរស្របតាមឥទ្ធិពលនៃចំណាំងបែរ។

4. សូមអោយចំនុចដែលកាំរស្មីឆ្លងកាត់លំហ មិនត្រូវបានបំភ្លឺដោយប្រភពដោយផ្ទាល់ទេ ព្រោះផ្លូវរបស់កាំរស្មីស្រមោលត្រូវបានបិទដោយផ្ទៃស្រអាប់។ ប្រសិនបើកន្លែងកើតហេតុមានប្រភពពន្លឺច្រើន នោះកាំរស្មីស្រមោលនឹងត្រូវបញ្ចូលទៅក្នុងពួកវានីមួយៗ។

5. ឥទ្ធិពលនៃកាំរស្មីទាំងអស់ដែលបានបង្កើតយ៉ាងច្បាស់ឬដោយប្រយោលដោយប្រើកាំរស្មីដំបូងត្រូវបានសង្ខេបហើយលទ្ធផលកំណត់តម្លៃ RGB នៃចំណុចនេះ។

នៅ Gamescom 2018 Nvidia បានប្រកាសស៊េរីនៃកាតក្រាហ្វិក Nvidia GeForce RTX ដែលនឹងគាំទ្របច្ចេកវិទ្យា Nvidia RTX real-time ray tracing technology។ អ្នកកែសម្រួលរបស់យើងបានស្វែងយល់ពីរបៀបដែលបច្ចេកវិទ្យានេះនឹងដំណើរការ និងហេតុអ្វីបានជាវាត្រូវការ។

តើ Nvidia RTX ជាអ្វី?

Nvidia RTX គឺជាវេទិកាមួយដែលមានឧបករណ៍មានប្រយោជន៍ជាច្រើនសម្រាប់អ្នកអភិវឌ្ឍន៍ដែលបើកការចូលទៅកាន់កម្រិតថ្មីនៃក្រាហ្វិកកុំព្យូទ័រ។ Nvidia RTX គឺអាចប្រើបានសម្រាប់តែជំនាន់ថ្មីនៃកាតក្រាហ្វិក Nvidia GeForce RTX ដោយផ្អែកលើស្ថាបត្យកម្ម Turing ។ លក្ខណៈសំខាន់នៃវេទិកាគឺលទ្ធភាព ការតាមដានកាំរស្មីពេលវេលាពិត(ហៅផងដែរថាការតាមដានកាំរស្មី) ។

តើការតាមដានកាំរស្មីគឺជាអ្វី?

ការតាមដានកាំរស្មីគឺជាលក្ខណៈពិសេសដែលអនុញ្ញាតឱ្យអ្នកក្លែងធ្វើឥរិយាបទនៃពន្លឺដោយបង្កើតពន្លឺគួរឱ្យជឿ។ ឥឡូវនេះនៅក្នុងហ្គេម កាំរស្មីមិនផ្លាស់ទីក្នុងពេលវេលាជាក់ស្តែងទេ ដែលនេះជាមូលហេតុដែលរូបភាពទោះបីជាវាមើលទៅស្រស់ស្អាតជាញឹកញាប់ក៏ដោយ ក៏នៅតែមិនមានភាពប្រាកដនិយមគ្រប់គ្រាន់ដែរ - បច្ចេកវិទ្យាដែលប្រើនាពេលបច្ចុប្បន្ននឹងត្រូវការធនធានយ៉ាងច្រើនសម្រាប់ការតាមដានកាំរស្មី។

នេះត្រូវបានកែតម្រូវដោយស៊េរីកាតក្រាហ្វិក Nvidia GeForce RTX ថ្មីដែលមានថាមពលគ្រប់គ្រាន់ដើម្បីគណនាផ្លូវនៃកាំរស្មី។

តើវាដំណើរការយ៉ាងដូចម្តេច?

RTX បញ្ចាំងកាំរស្មីនៃពន្លឺពីចំណុចនៃទិដ្ឋភាពរបស់អ្នកលេង (កាមេរ៉ា) ទៅលើលំហជុំវិញ ហើយគណនាតាមវិធីនេះថាតើពណ៌អ្វីដែលភីកសែលគួរលេចឡើង។ នៅពេលដែលធ្នឹមប៉ះអ្វីមួយ ពួកគេអាច៖

  • ឆ្លុះបញ្ចាំង - នេះនឹងធ្វើឱ្យរូបរាងនៃការឆ្លុះបញ្ចាំងលើផ្ទៃ;
  • បញ្ឈប់ - នេះនឹងបង្កើតស្រមោលនៅផ្នែកម្ខាងនៃវត្ថុដែលពន្លឺមិនបានប៉ះ
  • ចំណាំងបែរ - នេះនឹងផ្លាស់ប្តូរទិសដៅនៃធ្នឹមឬប៉ះពាល់ដល់ពណ៌។
វត្តមាននៃមុខងារទាំងនេះអនុញ្ញាតឱ្យអ្នកបង្កើតពន្លឺដែលគួរឱ្យជឿនិងក្រាហ្វិកជាក់ស្តែង។ ដំណើរការនេះគឺពឹងផ្អែកខ្លាំងលើធនធាន ហើយត្រូវបានប្រើប្រាស់ជាយូរមកហើយក្នុងការបង្កើតបែបផែនភាពយន្ត។ ភាពខុសប្លែកគ្នាតែមួយគត់គឺថានៅពេលបង្ហាញស៊ុមនៃខ្សែភាពយន្តមួយ អ្នកនិពន្ធមានលទ្ធភាពប្រើប្រាស់ធនធានយ៉ាងច្រើន ហើយវាអាចចាត់ទុកថាជារយៈពេលគ្មានដែនកំណត់។ នៅក្នុងហ្គេម ឧបករណ៍នេះមានប្រភាគនៃវិនាទីដើម្បីបង្កើតរូបភាព ហើយកាតវីដេអូត្រូវបានប្រើជាញឹកញាប់បំផុតមួយ និងមិនច្រើន ដូចជានៅក្នុងដំណើរការនៃរូបភាពចលនា។

នេះបានជំរុញឱ្យ Nvidia ណែនាំស្នូលបន្ថែមនៅក្នុងកាតក្រាហ្វិក GeForce RTX ដែលនឹងទទួលយកបន្ទុកការងារភាគច្រើន ធ្វើឱ្យដំណើរការប្រសើរឡើង។ ពួកគេក៏ត្រូវបានបំពាក់ដោយបញ្ញាសិប្បនិម្មិតផងដែរ ដែលភារកិច្ចរបស់ពួកគេគឺដើម្បីគណនាកំហុសដែលអាចកើតមានក្នុងអំឡុងពេលដំណើរការតាមដាន ដែលនឹងជួយជៀសវាងពួកគេជាមុន។ នេះ, ដូចដែលអ្នកអភិវឌ្ឍន៍បាននិយាយថា, ក៏នឹងបង្កើនល្បឿននៃការងារ។

ហើយតើការតាមដានកាំរស្មីប៉ះពាល់ដល់គុណភាពយ៉ាងដូចម្តេច?

ក្នុងអំឡុងពេលនៃការបង្ហាញកាតក្រាហ្វិក Nvidia បានបង្ហាញពីឧទាហរណ៍មួយចំនួននៃរបៀបដែលការតាមដានកាំរស្មីដំណើរការ: ជាពិសេសវាត្រូវបានគេដឹងថាហ្គេមនាពេលខាងមុខមួយចំនួនរួមទាំង Shadow of the Tomb Raider និង Battlefield 5 នឹងដំណើរការនៅលើវេទិកា RTX ។ ទោះជាយ៉ាងណាក៏ដោយ មុខងារនេះនឹងក្លាយជាជម្រើសនៅក្នុងហ្គេម ដោយសារកាតវីដេអូថ្មីមួយគឺត្រូវការសម្រាប់ការតាមដាន។ ឈុតខ្លីៗដែលបង្ហាញដោយក្រុមហ៊ុនក្នុងអំឡុងពេលធ្វើបទបង្ហាញអាចមើលខាងក្រោម៖

Shadow of the Tomb Raider ដែលនឹងចេញនៅថ្ងៃទី 14 ខែកញ្ញាឆ្នាំនេះ៖

Battlefield 5 ដែលនឹងចេញនៅថ្ងៃទី 19 ខែតុលា៖

Metro Exodus ដែលគ្រោងនឹងចេញផ្សាយនៅថ្ងៃទី 19 ខែកុម្ភៈ ឆ្នាំ 2019៖

ការគ្រប់គ្រង ដែលមិនទាន់មានកាលបរិច្ឆេទចេញផ្សាយនៅឡើយ៖

ទន្ទឹមនឹងនោះ Nvidia ហ្គេមអ្វីផ្សេងទៀតនឹងទទួលបានការតាមដានកាំរស្មី។

តើធ្វើដូចម្តេចដើម្បីបើក RTX?

ដោយសារតែលក្ខណៈបច្ចេកទេសនៃបច្ចេកវិទ្យានេះ មានតែកាតវីដេអូដែលមានស្ថាបត្យកម្ម Turing ប៉ុណ្ណោះដែលនឹងគាំទ្រការតាមដានកាំរស្មី - ឧបករណ៍ដែលមាននាពេលបច្ចុប្បន្ននេះមិនអាចទប់ទល់នឹងចំនួនការងារដែលត្រូវការការតាមដានបានទេ។ នៅពេលនេះ កាតវីដេអូតែមួយគត់ដែលមានស្ថាបត្យកម្មនេះគឺស៊េរី Nvidia GeForce RTX ម៉ូដែលដែលអាចរកបានសម្រាប់ការបញ្ជាទិញជាមុនពី 48,000 ទៅ 96,000 រូប្លិ៍។

តើមាន analogues សម្រាប់ AMD ទេ?

AMD មានបំរែបំរួលផ្ទាល់ខ្លួននៃបច្ចេកវិទ្យាតាមដានកាំរស្មីតាមពេលវេលាជាក់ស្តែង ដែលមានវត្តមាននៅក្នុងម៉ាស៊ីន Radeon ProRender របស់ពួកគេ។ ក្រុមហ៊ុនបានប្រកាសពីការអភិវឌ្ឍន៍របស់ខ្លួនឡើងវិញនៅ GDC 2018 ដែលបានកើតឡើងក្នុងខែមីនា។ ភាពខុសគ្នាចំបងរវាងវិធីសាស្ត្រ AMD និង Nvidia គឺថា AMD ផ្តល់ការចូលប្រើមិនត្រឹមតែការតាមដានប៉ុណ្ណោះទេ ប៉ុន្តែថែមទាំង rasterization ដែលជាបច្ចេកវិទ្យាដែលឥឡូវនេះត្រូវបានប្រើប្រាស់នៅក្នុងហ្គេមទាំងអស់។ នេះអនុញ្ញាតឱ្យអ្នកទាំងពីរប្រើការតាមដាន ទទួលបានពន្លឺកាន់តែប្រសើរ និងសន្សំធនធាននៅកន្លែងដែលការតាមដាននឹងជាបន្ទុកមិនចាំបាច់នៅលើកាតវីដេអូ។

បច្ចេកវិទ្យាដែលនឹងដំណើរការលើ Vulkan API នៅតែស្ថិតក្នុងការអភិវឌ្ឍន៍នៅឡើយ។

ដូចដែល Nvidia បាននិយាយក្នុងអំឡុងពេលធ្វើបទបង្ហាញរបស់ខ្លួន ការអភិវឌ្ឍន៍បច្ចេកវិទ្យា RTX នឹងធ្វើអោយប្រសើរឡើងនូវសមាសធាតុក្រាហ្វិកនៃហ្គេម ដោយពង្រីកឧបករណ៍ដែលមានសម្រាប់អ្នកអភិវឌ្ឍន៍។ ទោះជាយ៉ាងណាក៏ដោយ វាលឿនពេកក្នុងការនិយាយអំពីបដិវត្តក្រាហ្វិកទូទៅ មិនមែនហ្គេមទាំងអស់នឹងគាំទ្របច្ចេកវិទ្យានេះទេ ហើយតម្លៃនៃកាតវីដេអូជាមួយនឹងការគាំទ្ររបស់វាគឺខ្ពស់ណាស់។ ការបង្ហាញកាតវីដេអូថ្មីមានន័យថាមានការរីកចម្រើននៅក្នុងព័ត៌មានលម្អិតក្រាហ្វិក ហើយយូរ ៗ ទៅវានឹងកើនឡើងនិងរីកចម្រើន។

ការណែនាំ

មានវិធីសាស្រ្តជាច្រើនសម្រាប់បង្កើតរូបភាពជាក់ស្តែង ដូចជាការតាមដានកាំរស្មីទៅមុខ (ការតាមដានរូបថត) និងការតាមដានកាំរស្មីខាងក្រោយ។

វិធីសាស្ត្រតាមដានកាំរស្មីត្រូវបានចាត់ទុកថាជាវិធីសាស្ត្រដ៏មានឥទ្ធិពលបំផុត និងអាចប្រើប្រាស់បានសម្រាប់បង្កើតរូបភាពជាក់ស្តែងនាពេលបច្ចុប្បន្ននេះ។ មានឧទាហរណ៍ជាច្រើននៃការអនុវត្តក្បួនដោះស្រាយការតាមដានសម្រាប់ការបង្ហាញដែលមានគុណភាពខ្ពស់នៃឈុតឆាកបីវិមាត្រដ៏ស្មុគស្មាញបំផុត។ វាអាចត្រូវបានកត់សម្គាល់ថាភាពជាសកលនៃវិធីសាស្រ្តតាមដានគឺភាគច្រើនដោយសារតែការពិតដែលថាពួកគេត្រូវបានផ្អែកលើគំនិតសាមញ្ញនិងច្បាស់លាស់ដែលឆ្លុះបញ្ចាំងពីបទពិសោធន៍របស់យើងក្នុងការយល់ឃើញពិភពលោកជុំវិញយើង។

វត្ថុជុំវិញខ្លួនយើង មានលក្ខណៈសម្បត្តិដូចខាងក្រោម ទាក់ទងនឹងពន្លឺ៖

បញ្ចេញកាំរស្មី;

ឆ្លុះបញ្ចាំងនិងស្រូបយក;

ឆ្លងកាត់ខ្លួនឯង។

លក្ខណៈសម្បត្តិទាំងនេះនីមួយៗអាចត្រូវបានពិពណ៌នាដោយសំណុំនៃលក្ខណៈមួយចំនួន។

វិទ្យុសកម្មអាចត្រូវបានកំណត់ដោយអាំងតង់ស៊ីតេនិងវិសាលគម។

ទ្រព្យសម្បត្តិនៃការឆ្លុះបញ្ចាំង (ការស្រូបយក) អាចត្រូវបានពិពណ៌នាដោយលក្ខណៈនៃការសាយភាយនិងការឆ្លុះបញ្ចាំងជាក់លាក់។ តម្លាភាពអាចត្រូវបានពិពណ៌នាដោយការបន្ថយអាំងតង់ស៊ីតេ និងចំណាំងបែរ។

កាំរស្មីនៃពន្លឺបញ្ចេញចេញពីចំណុចនៅលើផ្ទៃ (បរិមាណ) នៃវត្ថុវិទ្យុសកម្ម។ កាំរស្មីបែបនេះអាចត្រូវបានគេហៅថាបឋម - ពួកគេបំភ្លឺអ្វីៗផ្សេងទៀត។ កាំរស្មីបឋមរាប់មិនអស់បញ្ចេញចេញពីប្រភពវិទ្យុសកម្មក្នុងទិសដៅផ្សេងៗ។ កាំរស្មីខ្លះចូលទៅក្នុងកន្លែងទំនេរ ហើយខ្លះទៀតធ្លាក់លើវត្ថុផ្សេងទៀត។

ជាលទ្ធផលនៃសកម្មភាពនៃកាំរស្មីបឋមទៅលើវត្ថុ កាំរស្មីបន្ទាប់បន្សំកើតឡើង។ ពួកគេខ្លះបញ្ចប់ដោយវត្ថុផ្សេងទៀត។ ដូច្នេះ ការឆ្លុះបញ្ចាំងម្តងហើយម្តងទៀត និងចំណាំងផ្លាត កាំរស្មីពន្លឺបុគ្គលមកដល់ចំណុចនៃការសង្កេត។ ដូច្នេះរូបភាពនៃកន្លែងកើតហេតុត្រូវបានបង្កើតឡើងដោយសំណុំនៃកាំរស្មីពន្លឺមួយចំនួន។

ពណ៌នៃចំណុចនីមួយៗនៃរូបភាពត្រូវបានកំណត់ដោយវិសាលគម និងអាំងតង់ស៊ីតេនៃកាំរស្មីបឋមនៃប្រភពវិទ្យុសកម្ម ក៏ដូចជាការស្រូបយកថាមពលពន្លឺនៅក្នុងវត្ថុដែលបានជួបប្រទះនៅក្នុងផ្លូវនៃកាំរស្មីដែលត្រូវគ្នា។

ការអនុវត្តដោយផ្ទាល់នៃគំរូកាំរស្មីនៃការថតរូបភាពនេះគឺពិបាកណាស់។ អ្នកអាចព្យាយាមបង្កើតក្បួនដោះស្រាយសំណង់រូបភាពតាមវិធីដែលបានបញ្ជាក់។ ក្នុង​ក្បួន​ដោះស្រាយ​បែប​នេះ វា​ជា​ការ​ចាំបាច់​ក្នុង​ការ​រាប់​បញ្ចូល​កាំរស្មី​បឋម​ទាំងអស់ និង​កំណត់​ថា​អ្នក​ដែល​ប៉ះ​នឹង​វត្ថុ និង​កាមេរ៉ា។ បន្ទាប់មក ធ្វើម្តងទៀតលើកាំរស្មីបន្ទាប់បន្សំទាំងអស់ ហើយត្រូវគិតតែពីវត្ថុដែលប៉ះនឹងវត្ថុ និងកាមេរ៉ាប៉ុណ្ណោះ។ ល​ល។ ក្បួនដោះស្រាយនេះត្រូវបានគេហៅថា ការតាមដានកាំរស្មីផ្ទាល់។ គុណវិបត្តិចម្បងនៃវិធីសាស្រ្តនេះគឺប្រតិបត្តិការដែលមិនចាំបាច់ជាច្រើនដែលត្រូវបានផ្សារភ្ជាប់ជាមួយនឹងការគណនាកាំរស្មីដែលបន្ទាប់មកមិនត្រូវបានប្រើ។

1. ការតាមដានកាំរស្មីបញ្ច្រាស

ការងារនេះត្រូវបានឧទ្ទិសដល់វិធីសាស្រ្តនៃការបង្កើតរូបភាពជាក់ស្តែងនេះ។

វិធីសាស្រ្តនៃការតាមដានកាំរស្មីបញ្ច្រាសអាចកាត់បន្ថយយ៉ាងខ្លាំងនូវការស្វែងរកកាំរស្មីពន្លឺ។ វិធីសាស្រ្តនេះត្រូវបានបង្កើតឡើងក្នុងទសវត្សរ៍ទី 80 ស្នាដៃរបស់ Whitted និង Kay ត្រូវបានចាត់ទុកថាជាមូលដ្ឋាន។ យោងតាមវិធីសាស្រ្តនេះការតាមដានកាំរស្មីត្រូវបានអនុវត្តមិនមែនមកពីប្រភពពន្លឺនោះទេប៉ុន្តែក្នុងទិសដៅផ្ទុយ - ពីចំណុចនៃការសង្កេត។ តាមរបៀបនេះមានតែកាំរស្មីទាំងនោះដែលរួមចំណែកដល់ការបង្កើតរូបភាពត្រូវបានគេយកមកពិចារណា។

យន្តហោះ​ព្យាករ​ត្រូវ​បាន​បែង​ចែក​ជា​ច្រើន​ភីកសែល។ ចូរជ្រើសរើសការព្យាករកណ្តាលជាមួយមជ្ឈមណ្ឌលដែលបាត់នៅចម្ងាយខ្លះពីយន្តហោះដែលព្យាករណ៍។ គូរបន្ទាត់ត្រង់ពីចំណុចកណ្តាលដែលបាត់ទៅកណ្តាលភីកសែលនៃយន្តហោះព្យាករ។ នេះ​នឹង​ជា​កាំរស្មី​ដាន​ខាងក្រោយ​ចម្បង។ ប្រសិនបើកាំរស្មីនេះប៉ះវត្ថុមួយ ឬច្រើននោះ សូមជ្រើសរើសចំណុចប្រសព្វដែលនៅជិតបំផុត។ ដើម្បីកំណត់ពណ៌នៃភីកសែលរូបភាព ចាំបាច់ត្រូវគិតគូរពីលក្ខណៈសម្បត្តិរបស់វត្ថុ ក៏ដូចជាប្រភេទណាដែលវិទ្យុសកម្មពន្លឺធ្លាក់លើចំណុចដែលត្រូវគ្នានៃវត្ថុ។

ប្រសិនបើវត្ថុមានលក្ខណៈជាក់លាក់ (យ៉ាងហោចណាស់មួយផ្នែក) នោះយើងបង្កើតកាំរស្មីបន្ទាប់បន្សំ - កាំរស្មីឧប្បត្តិហេតុ ដោយពិចារណាលើកាំរស្មីបឋមដែលតាមដានពីមុនជាកាំរស្មីឆ្លុះបញ្ចាំង។

សម្រាប់កញ្ចក់ដ៏ល្អមួយ វាគឺគ្រប់គ្រាន់ដើម្បីតាមដានតែចំណុចបន្ទាប់នៃចំនុចប្រសព្វនៃធ្នឹមបន្ទាប់បន្សំជាមួយនឹងវត្ថុមួយចំនួន។ កញ្ចក់ដ៏ល្អមួយមានផ្ទៃប៉ូលារលោងឥតខ្ចោះ ដូច្នេះធ្នឹមឆ្លុះបញ្ចាំងមួយត្រូវគ្នាទៅនឹងធ្នឹមឧប្បត្តិហេតុតែមួយ។ កញ្ចក់អាចងងឹតបាន ពោលគឺស្រូបយកផ្នែកនៃថាមពលពន្លឺ ប៉ុន្តែច្បាប់នៅតែដដែល៖ ធ្នឹមមួយធ្លាក់ - មួយត្រូវបានឆ្លុះបញ្ចាំង។

ប្រសិនបើវត្ថុមានតម្លាភាព នោះចាំបាច់ត្រូវបង្កើតកាំរស្មីថ្មីមួយ ដែលនៅពេលចំណាំងផ្លាត វានឹងផ្តល់ឱ្យកាំរស្មីដែលបានតាមដានពីមុន។

ចំពោះការឆ្លុះបញ្ចាំងដែលសាយភាយ អាំងតង់ស៊ីតេនៃពន្លឺដែលឆ្លុះបញ្ចាំងត្រូវបានគេដឹងថាសមាមាត្រទៅនឹងកូស៊ីនុសនៃមុំរវាងវ៉ិចទ័រកាំរស្មីពីប្រភពពន្លឺ និងធម្មតា។

នៅពេលដែលវាបង្ហាញថាកាំរស្មីតាមដានខាងក្រោយបច្ចុប្បន្នមិនប្រសព្វវត្ថុណាមួយទេ ប៉ុន្តែចូលទៅក្នុងកន្លែងទំនេរ បន្ទាប់មកការតាមដានសម្រាប់កាំរស្មីនេះបញ្ចប់។

នៅក្នុងការអនុវត្តជាក់ស្តែងនៃវិធីសាស្ត្រតាមដានខាងក្រោយ ការរឹតបន្តឹងត្រូវបានណែនាំ។ ពួកគេមួយចំនួនគឺចាំបាច់ដើម្បីអាចដោះស្រាយបញ្ហានៃការសំយោគរូបភាពជាគោលការណ៍ ហើយការរឹតបន្តឹងមួយចំនួនអាចបង្កើនល្បឿននៃការតាមដានយ៉ាងខ្លាំង។

ការរឹតបន្តឹងនៅពេលអនុវត្តការតាមដាន

ក្នុង​ចំណោម​វត្ថុ​គ្រប់​ប្រភេទ យើង​នឹង​ដាក់​ចេញ​ខ្លះ​ៗ ដែល​យើង​នឹង​ហៅ​ថា​ប្រភព​ពន្លឺ។ ប្រភព​ពន្លឺ​អាច​បញ្ចេញ​ពន្លឺ​បាន​តែ​ប៉ុណ្ណោះ ពួកគេ​មិន​អាច​ឆ្លុះ​បញ្ចាំង ឬ​ឆ្លុះ​ពន្លឺ​បាន​ទេ។ យើងនឹងពិចារណាតែប្រភពពន្លឺចំណុចប៉ុណ្ណោះ។

លក្ខណៈសម្បត្តិនៃផ្ទៃឆ្លុះត្រូវបានពិពណ៌នាដោយផលបូកនៃសមាសធាតុពីរ - សាយភាយ និងទស្សន៍ទាយ។

នៅក្នុងវេន, specularity ក៏ត្រូវបានពិពណ៌នាដោយសមាសភាគពីរ។ ទីមួយ (ការឆ្លុះបញ្ចាំង) គិតពីការឆ្លុះបញ្ចាំងពីវត្ថុផ្សេងទៀតដែលមិនមែនជាប្រភពពន្លឺ។ មានតែកាំរស្មី r ដែលឆ្លុះបញ្ចាំងយ៉ាងជាក់លាក់មួយប៉ុណ្ណោះដែលត្រូវបានបង្កើតឡើងសម្រាប់ការតាមដានបន្ថែមទៀត។ សមាសភាគទីពីរ (ជាក់លាក់) មានន័យថាការបន្លិចពីប្រភពពន្លឺ។ ដើម្បីធ្វើដូច្នេះ កាំរស្មីត្រូវបានដឹកនាំទៅកាន់ប្រភពពន្លឺទាំងអស់ ហើយមុំដែលបង្កើតឡើងដោយកាំរស្មីទាំងនេះជាមួយនឹងកាំរស្មី back-tracing ray (r) ត្រូវបានកំណត់យ៉ាងជាក់លាក់។ នៅក្នុងការឆ្លុះកញ្ចក់ ពណ៌នៃចំណុចផ្ទៃត្រូវបានកំណត់ដោយពណ៌ដើមនៃអ្វីដែលកំពុងឆ្លុះបញ្ចាំង។

ជាមួយនឹងការឆ្លុះបញ្ចាំងដែលសាយភាយ មានតែកាំរស្មីពីប្រភពពន្លឺប៉ុណ្ណោះដែលត្រូវយកមកពិចារណា។ កាំរស្មីពីផ្ទៃដែលឆ្លុះបញ្ចាំងយ៉ាងជាក់លាក់មិនត្រូវបានអើពើ។ ប្រសិនបើធ្នឹមដែលតម្រង់ទៅប្រភពពន្លឺមួយត្រូវបានគ្របដណ្ដប់ដោយវត្ថុមួយផ្សេងទៀត នោះចំនុចនៃវត្ថុនេះស្ថិតនៅក្នុងស្រមោល។ នៅក្នុងការឆ្លុះបញ្ចាំងដែលសាយភាយ ពណ៌នៃចំណុចបំភ្លឺលើផ្ទៃមួយត្រូវបានកំណត់ដោយពណ៌ខាងក្នុងនៃផ្ទៃ និងពណ៌នៃប្រភពពន្លឺ។

ចំពោះវត្ថុដែលមានតម្លាភាព (តម្លាភាព) ការពឹងផ្អែកនៃសន្ទស្សន៍ចំណាំងបែរលើប្រវែងរលកមិនត្រូវបានគេយកមកពិចារណាទេ។ (ជួនកាលតម្លាភាពជាទូទៅត្រូវបានយកគំរូតាមដោយគ្មានចំណាំងបែរ ពោលគឺទិសដៅនៃធ្នឹមឆ្លុះ t ស្របគ្នានឹងទិសដៅនៃធ្នឹមឧប្បត្តិហេតុ។ )

ដើម្បីពិចារណាលើការបំភ្លឺរបស់វត្ថុដោយពន្លឺដែលរាយប៉ាយដោយវត្ថុផ្សេងទៀត សមាសធាតុផ្ទៃខាងក្រោយ (បរិយាកាស) ត្រូវបានណែនាំ។

ដើម្បីបញ្ចប់ការតាមដាន ការដាក់កម្រិតលើចំនួននៃការធ្វើឡើងវិញ (ជម្រៅនៃការកើតឡើងវិញ) ត្រូវបានណែនាំ។

សេចក្តីសន្និដ្ឋានអំពីវិធីសាស្ត្រតាមដានខាងក្រោយ

គុណសម្បត្តិ៖

ភាពជាសកលនៃវិធីសាស្រ្ត ការអនុវត្តរបស់វាសម្រាប់ការសំយោគរូបភាពនៃគ្រោងការណ៍លំហស្មុគស្មាញ។ បញ្ចូលច្បាប់ជាច្រើននៃអុបទិកធរណីមាត្រ។ វាគ្រាន់តែជាការព្យាករណ៍ផ្សេងៗគ្នា។

សូម្បីតែកំណែកាត់នៃវិធីសាស្ត្រនេះអនុញ្ញាតឱ្យទទួលបានរូបភាពជាក់ស្តែង។ ជាឧទាហរណ៍ ប្រសិនបើយើងដាក់កម្រិតខ្លួនយើងត្រឹមតែកាំរស្មីបឋម (ពីចំណុចនៃការព្យាករ) នោះលទ្ធផលនេះក្នុងការដកចេញនូវចំនុចដែលមើលមិនឃើញ។ ការតាមដានកាំរស្មីបន្ទាប់បន្សំមួយ ឬពីរផ្តល់ស្រមោល តម្លាភាពជាក់លាក់។

ការបំប្លែងកូអរដោនេទាំងអស់គឺលីនេអ៊ែរ ដូច្នេះវាងាយស្រួលក្នុងការធ្វើការជាមួយវាយនភាព។

គុណវិបត្តិ៖

បញ្ហាជាមួយនឹងការបង្ហាញគំរូ ការឆ្លុះបញ្ចាំង និងការឆ្លុះបញ្ចាំង។

សម្រាប់ចំណុចនីមួយៗនៃរូបភាព ប្រតិបត្តិការគណនាជាច្រើនត្រូវតែអនុវត្ត។ ការតាមដានគឺជាក្បួនដោះស្រាយការសំយោគរូបភាពយឺតបំផុតមួយ។

2. ផ្នែករចនា

ក្បួនដោះស្រាយ។

ការតាមដានកាំរស្មីបញ្ច្រាស។

អង្ករ។ 1 - ដ្យាក្រាមប្លុកនៃក្បួនដោះស្រាយកើតឡើងដដែលៗសម្រាប់ការតាមដានកាំរស្មីបញ្ច្រាស

ភាសាសរសេរកម្មវិធីតាមដានកាំរស្មី

នៅក្នុងកម្មវិធីនេះ ក្បួនដោះស្រាយ backtrace ត្រូវបានអនុវត្តក្នុងលក្ខណៈដដែលៗ។ មុខងារសម្រាប់គណនាអាំងតង់ស៊ីតេនៃកាំរស្មីបឋម ហៅខ្លួនឯងឡើងវិញដើម្បីស្វែងរកអាំងតង់ស៊ីតេនៃកាំរស្មីដែលឆ្លុះបញ្ចាំង និងឆ្លុះបញ្ចាំង។

ក្បួនដោះស្រាយ៖

ដើម្បីគណនាពណ៌នៃភីកសែលនីមួយៗក្នុងស៊ុមសតិបណ្ដោះអាសន្ន ជំហានខាងក្រោមត្រូវបានអនុវត្ត៖

ស្វែងរកកូអរដោនេនៃភីកសែលនៅក្នុងប្រព័ន្ធកូអរដោនេពិភពលោក។

ស្វែងរកកូអរដោនេនៃកាំរស្មីបឋម។

ចាប់ផ្តើមមុខងារសម្រាប់ការគណនាអាំងតង់ស៊ីតេនៃធ្នឹមបឋម។

ស្វែងរកចំនុចប្រសព្វនៃកាំរស្មីដែលមានបុព្វបទទាំងអស់នៅក្នុងកន្លែងកើតហេតុ ហើយជ្រើសរើសមួយដែលនៅជិតបំផុត។

ប្រសិនបើផ្លូវប្រសព្វមិនត្រូវបានរកឃើញទេនោះកាំរស្មីបានចូលទៅក្នុងកន្លែងទំនេរ។

ដើម្បីគណនាពណ៌ យើងយកអាំងតង់ស៊ីតេសរុបស្មើនឹងអាំងតង់ស៊ីតេផ្ទៃខាងក្រោយ។ ទៅកាន់ជំហានទី 12 ។ ប្រសិនបើផ្លូវប្រសព្វត្រូវបានរកឃើញ សូមទៅកាន់ជំហានទី 6 ។

យើងគណនាអាំងតង់ស៊ីតេពណ៌ "មូលដ្ឋាន" នៃវត្ថុដែលចំណុចប្រសព្វជាកម្មសិទ្ធិ។ តាមរយៈអាំងតង់ស៊ីតេ "ក្នុងស្រុក" មានន័យថា អាំងតង់ស៊ីតេ គិតគូរពីអាំងតង់ស៊ីតេនៃពន្លឺដែលឆ្លុះបញ្ចាំងយ៉ាងសាយភាយ និងអាំងតង់ស៊ីតេនៃពន្លឺចាំង។

ប្រសិនបើសម្ភារៈឆ្លុះបញ្ចាំងពន្លឺបានតែសាយភាយ នោះយើងចាត់ទុកអាំងតង់ស៊ីតេនៃពន្លឺដែលឆ្លុះបញ្ចាំង និងចំណាំងបែរទៅជាសូន្យ។ ទៅកាន់ជំហានទី 12 ។ ផ្សេងទៀតទៅកាន់ជំហានទី 8 ។

ប្រសិនបើជំរៅអតិបរមានៃការប្រើឡើងវិញត្រូវបានឈានដល់ នោះយកអាំងតង់ស៊ីតេនៃពន្លឺដែលឆ្លុះបញ្ចាំង និងចំណាំងបែរទៅជាសូន្យ។ ទៅកាន់ជំហានទី 12 ។ ផ្សេងទៀតទៅកាន់ជំហានទី 9 ។

គណនាវ៉ិចទ័រនៃធ្នឹមដែលឆ្លុះបញ្ចាំង។ កំពុងដំណើរការការហៅឡើងវិញដើម្បីស្វែងរកអាំងតង់ស៊ីតេនៃធ្នឹមដែលឆ្លុះបញ្ចាំង។

គណនាវ៉ិចទ័រកាំរស្មីឆ្លុះបញ្ចាំង។ ដំណើរការ​ឡើងវិញ​ដើម្បី​ស្វែងរក​អាំងតង់ស៊ីតេ​នៃ​ធ្នឹម​ឆ្លុះ។

ការគណនាអាំងតង់ស៊ីតេពណ៌សរុប។ អាំងតង់ស៊ីតេសរុបរួមមាន អាំងតង់ស៊ីតេពន្លឺដែលខ្ចាត់ខ្ចាយ អាំងតង់ស៊ីតេក្នុងតំបន់ និងអាំងតង់ស៊ីតេនៃកាំរស្មីឆ្លុះបញ្ចាំង និងឆ្លុះបញ្ចាំង។

ត្រលប់ទៅចំណុចហៅនៃមុខងារគណនាអាំងតង់ស៊ីតេកាំរស្មី។

ប្រសិនបើកាំរស្មីបឋមត្រូវបានគណនា នោះភីកសែលនៃពណ៌ដែលបានគណនាត្រូវបានដាក់ក្នុងទ្រនាប់ស៊ុម។ ចូរបន្តទៅការគណនានៃភីកសែលបន្ទាប់នៃសតិបណ្ដោះអាសន្នស៊ុម។ ប្រសិនបើធ្នឹមឆ្លុះបញ្ចាំង (ចំណាំងផ្លាត) ត្រូវបានគណនា នោះអាំងតង់ស៊ីតេដែលបានគណនានឹងត្រូវយកទៅធ្វើជាអាំងតង់ស៊ីតេនៃធ្នឹមដែលឆ្លុះបញ្ចាំង (ឆ្លុះ) នៅជំហានរំលឹកឡើងវិញមុន។

ស្រមោលអគារ។

ស្រមោលរឹង។

ដើម្បីបង្កើតស្រមោលរឹងនៅក្នុងក្បួនដោះស្រាយការតាមដាន នៅដំណាក់កាលនៃការគណនាអាំងតង់ស៊ីតេពណ៌ "មូលដ្ឋាន" នៅចំណុចនៃវត្ថុ "ភាពមើលឃើញ" នៃប្រភពពន្លឺនីមួយៗពីចំណុចនេះត្រូវបានពិនិត្យ។

គោលការណ៍នៃក្បួនដោះស្រាយ។

កាំរស្មីដែលដឹកនាំទៅប្រភពពន្លឺត្រូវបានសាងសង់ពីចំណុចដែលបានសាកល្បង។

ការស្វែងរកត្រូវបានបង្កើតឡើងសម្រាប់ចំនុចប្រសព្វនៃកាំរស្មីនេះជាមួយនឹងទិដ្ឋភាពបឋមរវាងចំណុចដែលកំពុងត្រួតពិនិត្យ និងប្រភព។

ប្រសិនបើយ៉ាងហោចណាស់មានចំនុចប្រសព្វមួយត្រូវបានរកឃើញ នោះចំនុចដែលត្រូវពិនិត្យគឺស្ថិតនៅក្នុងស្រមោល។ នៅពេលគណនាពណ៌របស់វាប្រភពដែលការត្រួតពិនិត្យត្រូវបានអនុវត្តមិនត្រូវបានគេយកមកពិចារណាទេ។

ប្រភពដែលអាចផ្ទៀងផ្ទាត់បាន។

វិធីសាស្រ្តនៃការស្វែងរកស្រមោលនេះផ្តល់នូវលទ្ធផលដែលអាចទទួលយកបានដរាបណាមិនមានវត្ថុថ្លានៅក្នុងកន្លែងកើតហេតុ។ ទោះជាយ៉ាងណាក៏ដោយស្រមោលខ្មៅដ៏រឹងមាំនៃកញ្ចក់មើលទៅមិនប្រាកដនិយមទេ។ កញ្ចក់បញ្ជូនពន្លឺដោយផ្នែក ដូច្នេះអាំងតង់ស៊ីតេនៃប្រភពដែលបិទបាំងត្រូវតែយកមកពិចារណានៅពេលគណនាអាំងតង់ស៊ីតេនៃពន្លឺនៅចំណុចនៃវត្ថុ ប៉ុន្តែវាត្រូវតែត្រូវបានកាត់បន្ថយនៅពេលដែលពន្លឺឆ្លងកាត់កញ្ចក់។

ប្រវត្តិរូបវិទ្យា និងគណិតវិទ្យានៃក្បួនដោះស្រាយការតាមដានកាំរស្មីខាងក្រោយ។

ការបំភ្លឺ។

អាំងតង់ស៊ីតេនៃពន្លឺគឺជាផលបូកនៃអាំងតង់ស៊ីតេនៃអំពូល Backlight នៃកន្លែងកើតហេតុ អាំងតង់ស៊ីតេនៃពន្លឺដែលឆ្លុះបញ្ចាំងយ៉ាងសាយភាយនៃប្រភព អាំងតង់ស៊ីតេនៃពន្លឺចាំងពីប្រភព (លក្ខណៈបំភ្លឺ "ក្នុងស្រុក") អាំងតង់ស៊ីតេនៃពន្លឺជាក់លាក់។ ធ្នឹមឆ្លុះបញ្ចាំង និងអាំងតង់ស៊ីតេនៃធ្នឹមឆ្លុះបញ្ចាំង ប្រសិនបើមាន។

អាំងតង់ស៊ីតេនៃអំពូល Backlight (IA) ត្រូវបានផ្តល់ឱ្យដោយថេរមួយចំនួន។

អាំងតង់ស៊ីតេនៃពន្លឺដែលឆ្លុះបញ្ចាំងដោយសាយភាយ (ID) ត្រូវបានគណនាយោងទៅតាម "ច្បាប់កូស៊ីនុស" បុរាណ។

លេខសម្គាល់ = IL cos α,(2.2.1.6)

ដែល IL គឺជាអាំងតង់ស៊ីតេនៃប្រភពពន្លឺ α គឺជាមុំរវាងធម្មតាទៅផ្ទៃ និងទិសដៅទៅប្រភព។

នៅក្នុងករណីនៃការបំភ្លឺកន្លែងកើតហេតុជាមួយនឹងប្រភពជាច្រើន លេខសម្គាល់ត្រូវបានគណនាសម្រាប់ពួកវានីមួយៗ ហើយបន្ទាប់មកសង្ខេបឡើង។

IDi =Σ ILi cos αi.(2.2.1.7)

អាំងតង់ស៊ីតេនៃអណ្តាតភ្លើងពីប្រភព (IS) ត្រូវបានគណនាតាមគំរូ Phong ។

IS = IL cosp β,(2.2.1.8)

ដែល IL គឺជាអាំងតង់ស៊ីតេនៃប្រភពពន្លឺ (0<=IL<=1), β - угол между отраженным лучом от источника света и направлением на точку, в которой расположена камера (центр проекции), p - некоторая степень от 1 до 200 -влияет на размытость блика. При

នៅតម្លៃទាបនៃ p ការបន្លិចគឺកាន់តែព្រិល។

ដូចទៅនឹងការគណនាលេខសម្គាល់ដែរ នៅក្នុងករណីនៃការបំភ្លឺនៃកន្លែងកើតហេតុដោយប្រភពជាច្រើន IS ត្រូវបានគណនាដាច់ដោយឡែកសម្រាប់ប្រភពនីមួយៗ ហើយបន្ទាប់មកលទ្ធផលត្រូវបានបូកសរុប។

ISi = Σ ILi cosp β i.(2.2.1.9)

អាំងតង់ស៊ីតេនៃពន្លឺឆ្លុះបញ្ចាំង (IR) និងពន្លឺចាំង (IT) ត្រូវបានគណនាសម្រាប់កាំរស្មីដែលឆ្លុះបញ្ចាំង និងឆ្លុះបញ្ចាំងនៅជំហានបន្ទាប់នៃការបង្កើតឡើងវិញ។ ប្រសិនបើដែនកំណត់ជម្រៅនៃការប្រើឡើងវិញត្រូវបានឈានដល់ នោះអាំងតង់ស៊ីតេទាំងនេះត្រូវបានគេយកទៅជាសូន្យ។ ពីអាំងតង់ស៊ីតេនៃ IR, r ភាគរយត្រូវបានគេយកហើយពី IT - t = 1 - r (សូមមើលផ្នែកមុន) ។

លើសពីនេះ មេគុណខាងក្រោមត្រូវបានណែនាំ៖ KD - មេគុណនៃការឆ្លុះបញ្ចាំងលើផ្ទៃ KS - មេគុណពន្លឺ។ - មេគុណនេះគឺជាលក្ខណៈនៃភាពរដុបនៃផ្ទៃឆ្លុះបញ្ចាំង។ ភាពរដុបនៃផ្ទៃកាន់តែធំ ពន្លឺកាន់តែតិចត្រូវបានឆ្លុះបញ្ចាំងពីវាយ៉ាងជាក់លាក់ ហើយពន្លឺដែលវាបញ្ជូនកាន់តែតិច ហើយតាមនោះ ពន្លឺកាន់តែច្រើនវាឆ្លុះបញ្ចាំងកាន់តែសាយភាយ។<= KD <= 1.

នៅ KD = 0 - ពន្លឺទាំងអស់ដែលធ្លាក់លើផ្ទៃត្រូវបានឆ្លុះបញ្ចាំង និងឆ្លុះបញ្ចាំង។ KD = 1 - ពន្លឺទាំងអស់ត្រូវបានឆ្លុះបញ្ចាំងយ៉ាងសាយភាយ។ អាំងតង់ស៊ីតេនៃពន្លឺដែលឆ្លុះបញ្ចាំងយ៉ាងសាយភាយ និងអាំងតង់ស៊ីតេនៃអំពូល Backlight ត្រូវបានគុណនឹងកត្តានេះ។ អាំងតង់ស៊ីតេនៃពន្លឺដែលឆ្លុះបញ្ចាំង និងចំណាំងផ្លាតត្រូវបានគុណនឹង (1 - KD) មេគុណនេះទទួលខុសត្រូវចំពោះពន្លឺនៃពន្លឺចាំងពីប្រភព។ 0<=KS<=1.

នៅ KS = 0 - ការបន្លិចមិនអាចមើលឃើញទេ នៅ KS = 1 - ពន្លឺនៃការបន្លិចគឺអតិបរមា។

ដូច្នេះ រូបមន្តចុងក្រោយសម្រាប់គណនាអាំងតង់ស៊ីតេនៃវត្ថុនៅចំណុចមួយចំនួននឹងមើលទៅដូចនេះ៖

I = IAKD + ​​​Σ(ILiKDcos αi + ILiKScosp β i) + (1 - KD)(IRr + IT(1 - r)).(2.2.1.10)

គួរកត់សម្គាល់ថាអាំងតង់ស៊ីតេចុងក្រោយមិនគួរលើសពីមួយ។ ប្រសិនបើរឿងនេះកើតឡើង នោះចំណុចនៃរូបភាពនេះនឹងត្រូវបានលាតត្រដាងខ្លាំងពេក។ អាំងតង់ស៊ីតេរបស់វាត្រូវតែកំណត់ឡើងវិញដោយមួយ។

ដើម្បីទទួលបានរូបភាពពណ៌ វាចាំបាច់ក្នុងការអនុវត្តការគណនាដោយឡែកពីគ្នាសម្រាប់សមាសធាតុពន្លឺក្រហម បៃតង និងខៀវ។ ពណ៌នៃភីកសែលរូបភាពនឹងត្រូវបានគណនាដោយការគុណសមាសធាតុអាំងតង់ស៊ីតេនីមួយៗដោយលេខដែលកំណត់ចំនួនអតិបរមានៃកម្រិតអាំងតង់ស៊ីតេរូបភាព។ សម្រាប់រូបភាព 32 ប៊ីត វាស្មើនឹង 255 សម្រាប់ពណ៌នីមួយៗ (R, G, B)។

255*IR,= 255*IG,= 255*IB។

នៅទីនេះ IR (មិនត្រូវច្រឡំជាមួយនឹងអាំងតង់ស៊ីតេនៃពន្លឺដែលឆ្លុះបញ្ចាំងយ៉ាងជាក់លាក់) IG, IB គឺជាអាំងតង់ស៊ីតេនៃសមាសធាតុពន្លឺទាំងបីនៅចំណុចមួយ ដែលទទួលបានដោយរូបមន្តខាងលើ។

មេគុណ KD, KS, p គឺជាលក្ខណៈបុគ្គលនៃវត្ថុដែលឆ្លុះបញ្ចាំងពីលក្ខណៈសម្បត្តិរបស់វា។ លើសពីនេះទៀតមានមេគុណមួយបន្ថែមទៀត - absolute refractive index n. n = c/v ដែល c ជាល្បឿននៃពន្លឺក្នុងកន្លែងទំនេរ v ជាល្បឿននៃពន្លឺក្នុងឧបករណ៍ផ្ទុក (ខាងក្នុងវត្ថុ)។ សម្រាប់តួដែលស្រអាប់ទាំងស្រុង មេគុណនេះគឺស្មើនឹង ∞ (ដោយសារតែល្បឿននៃពន្លឺនៅខាងក្នុងរាងកាយគឺសូន្យ)។ ក្នុង​កម្មវិធី ដើម្បី​បញ្ជាក់​តួ​ដែល​ស្រអាប់​ទាំងស្រុង អ្នក​ត្រូវ​កំណត់​មេគុណ​នេះ >> 1 (ប្រហែល 10,000)។ ក្នុងករណីនេះ សមាមាត្រនៃពន្លឺដែលឆ្លុះបញ្ចាំងយ៉ាងជាក់លាក់ r នឹងមានទំនោរទៅជាឯកភាព ហើយចំណាំងបែររៀងៗខ្លួនទៅសូន្យ។

ការគណនាធម្មតា។

នៅក្នុងក្បួនដោះស្រាយការតាមដាន ភាពធម្មតាចំពោះវត្ថុគឺត្រូវការជាចាំបាច់ដើម្បីគណនាកាំរស្មីដែលឆ្លុះបញ្ចាំង និងចំណាំងផ្លាត ក៏ដូចជាដើម្បីកំណត់ការបំភ្លឺតាមគំរូ Phong ។

នៅក្នុងកម្មវិធីនេះ មានបុព្វបទបីប្រភេទ ដែលឈុតនេះត្រូវបានសាងសង់ឡើង។ ទាំងនេះគឺជាពហុកោណ (ត្រីកោណ) រាងពងក្រពើ និងប៉ារ៉ាបូអ៊ីត។ ពីរចុងក្រោយត្រូវបានណែនាំសម្រាប់ការក្លែងបន្លំពិតប្រាកដនៃកញ្ចក់មួយ (វាក៏អាចត្រូវបានសាងសង់ពីពហុកោណផងដែរ ប៉ុន្តែគំរូនឹងប្រែទៅជារដុបជាង)។

ការគណនាធម្មតាទៅជាពហុកោណ (ត្រីកោណ) ។

ការគណនានៃធម្មតាទៅជាត្រីកោណមួយត្រូវបានកាត់បន្ថយទៅជាប្រតិបត្តិការនៃគុណវ៉ិចទ័រ។ អនុញ្ញាតឱ្យត្រីកោណ ABC ត្រូវបានផ្តល់ឱ្យដោយកូអរដោនេនៃចំនុចកំពូលបីរបស់វា:

XA, YA, ZA, XB, YB, ZB, XC, YC, ZC ។

ចូរយើងគណនាកូអរដោនេនៃវ៉ិចទ័រពីរឧទាហរណ៍ AB និង AC៖

XB - XA,= XB - XA,

ZAB = XB - XA, (2.2.2.1)= XC - XA,= XC - XA,= XC - XA ។

កូអរដោនេវ៉ិចទ័រធម្មតានឹងត្រូវបានគណនាដោយប្រើរូបមន្ត៖

យ៉ាបហ្សាក់ - យ៉ាកហ្សាប,= ហ្សាបហ្សាក់ - អេកហ្សាប, (២.២.២.២)= ហ្សាប៊ីយ៉ាក - ហ្សាក់យ៉ាប។

មិនចាំបាច់គណនាកូអរដោណេនៃវ៉ិចទ័រធម្មតាទៅត្រីកោណរាល់ពេលនៅក្នុងតួដាននោះទេ ព្រោះថាធម្មតាគឺដូចគ្នានៅចំនុចណាមួយនៃត្រីកោណ។ វាគ្រប់គ្រាន់ក្នុងការរាប់ពួកវាម្តងក្នុងផ្នែកចាប់ផ្តើមនៃកម្មវិធី ហើយរក្សាទុកពួកវា។ នៅពេលអ្នកបង្វិលត្រីកោណ អ្នកក៏ត្រូវបង្វិលធម្មតារបស់វាដែរ។

ការគណនានៃធម្មតាទៅនឹងផ្ទៃនៃលំដាប់ទីពីរ។

ផ្ទៃនៃលំដាប់ទីពីរត្រូវបានផ្តល់ឱ្យនៅក្នុងករណីទូទៅដោយសមីការនៃទម្រង់:

Q(x,y,z) = a1x2 + a2y2 + a3z2 + b1yz + b2xz + b3xy + c1x +c2y +c3z + d =0។

ប៉ុន្តែយើងនឹងប្រើទម្រង់នៃការសម្គាល់ផ្សេង។ ដូច្នេះសមីការរាងអេលីបនឹងមើលទៅដូចនេះ៖

(x-x0)2/A2 + (y-y0)2/B2 + (z-z0)2 /C2 = 1,(2.2.2.3)

ដែល x0, y0, z0 គឺជាកូអរដោនេនៃចំណុចកណ្តាលនៃរាងពងក្រពើ, A, B, C គឺជាប្រវែងនៃ semiaxes នៃ ellipsoid ។

សមីការ Paraboloid៖

(x-x0)2/A2 + (y-y0)2/B2 - (z-z0)2 /C2 = 1,(2.2.2.4)

ដែល x0, y0, z0 គឺជាកូអរដោនេនៃចំណុចកណ្តាលនៃ paraboloid, A, B, C គឺជាប្រវែងនៃពាក់កណ្តាលអ័ក្សនៃ paraboloid ។ អ័ក្សនៃប៉ារ៉ាបូអ៊ីដមានទីតាំងនៅតាមអ័ក្ស Oz នៃប្រព័ន្ធកូអរដោនេពិភពលោក។ ដើម្បីគណនាកូអរដោណេនៃវ៉ិចទ័រធម្មតា វាចាំបាច់ក្នុងការគណនាដេរីវេដោយផ្នែកដោយគោរពតាម x, y, z ។

កូអរដោណេវ៉ិចទ័រធម្មតា Ellipsoid៖

Yn \u003d 2 (y-y0) / B2, \u003d 2 (z-z0) / C2 ។

ទិសដៅនៃវ៉ិចទ័រនឹងមិនផ្លាស់ប្តូរទេ ប្រសិនបើកូអរដោនេរបស់វាទាំងអស់ត្រូវបានបែងចែកដោយ 2៖

Xn = (x-x0)/A2,= (y-y0)/B2,(2.2.2.5)

Zn \u003d (z-z0) / C2 ។

កូអរដោនេនៃវ៉ិចទ័រធម្មតានៃ paraboloid ត្រូវបានគណនាស្រដៀងគ្នា៖

Xn = (x-x0)/A2,= (y-y0)/B2,(2.2.2.6)

Zn \u003d - (z-z0) / C2 ។

ធម្មតាសម្រាប់ផ្ទៃលំដាប់ទីពីរនឹងត្រូវគណនាដោយផ្ទាល់នៅក្នុងតួនៃដាន ចាប់តាំងពីភាពធម្មតាគឺខុសគ្នាត្រង់ចំណុចផ្សេងគ្នានៃរូប។

ការគណនានៃធ្នឹមដែលឆ្លុះបញ្ចាំង។

អនុញ្ញាតឱ្យវ៉ិចទ័រនៃឧប្បត្តិហេតុកាំរស្មី S ត្រូវបានផ្តល់ឱ្យ ហើយវ៉ិចទ័រធម្មតា N ត្រូវបានគេស្គាល់។ វាត្រូវបានទាមទារដើម្បីស្វែងរកវ៉ិចទ័រនៃកាំរស្មី R ដែលឆ្លុះបញ្ចាំង។

ពិចារណាវ៉ិចទ័រឯកតា R1, S1 និង N1 ។ ដោយសារវ៉ិចទ័រធម្មតា កាំរស្មីឧប្បត្តិហេតុ និងកាំរស្មីដែលឆ្លុះបញ្ចាំងគឺស្ថិតនៅក្នុងប្លង់តែមួយ យើងអាចសរសេរ R1 + S1 = N` ដែល N` ជាវ៉ិចទ័រដែលត្រូវនឹងអង្កត់ទ្រូងនៃ rhombus ហើយស្របគ្នានឹងទិសដៅធម្មតា . ប្រវែងនៃវ៉ិចទ័រ N` គឺស្មើនឹង 2cosθ។ ដោយសារវ៉ិចទ័រ N` ស្របគ្នានឹងទិសដៅ N1 ដូច្នេះ

N` = N`2cosθ។

ពីទីនេះយើងរកឃើញឯកតាវ៉ិចទ័រនៃធ្នឹមឆ្លុះបញ្ចាំង៖

R1 = N1 2cosθ - S1 = N/|N| 2cosθ - S/|S|។

ចូរយើងស្វែងរក cosθ ។ នេះអាចត្រូវបានធ្វើដោយប្រើផលិតផលមាត្រដ្ឋាននៃវ៉ិចទ័រ N និង S:


សន្មតថាវ៉ិចទ័រដែលត្រូវការនៃធ្នឹមឆ្លុះបញ្ចាំងនឹងមានប្រវែងដូចគ្នាទៅនឹងវ៉ិចទ័រនៃធ្នឹមឧប្បត្តិហេតុ នោះគឺ R = |S| R1 យើងទទួលបាន

N 2NS/|N|2 - S.

ដំណោះស្រាយនេះមានទម្រង់វ៉ិចទ័រ។ ចូរយើងសរសេរកូអរដោនេនៃវ៉ិចទ័រ៖

2xN(xNxS+yNyS+zNzS)/(xN2+yN2+zN2) - xS,= 2yN(xNxS+yNyS+zNzS)/(xN2+yN2+zN2) - yS,(2.2.3.1)= 2zN(xNxS+ +zNzS)/(xN2+yN2+zN2) - zS.

ការគណនានៃធ្នឹមឆ្លុះបញ្ចាំង។

អនុញ្ញាតឱ្យវ៉ិចទ័រឯកតាពីរត្រូវបានផ្តល់ឱ្យ: S1 គឺជាវ៉ិចទ័រនៃធ្នឹមឧប្បត្តិហេតុហើយ N1 គឺជាវ៉ិចទ័រនៃធម្មតាទៅចំណុចប្រទាក់រវាងមេឌៀពីរ។ សន្ទស្សន៍ចំណាំងបែរពីរសម្រាប់ប្រព័ន្ធផ្សព្វផ្សាយទាំងនេះក៏ត្រូវតែដឹងផងដែរ - n1 និង n2 (ឬសមាមាត្ររបស់ពួកគេ) ។

វាត្រូវបានទាមទារដើម្បីស្វែងរកវ៉ិចទ័រឯកតានៃកាំរស្មីឆ្លុះបញ្ចាំង T1 ។ សម្រាប់ដំណោះស្រាយយើងអនុវត្តសំណង់ធរណីមាត្រមួយចំនួន។

វ៉ិចទ័រដែលចង់បាន T1 គឺស្មើនឹងផលបូកនៃវ៉ិចទ័រពីរ៖

ចូរយើងស្វែងរកវ៉ិចទ័រ NT ជាដំបូង។ វាផ្ទុយពីទិសដៅទៅវ៉ិចទ័រធម្មតា ហើយប្រវែងរបស់វាស្មើនឹង |T1| cos α2 = cos α2 (ព្រោះ T1 គឺជាឯកតា) ។ ដូច្នេះ NT = -N1 cos α2 ។ វាចាំបាច់ក្នុងការកំណត់ cos α2 ។ ចូរយើងសរសេរច្បាប់នៃចំណាំងបែរ n1 sin α1 = n2 sin α2 ជាទម្រង់៖

sinα2 = n sinα1,

ដែលជាកន្លែងដែល n = n1 / n2 ។

ចូរយើងប្រើអត្តសញ្ញាណ cos2α + sin2α = 1. បន្ទាប់មក

cosα2 = √ 1 − sin2α2 = √ 1 − n2 sin2α1

cosα2 = √ (1 + n2 (cos2α1 − 1)

តម្លៃនៃ cos α1 អាចត្រូវបានបញ្ជាក់នៅក្នុងលក្ខខណ្ឌនៃផលិតផលមាត្រដ្ឋាននៃវ៉ិចទ័រឯកតា S1 និង N1 នោះគឺ cos α1 = S1N1 ។ បន្ទាប់មកយើងអាចសរសេរកន្សោមខាងក្រោមសម្រាប់វ៉ិចទ័រ NT៖

N1√1+n2((S1N1)2 - 1)។

វានៅសល់ដើម្បីស្វែងរកកន្សោមសម្រាប់វ៉ិចទ័រ B. វាមានទីតាំងនៅលើបន្ទាត់ដូចគ្នាជាមួយវ៉ិចទ័រ A ហើយ A = S1 - NS ។ ពិចារណាថា NS ស្មើនឹង N1 cos α1 បន្ទាប់មក A = S1 - N1 cos α1 ។ ចាប់តាំងពី cos α1 = S1N1 បន្ទាប់មក A = S1 - N1 (S1N1) ។

ដោយសារប្រវែងវ៉ិចទ័រ A គឺស្មើនឹង sin α1 ហើយប្រវែងវ៉ិចទ័រ B គឺស្មើនឹង sin α2 បន្ទាប់មក

|B|/|A| = sinα2/ sinα1 = n2/n1 = n,

មកពីណា |B| = n |A|។ ដោយគិតពីទីតាំងដែលទាក់ទងនៃវ៉ិចទ័រ A និង B យើងទទួលបាន

NA =n(N1(S1N1) - S1)។

ឥឡូវនេះយើងអាចសរសេរកន្សោមដែលចង់បានសម្រាប់ឯកតាវ៉ិចទ័រនៃកាំរស្មីចំណាំងបែរ T1:

T1 = nN1 (S1N1) - nS1 - N1√1 + n2 ((S1N1)2 - 1).(2.2.4.1)

ការគណនាចំណុចប្រសព្វជាមួយបុព្វបទ។

ក្នុង​ក្បួន​ដោះស្រាយ​ការ​តាម​ដាន ដើម្បី​បង្កើត​រូបភាព​មួយ វា​ចាំបាច់​ត្រូវ​គណនា​ចំណុច​ប្រសព្វ​នៃ​កាំរស្មី​ជាមួយ​នឹង​ទិដ្ឋភាព​បុព្វកាល។ ធ្នឹមត្រូវបានផ្តល់ដោយសមីការប៉ារ៉ាម៉ែត្រនៃបន្ទាត់ត្រង់មួយ។ ចំណុចណាមួយនៃធ្នឹមបំពេញសមីការ

R = A + Vt, (2.2.5.1)

ដែល R គឺជាវ៉ិចទ័រកាំនៃចំណុចបំពានដែលជាកម្មសិទ្ធិរបស់កាំរស្មី A គឺជាវ៉ិចទ័រកាំនៃចំណុចដំបូងនៃកាំរស្មី, V គឺជាវ៉ិចទ័រទិសដៅនៃកាំរស្មី, t គឺជាប៉ារ៉ាម៉ែត្រ។

ប្រសិនបើវ៉ិចទ័រទិសដៅ V ត្រូវបានធ្វើឱ្យមានលក្ខណៈធម្មតានោះប៉ារ៉ាម៉ែត្រ t នឹងជាលេខស្មើនឹងចម្ងាយពីចំណុចចាប់ផ្តើមនៃធ្នឹម A ដល់ចំណុច R ។

អ្នកអាចសរសេរសមីការនេះក្នុងទម្រង់កូអរដោណេ៖

x = x1 + នៅ, = y1 + bt, (2.2.5.2)= z1 + ct ។

នៅទីនេះ x1, y1, z1 គឺជាកូអរដោណេនៃចំនុចដំបូងនៃធ្នឹមនៅក្នុងប្រព័ន្ធកូអរដោនេ Cartesian រាងចតុកោណកែង a,b,c គឺជាកូអរដោនេនៃវ៉ិចទ័រទិសដៅនៃធ្នឹម។

ការគណនាចំណុចប្រសព្វនៃកាំរស្មីដែលមានផ្ទៃនៃលំដាប់ទីពីរ។

ដើម្បីស្វែងរកចំនុចប្រសព្វនៃកាំរស្មីដែលផ្តល់ដោយសមីការ (2) ជាមួយនឹងផ្ទៃលំដាប់ទីពីរដែលផ្តល់ដោយសមីការ (2.2.2.3) ឬ (2.2.2.4)៖

(x-x0)2/A2 + (y-y0)2/B2 + (z-z0)2 /C2 = 1 (រាងពងក្រពើ)

(x-x0)2/A2 + (y-y0)2/B2 - (z-z0)2 /C2 = 1 (ប៉ារ៉ាបូអ៊ីត),

ជំនួសឱ្យ x, y, និង z សមីការកាំរស្មីដែលត្រូវគ្នាត្រូវតែជំនួសទៅក្នុងសមីការផ្ទៃលំដាប់ទីពីរ។ ជាលទ្ធផលបន្ទាប់ពីបើកតង្កៀបទាំងអស់ហើយនាំយកស្រដៀងគ្នាមកយើងទទួលបានសមីការបួនជ្រុងដោយគោរពតាមប៉ារ៉ាម៉ែត្រ t ។ ប្រសិនបើការរើសអើងនៃសមីការការ៉េមានតិចជាងសូន្យ នោះកាំរស្មី និងផ្ទៃលំដាប់ទីពីរមិនមានចំណុចប្រសព្វទូទៅទេ។ បើមិនដូច្នោះទេវានឹងអាចគណនាតម្លៃពីរនៃប៉ារ៉ាម៉ែត្រ t ។ ការរើសអើងអាចស្មើនឹងសូន្យ - នេះត្រូវគ្នាទៅនឹងករណីកំណត់នៃកាំរស្មីដែលប៉ះផ្ទៃខាងលើ ហើយយើងនឹងទទួលបានតម្លៃស្របគ្នាពីរនៃប៉ារ៉ាម៉ែត្រ t ។

ដើម្បីស្វែងរកកូអរដោនេនៃចំនុចប្រសព្វនៃកាំរស្មី និងផ្ទៃ វាគឺគ្រប់គ្រាន់ដើម្បីជំនួសតម្លៃដែលបានរកឃើញនៃប៉ារ៉ាម៉ែត្រ t ទៅក្នុងសមីការកាំរស្មី (2) ។

នៅក្នុងកម្មវិធី នៅពេលដែលប្រសព្វពីរត្រូវបានរកឃើញ ចំនុចជិតបំផុតត្រូវបានជ្រើសរើសសម្រាប់ការមើលឃើញ។ ចំនុចប្រសព្វដែលនៅជិតបំផុតត្រូវបានកំណត់ដោយការប្រៀបធៀបប៉ារ៉ាម៉ែត្រដែលបានរកឃើញ t ។ ខិតទៅជិតចំណុចសង្កេតគឺជាចំនុចប្រសព្វដែលត្រូវគ្នានឹងប៉ារ៉ាម៉ែត្រតូចជាង t ។ វាគួរតែត្រូវបានកត់សម្គាល់នៅទីនេះថាជាលទ្ធផលនៃការដោះស្រាយសមីការការ៉េតម្លៃមួយឬទាំងពីរនៃប៉ារ៉ាម៉ែត្រ t អាចប្រែទៅជាអវិជ្ជមាន។ នេះមានន័យថាចំណុចប្រសព្វស្ថិតនៅ "ខាងក្រោយ" ទាក់ទងទៅនឹងចំណុចនៃប្រភពដើមនៃធ្នឹមនៅលើពាក់កណ្តាលនៃបន្ទាត់ត្រង់ដែល "នៅលើចំហៀងរបស់យើង" ទាក់ទងទៅនឹងយន្តហោះរូបភាព។ ចំណុចបែបនេះត្រូវបានបោះបង់ចោលនៅពេលស្វែងរកផ្លូវប្រសព្វ។

លើសពីនេះទៀតនៅក្នុងកម្មវិធីសម្រាប់តួលេខនីមួយៗយន្តហោះកាត់ខាងលើនិងខាងក្រោមត្រូវបានណែនាំ។ មានតែផ្នែកនៃតួលេខដែលស្ថិតនៅចន្លោះពួកវាប៉ុណ្ណោះដែលត្រូវបានបង្ហាញ។

ដើម្បីធ្វើដូចនេះបន្ទាប់ពីរកឃើញចំណុចប្រសព្វ z-coordinate របស់វាត្រូវបានវិភាគ។

ការគណនាចំនុចប្រសព្វនៃកាំរស្មីដែលមានពហុកោណ (ត្រីកោណ) ។

ដើម្បីគណនាចំណុចប្រសព្វនៃកាំរស្មីដែលផ្តល់ដោយសមីការ (2) ដំបូងអ្នកត្រូវតែកំណត់ចំណុចប្រសព្វនៃកាំរស្មីនេះជាមួយយន្តហោះដែលមានត្រីកោណនេះ។

សមីការយន្តហោះមើលទៅដូចនេះ៖

Q(x,y,z) = Ax + By + Cz + D = 0.(2.2.5.3)

នៅទីនេះ មេគុណ A, B, C ស្របគ្នានឹងកូអរដោណេនៃធម្មតាទៅនឹងយន្តហោះនេះ។ កូអរដោនេនៃធម្មតានៃយន្តហោះស្របគ្នានឹងកូអរដោនេនៃធម្មតានៃត្រីកោណដែលយើងគណនានៅដំណាក់កាលនៃការផ្ទុកកន្លែងកើតហេតុ។

ដើម្បីស្វែងរកពាក្យ D ដោយឥតគិតថ្លៃ វាចាំបាច់ក្នុងការជំនួសកូអរដោនេនៃចំនុចណាមួយនៃត្រីកោណ ឧទាហរណ៍ ចំនុចកំពូលមួយ។

Ax-By-Cz.(2.2.5.4)

តម្លៃ D នឹងមិនផ្លាស់ប្តូរកំឡុងពេលដំណើរការកម្មវិធីទេ ដូច្នេះគួរគណនាវានៅពេលដែលឈុតត្រូវបានចាប់ផ្តើម ហើយរក្សាទុកវាដូចជាកូអរដោណេធម្មតា។ វាចាំបាច់ក្នុងការគណនាវាឡើងវិញតែនៅពេលដែលទីតាំងនៃត្រីកោណផ្លាស់ប្តូរ។

ឥឡូវនេះ ដើម្បីស្វែងរកចំណុចប្រសព្វ យើងជំនួសសមីការកាំរស្មី (2) ចូលទៅក្នុង

សមីការយន្តហោះ។

(x1 + នៅ) + B (y1 + bt) + C (z1 + ct) + D = 0

តើយើងទទួលបាននៅឯណា

= - (Ax1 + By1 + Cz1 + D) / (Aa + Bb + Cc)(2.2.5.5)

ប្រសិនបើភាគបែងនៃប្រភាគនេះគឺសូន្យ នោះកាំរស្មីគឺស្របទៅនឹងប្លង់ដែលត្រីកោណស្ថិតនៅ។ មិនមានចំណុចប្រសព្វទេ។

ដើម្បីស្វែងរកកូអរដោនេនៃចំនុចប្រសព្វ វាចាំបាច់ក្នុងការជំនួសតម្លៃដែលបានរកឃើញនៃប៉ារ៉ាម៉ែត្រ t ទៅក្នុងសមីការកាំរស្មី (2) ។ ចូរហៅចំណុចប្រសព្វ D. យើងនឹងទទួលបានកូអរដោនេ xD, yD, zD ។

ឥឡូវនេះយើងត្រូវកំណត់ថាតើចំណុច D ស្ថិតនៅខាងក្នុងត្រីកោណ។ ស្វែងរកកូអរដោនេនៃវ៉ិចទ័រ AB, BC, CA (A, B, C គឺជាចំនុចកំពូលនៃត្រីកោណ) និងកូអរដោនេនៃវ៉ិចទ័រ AD, BD, CD ។ បន្ទាប់មកយើងរកឃើញផលិតផលឆ្លងកាត់ចំនួនបី៖

nA = AB x AD,= BC x BD, (2.2.5.6)= CA x CD ។

វ៉ិចទ័រទាំងនេះនឹងស្ថិតនៅជាប់គ្នា។ ប្រសិនបើវ៉ិចទ័រទាំងបីមានទិសដៅស្រប នោះចំនុច D ស្ថិតនៅខាងក្នុងត្រីកោណ។ សហទិសដៅត្រូវបានកំណត់ដោយសមភាពនៃសញ្ញានៃកូអរដោនេដែលត្រូវគ្នានៃវ៉ិចទ័រទាំងបី។

ប្រតិបត្តិការត្រួតពិនិត្យថាតើចំណុច D ជារបស់ត្រីកោណ ABC អាចត្រូវបានពន្លឿន។ ប្រសិនបើយើងធ្វើគម្រោងត្រីកោណ ABC ហើយចង្អុល D ទៅលើប្លង់មួយ xOy, yOz ឬ xOz នោះការព្យាករនៃចំនុចចូលទៅក្នុងការព្យាករនៃត្រីកោណនឹងមានន័យថាចំនុចនោះធ្លាក់ចូលទៅក្នុងត្រីកោណ (ជាការពិតណាស់ ប្រសិនបើវារួចហើយ។ គេ​ដឹង​ថា​ចំណុច D ស្ថិត​នៅ​ក្នុង​យន្តហោះ​ដែល​មាន​ត្រីកោណ ABC)។ ទន្ទឹមនឹងនេះចំនួននៃប្រតិបត្តិការត្រូវបានកាត់បន្ថយយ៉ាងខ្លាំង។ ដូច្នេះ ដើម្បីស្វែងរកកូអរដោនេនៃវ៉ិចទ័រទាំងអស់ អ្នកត្រូវស្វែងរកកូអរដោនេពីរសម្រាប់វ៉ិចទ័រនីមួយៗ ហើយនៅពេលស្វែងរកផលិតផលវ៉ិចទ័រ អ្នកត្រូវរកមើលកូអរដោណេតែមួយប៉ុណ្ណោះ (នៅសល់គឺស្មើនឹងសូន្យ)។

ដើម្បីពិនិត្យមើលទិសដៅរួមនៃវ៉ិចទ័រដែលទទួលបាននៅពេលគណនាផលិតផលឆ្លងកាត់ អ្នកត្រូវពិនិត្យមើលសញ្ញានៃកូអរដោនេតែមួយនេះសម្រាប់វ៉ិចទ័រទាំងបី។ ប្រសិនបើសញ្ញាទាំងអស់ធំជាងសូន្យ ឬតិចជាងសូន្យ នោះវ៉ិចទ័រគឺបង្វែរទិសដៅ។ សមភាពទៅនឹងសូន្យនៃផលិតផលវ៉ិចទ័រមួយត្រូវគ្នាទៅនឹងករណីនៅពេលដែលចំនុច D ធ្លាក់លើបន្ទាត់ត្រង់ដែលមានជ្រុងម្ខាងនៃត្រីកោណ។

លើសពីនេះទៀតការធ្វើតេស្តវិមាត្រសាមញ្ញអាចត្រូវបានអនុវត្តមុនពេលគណនាវ៉ិចទ័រនិងផលិតផលឆ្លងកាត់។ ប្រសិនបើការព្យាករនៃចំនុច D ស្ថិតនៅខាងស្តាំ ទៅខាងឆ្វេង ខាងលើ ឬខាងក្រោមការព្យាករនីមួយៗនៃចំនុចកំពូលនៃត្រីកោណ នោះវាមិនអាចស្ថិតនៅខាងក្នុងបានទេ។

វានៅសល់ដើម្បីបន្ថែមថាសម្រាប់ការព្យាករវាជាការល្អប្រសើរជាងមុនដើម្បីជ្រើសរើសមួយនៃយន្តហោះដែលជាតំបន់ព្យាករណ៍នៃត្រីកោណដែលមានទំហំធំជាង។ នៅក្រោមលក្ខខណ្ឌនេះ ករណីនៃការព្យាករនៃត្រីកោណចូលទៅក្នុងផ្នែកមួយត្រូវបានដកចេញ (ផ្តល់ថាត្រីកោណដែលបានសាកល្បងគឺមិន degenerate ទៅជាចម្រៀក)។ លើសពីនេះទៀត នៅពេលដែលផ្ទៃព្យាករណ៍កើនឡើង ប្រូបាប៊ីលីតេនៃកំហុសនឹងថយចុះ។ ដើម្បីកំណត់ការព្យាករណ៍បែបនេះវាគ្រប់គ្រាន់ដើម្បីពិនិត្យមើលកូអរដោនេបីនៃធម្មតានៃត្រីកោណ។ ប្រសិនបើ z-coordinate នៃធម្មតាគឺធំជាង (ជាតម្លៃដាច់ខាត) x និង y នោះវាចាំបាច់ដើម្បីបញ្ចាំងលើយន្តហោះ xOy ។ ប្រសិនបើ y ធំជាង x និង z នោះយើងដាក់លើ xOz ។ ក្នុងករណីដែលនៅសល់ - នៅលើ yOz ។

ការពិពណ៌នាអំពីប្រភេទទិន្នន័យ។ រចនាសម្ព័ន្ធកម្មវិធី។

ការពិពណ៌នាអំពីម៉ូឌុលកម្មវិធី

បញ្ជីនៃម៉ូឌុល៖ .h-ការពិពណ៌នាអំពីរចនាសម្ព័ន្ធ TTex.h-ការពិពណ៌នាអំពី TPlaneTex និង TEllipsoidTex structures.h-ការពិពណ៌នាអំពី TPoint2d និង TPoint3d structures.h-ការពិពណ៌នាអំពី TRGBColor structure.h-ការពិពណ៌នានៃថ្នាក់ TLamp .h-description of the TCam class.h-description of the TPrimitive class.h-class description TFrstSurface.h-class description TScndSurface.h-class description TTriangle.h-class description TEllipsoid.h-class description TCylinder.h-class ការពិពណ៌នា THyperboloidVert.h-class description THyperboloidHor.h-class description TScene.h- TTracer class description

ការអនុវត្តម៉ូឌុល ចំណុចប្រទាក់កម្មវិធី៖

Options.h-module នៃទម្រង់ "Options"

ម៉ូឌុល ExtraCamOptions.h នៃទម្រង់ "លក្ខណៈសម្បត្តិកាមេរ៉ា"

MainUnit.h - ម៉ូឌុលនៃទម្រង់សំខាន់នៃកម្មវិធី

ការពិពណ៌នាសង្ខេបនៃរចនាសម្ព័ន្ធ និងថ្នាក់នៃកម្មវិធី៖ TPoint3d - រចនាសម្ព័ន្ធដែលពិពណ៌នាអំពីចំណុចមួយនៅក្នុងប្រព័ន្ធកូអរដោណេពិភពលោក TPoint2d - រចនាសម្ព័ន្ធដែលពិពណ៌នាអំពីចំណុចនៅលើយន្តហោះ (ក្នុងវាយនភាព) ជាមួយនឹងកូអរដោណេចំនួនគត់ TRGBColor - រចនាសម្ព័ន្ធមួយ។ ដែលពណ៌នាអំពីពណ៌នៅក្នុងសមាសធាតុបី (RGB) TTex - រចនាសម្ព័ន្ធដែលពិពណ៌នាអំពីវាយនភាព - មានអាសយដ្ឋាននៃអារេនៃភីកសែល និងវិមាត្ររបស់វា TPlaneTex - រចនាសម្ព័ន្ធដែលពិពណ៌នាអំពីការចងនៃវាយនភាពទៅនឹងយន្តហោះ។

មានបីចំណុចដែលវាយនភាពត្រូវបានភ្ជាប់៖ TLamp ​​​​- ថ្នាក់ដែលពិពណ៌នាអំពីប្រភពពន្លឺ។

មានវត្ថុសំរបសំរួល TPoint3d ដែលមានកូអរដោណេប្រភព និងអថេរអណ្តែតបី (Ir, Ig, Ib) សម្រាប់រក្សាទុកអាំងតង់ស៊ីតេនៃសមាសធាតុពន្លឺទាំងបី។ TCam គឺជាថ្នាក់ដែលពិពណ៌នាអំពីកាមេរ៉ា។

មានមុំពីរ (a, b) ដែលបង្ហាញពីទិសដៅនៃទិដ្ឋភាពរបស់កាមេរ៉ា ចំណុចដែលកាមេរ៉ាកំពុងចង្អុលទៅ (viewP) និងចម្ងាយពីកាមេរ៉ាទៅចំណុចនោះ (r)។ TPrimitive គឺជាថ្នាក់បឋមអរូបី។ ផ្ទៃនៃលំដាប់ទីមួយ និងទីពីរត្រូវបានទទួលមរតកពីវា។ TFrstSurface គឺជាថ្នាក់អរូបីនៃផ្ទៃលំដាប់ទីមួយ។ ថ្នាក់ត្រីកោណត្រូវបានទទួលមរតកពីវា។ TScndSurface គឺជាថ្នាក់ផ្ទៃលំដាប់ទីពីរអរូបី។ ថ្នាក់ ellipsoid និង paraboloid ត្រូវបានទទួលមរតកពីវា។ TTriangle - ថ្នាក់ត្រីកោណ។ មានកំពូលបីនៃត្រីកោណ និងធម្មតារបស់វា។ TCylinder - ថ្នាក់នៃស៊ីឡាំងមួយ។ THyperboloidVert - ថ្នាក់នៃ hyperboloid មួយសន្លឹកដែលដេកតាមអ័ក្ស oZ.THyperboloidHor - ថ្នាក់នៃ hyperboloid មួយសន្លឹកដែលដេកតាមអ័ក្ស oX.TEllipsoid - class នៃ ellipsoid.TScene - ថ្នាក់នៃឈុតមួយ។ មានព័ត៌មានអំពីបុព្វហេតុ ប្រភព និងកាមេរ៉ាទាំងអស់។ TTracer គឺជាថ្នាក់ដែលទទួលខុសត្រូវក្នុងការបង្ហាញរូបភាព។ មានផ្ទុកនូវសតិបណ្ដោះអាសន្ន (buffer) ដែលមានប្លង់ទំហំ 400x400 ភីកសែល ដែលក្នុងនោះរូបភាពនៃកន្លែងកើតហេតុត្រូវបានបង្កើតឡើង។ មុនជំនាន់ វាចាំបាច់ក្នុងការហៅមុខងារដោយឆ្លងកាត់វាជាប៉ារ៉ាម៉ែត្រមួយ ទ្រនិចទៅកន្លែងកើតហេតុដែលត្រូវបង្កើត។ ដើម្បីបង្កើត ហៅមុខងារបង្ហាញ។

ថ្នាក់ទាំងអស់ - កូនចៅរបស់ TPrimitive ផ្តល់នូវមុខងារដូចខាងក្រោមៈ getT(TPoint3d p0, TPoint3d viewDir) - ត្រឡប់ចម្ងាយពីចំណុចនៃប្រភពដើម (p0) នៃ viewDir ray ទៅចំណុចជិតបំផុតនៃចំនុចប្រសព្វជាមួយ primitive ។

ទុកជាមោឃៈ getTArr(float* arr, int&n, TPoint3d p0, TPoint3d viewDir) - បំពេញអារេ Arr ជាមួយនឹងចម្ងាយពីចំណុចចាប់ផ្តើម (p0) នៃ viewDir ray ទៅចំណុចជិតបំផុតនៃចំនុចប្រសព្វជាមួយ primitive ។

void getNormal(TPoint3d&n, const TPoint3d&p) - ត្រឡប់កូអរដោណេនៃវ៉ិចទ័រធម្មតាទៅ primitive នៅចំណុច p ។

void getColor(TRGBColor&c, const TPoint3d&p) - ត្រឡប់ពណ៌នៃចំណុចបឋម p (រួមទាំងវាយនភាព)។

3. ផ្នែកបច្ចេកវិទ្យា

ការជ្រើសរើសភាសាសរសេរកម្មវិធី។

នៅពេលបង្កើតកម្មវិធី ភាសាសរសេរកម្មវិធីកម្រិតខ្ពស់ C ++ ត្រូវបានប្រើជាផ្នែកនៃបរិយាកាសសរសេរកម្មវិធីដែលមើលឃើញ CodeGear RAD Studio សម្រាប់ Windows ។

ភាសានេះត្រូវបានជ្រើសរើសដោយសារតែវាផ្តល់នូវមធ្យោបាយងាយស្រួលបំផុតសម្រាប់ធ្វើការជាមួយ RAM អនុញ្ញាតឱ្យអ្នកអនុវត្តក្បួនដោះស្រាយប្រកបដោយប្រសិទ្ធភាពជាងភាសាកម្រិតខ្ពស់ផ្សេងទៀត។ កម្មវិធីដែលសរសេរក្នុង C++ ដំណើរការលឿនជាងមុន ហើយប្រើទំហំថាសតិច។

លើសពីនេះ បរិយាកាសសរសេរកម្មវិធីដែលមើលឃើញ CodeGear RAD Studio សម្រាប់ Windows

ផ្តល់នូវសមាសធាតុរូបភាពស្ដង់ដារមួយចំនួនធំសម្រាប់បង្កើតចំណុចប្រទាក់ និងបណ្ណាល័យមួយចំនួនដែលមានមុខងារមានប្រយោជន៍ជាច្រើនដែលប្រើជាទូទៅ។ ដូចគ្នានេះផងដែរ អ្នកនិពន្ធនៃការងារមានបទពិសោធន៍សរសេរកម្មវិធីដ៏អស្ចារ្យបំផុតនៅក្នុងបរិយាកាសកម្មវិធីដែលមើលឃើញដែលបានបញ្ជាក់។

ទម្រង់ជម្រើស។ ផ្ទាំងពន្លឺ។

ផ្ទាំងនេះមានឧបករណ៍សម្រាប់រៀបចំភ្លើងបំភ្លឺកន្លែងកើតហេតុ។

កូអរដោនេប្រភព - កូអរដោនេនៅក្នុងប្រព័ន្ធសំរបសំរួលពិភពលោកនៃប្រភពពន្លឺដែលបានជ្រើសរើសក្នុងបញ្ជីទម្លាក់ចុះ។

អាំងតង់ស៊ីតេប្រភព - តម្លៃនៃសមាសធាតុទាំងបីនៃអាំងតង់ស៊ីតេនៃប្រភពពន្លឺដែលបានជ្រើសរើសក្នុងបញ្ជីទម្លាក់ចុះ។

អាំងតង់ស៊ីតេផ្ទៃខាងក្រោយ - តម្លៃនៃសមាសធាតុទាំងបីនៃអាំងតង់ស៊ីតេផ្ទៃខាងក្រោយ។

ប៊ូតុង "+" (នៅជាប់បញ្ជីទម្លាក់ចុះ) - បន្ថែមប្រភពពន្លឺថ្មី។

ប៊ូតុង "-" (នៅជាប់បញ្ជីទម្លាក់ចុះ) - លុបប្រភពពន្លឺដែលបានជ្រើសរើសក្នុងបញ្ជីទម្លាក់ចុះ។

ទម្រង់ជម្រើស។ ផ្ទាំងកាមេរ៉ា។

ផ្ទាំងនេះមានឧបករណ៍សម្រាប់កំណត់ជម្រើសកាមេរ៉ា។

ការមើលជាមុន - នៅទីនេះអ្នកអាចឃើញទិដ្ឋភាពប្រហាក់ប្រហែលនៃរូបភាពមុនពេលវាត្រូវបានបង្កើត។

ការរុករក - ការកំណត់ទីតាំងកាមេរ៉ា។

កម្រិតខ្ពស់ - នៅពេលអ្នកចុចលើប៊ូតុងនេះ ទម្រង់មួយនឹងលេចឡើង

លក្ខណៈសម្បត្តិកាមេរ៉ាជាមួយជម្រើសកាមេរ៉ាកម្រិតខ្ពស់។

ទម្រង់លក្ខណៈសម្បត្តិកាមេរ៉ា។

កាំ - ចម្ងាយពីកាមេរ៉ាទៅចំណុចដែលវាត្រូវបានដឹកនាំ។

ជំហានផ្លាស់ប្តូរកាំ - បង្កើនកាំកាមេរ៉ាដោយចុចប៊ូតុង "-" ម្តងនៅលើផ្ទាំង "កាមេរ៉ា" នៃទម្រង់ "ជម្រើស" (ឬបន្ថយវាដោយចុចប៊ូតុង "+" ម្តង) ។

ទម្រង់ជម្រើស។ ផ្ទាំងសម្ភារៈ។

ម៉ឺនុយនេះបង្ហាញប៉ារ៉ាម៉ែត្រនៃសម្ភារៈនៃតារាងដែលដំណាក់កាលឈរ។

ពណ៌ - ពណ៌នៃសម្ភារៈតារាង។

សហ។ ការឆ្លុះបញ្ចាំងដែលសាយភាយ - មេគុណ Kd នៃសម្ភារៈតារាង (សូមមើលផ្នែក 2.2.1) ។

វាយនភាព - ប្រសិនបើប្រអប់ធីកត្រូវបានធីក នោះវាយនភាពនឹងត្រូវបានបង្ហាញនៅលើតុ

ជ្រើសរើសវាយនភាព - ជ្រើសរើសឯកសាររូបភាព (*.bmp) ដែលនឹងត្រូវបានប្រើជាវាយនភាពតារាង។

កម្រិតខ្ពស់ - នៅពេលចុចប៊ូតុងនេះ ទម្រង់លក្ខណសម្បត្តិតារាងនឹងបង្ហាញជាមួយប៉ារ៉ាម៉ែត្របន្ថែមនៃសម្ភារៈតារាង។

ទម្រង់លក្ខណៈសម្បត្តិតារាង។

មេគុណពន្លឺគឺជាមេគុណ KS នៃសម្ភារៈតារាង (សូមមើលផ្នែក 2.2.1) ។

ព្រិលៗគឺជានិទស្សន្ត p នៃសម្ភារៈតារាង។

វាយនភាពធ្វើម្តងទៀត - តើវាយនភាពតារាងនឹងធ្វើម្តងទៀតតាមអ័ក្ស OX និង OY ប៉ុន្មានដង។

ទម្រង់ជម្រើស។ ផ្ទាំងប្រព័ន្ធ។

នៅលើផ្ទាំងនេះ អ្នកអាចកំណត់រចនាសម្ព័ន្ធក្បួនដោះស្រាយដែលបានអនុវត្តនៅក្នុងកម្មវិធី។

Recursion depth - ប៉ារ៉ាម៉ែត្រនេះកំណត់ជម្រៅនៃការហៅឡើងវិញនៅក្នុងក្បួនដោះស្រាយការតាមដាន។ តម្លៃធំជាងនៃប៉ារ៉ាម៉ែត្រនេះធ្វើអោយប្រសើរឡើងនូវគុណភាពនៃរូបភាពដែលបានបង្កើត។

យកចិត្តទុកដាក់!

ជម្រៅនៃការបង្កើតឡើងវិញមានឥទ្ធិពល STRONG ទៅលើល្បឿននៃការបង្កើតរូបភាព។ វាមិនត្រូវបានណែនាំឱ្យកំណត់ប៉ារ៉ាម៉ែត្រនេះលើសពី 10 ទេ។

ការធ្វើកោសល្យវិច័យ - ការធ្វើឱ្យរូបភាពមានភាពរលូននៃក្បួនដោះស្រាយ។

ប្រភេទស្រមោល - ការជ្រើសរើសក្បួនដោះស្រាយការសាងសង់ស្រមោល។

4. ផ្នែកស្រាវជ្រាវ

ការសិក្សាត្រូវបានធ្វើឡើងនៅលើកុំព្យូទ័រដែលមានការកំណត់រចនាសម្ព័ន្ធដូចខាងក្រោមៈ

ស៊ីភីយូ - Intel Core 2 Duo T5850- 2048Mb DDR2 - Nvidia GForce 9300M 256Mb- Windows 7

4.1 ការពឹងផ្អែកលើពេលវេលានៃការបង្កើតនៅលើជម្រៅនៃការហៅឡើងវិញ

នៅក្នុងការធ្វើតេស្តនេះ ការពឹងផ្អែកនៃពេលវេលាបង្កើតរូបភាពលើជម្រៅនៃការប្រើឡើងវិញត្រូវបានស៊ើបអង្កេត។ ការសិក្សាត្រូវបានអនុវត្តសម្រាប់ទិដ្ឋភាពដែលបំភ្លឺដោយប្រភពពន្លឺតែមួយ។ - ពេលវេលាជំនាន់ដោយគ្មានស្រមោលគិតជាវិនាទី។ - ពេលវេលាបង្កើតជាមួយស្រមោលរឹងគិតជាវិនាទី។ - ជម្រៅនៃការកើតឡើងវិញ។


4.2 ការពឹងផ្អែកលើពេលវេលានៃការបង្កើតលើចំនួនប្រភព


៤.៣ ការវិភាគលទ្ធផលស្រាវជ្រាវ

ពីការសិក្សាដំបូងគេអាចមើលឃើញថាពេលវេលានៃជំនាន់មានការកើនឡើងយ៉ាងខ្លាំងជាមួយនឹងចំនួននៃកម្រិតនៃការបង្កើតឡើងវិញ។ នេះ​គឺ​ជា​ការ​យល់​ព្រម​ល្អ​ជាមួយ​នឹង​ទ្រឹស្ដី​, ចាប់​តាំង​ពី ចំនួននៃកាំរស្មីកើនឡើងជាមួយនឹងជម្រៅនៃការបង្កើតឡើងវិញ។

វាគួរតែត្រូវបានកត់សម្គាល់ថាសម្រាប់ឈុតដែលមានពហុកោណមួយចំនួនតូច មិនចាំបាច់កំណត់តម្លៃធំសម្រាប់ជំរៅអតិបរមាឡើងវិញនោះទេ ព្រោះ ភាពខុសគ្នានៃគុណភាពនៃរូបភាពដែលបានបង្កើតនឹងមិនសំខាន់ទេ។

ការសិក្សាទីពីរបង្ហាញថាការពឹងផ្អែកនៃពេលវេលាបង្កើតទៅលើចំនួនប្រភពពន្លឺគឺលីនេអ៊ែរ។ ពីតម្លៃដែលទទួលបាន អ្នកអាចគណនាពេលវេលាដែលត្រូវការដើម្បីគណនាប្រភពមួយ។ នៅលើម៉ាស៊ីនដែលការស្រាវជ្រាវត្រូវបានធ្វើឡើងជាមួយនឹងជម្រៅនៃការប្រើឡើងវិញ 5 ពេលវេលានេះគឺប្រហែល 0.5 វិនាទី។

សេចក្តីសន្និដ្ឋាន

នៅក្នុងកម្មវិធីនេះ លទ្ធផលនៃក្បួនដោះស្រាយសម្រាប់បង្កើតរូបភាពជាក់ស្តែង - ការតាមដានកាំរស្មីបញ្ច្រាស - ត្រូវបានបង្ហាញ។

ការអនុវត្តនេះបង្ហាញពីសមត្ថភាពនៃក្បួនដោះស្រាយក្នុងការបង្កើតរូបភាពនៅជិត photorealistic ។ ការតាមដានគឺជាក្បួនដោះស្រាយកម្រិតខ្ពស់បំផុតមួយសម្រាប់បង្កើតរូបភាពជាក់ស្តែង។ គុណភាពនៃរូបភាពលទ្ធផលគឺប្រសើរជាងគុណភាពនៃរូបភាពដែលទទួលបានដោយប្រើក្បួនដោះស្រាយដូចជា Z-buffer ។ ទោះយ៉ាងណាក៏ដោយ តម្រូវការសម្រាប់ថាមពលកុំព្យូទ័រដែលត្រូវការដើម្បីបង្កើតស៊ុមរូបភាពមួយគឺខ្ពស់ជាងនៅក្នុង Z-buffer ដូចគ្នា។ រហូតមកដល់បច្ចុប្បន្ន តាមពេលវេលាជាក់ស្តែង ក្បួនដោះស្រាយការតាមដានកាំរស្មីបញ្ច្រាសត្រូវបានប្រើសម្រាប់តែគោលបំណងស្រាវជ្រាវលើកុំព្យូទ័រដ៏មានថាមពលខ្លាំង ដែលមិនអាចចូលប្រើបានសម្រាប់អ្នកប្រើប្រាស់សាមញ្ញ។ ជាការពិតណាស់ មានអ្នកចូលចិត្តបង្កើតហ្គេម 3D និងកម្មវិធីក្រាហ្វិកតាមពេលវេលាជាក់ស្តែងផ្សេងទៀត ដោយផ្អែកលើក្បួនដោះស្រាយការតាមដានកាំរស្មីបញ្ច្រាស ប៉ុន្តែតាមក្បួនពួកគេមាន FPS ទាបបំផុត ឬវត្ថុទាំងអស់នៅក្នុងឈុតគឺផ្អែកលើស្វ៊ែរ - ងាយស្រួលបំផុត ដើម្បីតាមដានផ្ទៃកាំរស្មី។ ប៉ុន្តែដើម្បីឱ្យក្បួនដោះស្រាយនេះទទួលបានផលចំណេញក្នុងគម្រោងធំៗ ដូចជាហ្គេម 3D ការទម្លាយដ៏សំខាន់មួយនៅក្នុងវិស័យផ្នែករឹងកុំព្យូទ័រលើតុគឺត្រូវបានទាមទារ។

សូម្បីតែនៅលើឧទាហរណ៍នៃហ្គេមកុំព្យូទ័រក៏ដោយ ក៏គេអាចតាមដានយ៉ាងងាយស្រួលនូវភាពលែងត្រូវការតទៅទៀតនៃក្បួនដោះស្រាយការតាមដានកាំរស្មីបញ្ច្រាស។ យ៉ាងណាមិញ អ្នកលេងដែលងប់ងល់នឹងការលេងហ្គេមនោះ ទំនងជាមិនសរសើរដល់ការបង្ហាញរាងធរណីមាត្រត្រឹមត្រូវនៃស្រមោល និងការឆ្លុះបញ្ចាំងពីវត្ថុហ្គេមនោះទេ។ ក្នុងន័យនេះការគូរប្រហាក់ប្រហែលដោយមានជំនួយពីពហុកោណថ្ងៃនេះឈ្នះយ៉ាងសំខាន់ព្រោះវាមិនត្រូវការកុំព្យូទ័រដែលមានថាមពលខ្លាំងទេហើយលទ្ធផលគឺជិតនឹងការពិត។

វាត្រូវបានគេចាត់ទុកផងដែរថា ក្បួនដោះស្រាយការតាមដានកាំរស្មីគឺល្អសម្រាប់រូបភាពនៃវត្ថុសិប្បនិម្មិតដែលមានរាងធរណីមាត្រសាមញ្ញ ដូចជារថយន្ត យន្តហោះ អគារជាដើម។ ការបង្កើតវត្ថុដូចជាមុខមនុស្ស សក់សត្វ ឬតំបន់ព្រៃគឺជាការលំបាកខ្លាំងណាស់។ ភារកិច្ចសម្រាប់ algorithm ដែលបង្កើនតម្រូវការសន្ធឹកសន្ធាប់សម្រាប់ផ្នែករឹងរបស់កុំព្យូទ័រ។

ទោះយ៉ាងណាក៏ដោយ សូម្បីតែសព្វថ្ងៃនេះ អ្នកអាចមើលឃើញការស្រាវជ្រាវលើការអនុវត្តនៃក្បួនដោះស្រាយការតាមដានកាំរស្មីតាមពេលវេលាជាក់ស្តែង។ តាមក្បួនមួយនៅក្នុងគម្រោងបែបនេះរថយន្តមួយត្រូវបានប្រើជាកន្លែងកើតហេតុ។ ប៉ុន្តែភាពប្រាកដនិយមពេញលេញនៃរូបភាពត្រូវបានសម្រេចរួចហើយ ហើយក្រៅពីនេះ វាត្រូវការពេលតិចតួចណាស់ដើម្បីបង្កើតស៊ុមតែមួយ។ ជាការពិតណាស់ គម្រោងទាំងនេះត្រូវបានអនុវត្តនៅលើកុំព្យូទ័រដែលមានថាមពលខ្លាំង ប៉ុន្តែថ្ងៃមិនឆ្ងាយប៉ុន្មានទេ នៅពេលដែលកម្មវិធី 3D បែបនេះនឹងមានសម្រាប់អ្នកប្រើប្រាស់ជាមធ្យម។

គម្ពីរប៊ីប

1. Rogers D. Algorithmic foundations of computer graphics: Per. ពីភាសាអង់គ្លេស - M.: Mir, 1989. - 512 ទំ។

Porev VN ក្រាហ្វិកកុំព្យូទ័រ។ - សាំងពេទឺប៊ឺគៈ BHV-Petersburg, 2002. - 432 ទំ។

Nikulin E.A. ធរណីមាត្រកុំព្យូទ័រ និងក្បួនដោះស្រាយក្រាហ្វិកកុំព្យូទ័រ។ សាំងពេទឺប៊ឺគៈ BHV-Petersburg, 2003. - 560 ទំ។

Angel E. ក្រាហ្វិកកុំព្យូទ័រអន្តរកម្ម។ - "Williams", 2001. - 592 ទំ។ : ill ។ - ប៉ារ៉ាល់។ ទីត. ពីភាសាអង់គ្លេស។

Avdeeva S.M., Kurov A.V. ក្បួនដោះស្រាយសម្រាប់ក្រាហ្វិកកុំព្យូទ័រ 3D៖ សៀវភៅសិក្សា។ - អិមៈ គ្រឹះស្ថានបោះពុម្ព MSTU អ៊ឹម។ N.E. Bauman, 1996. - 60 ទំ។