```html អ្នកនិពន្ធ៖ Jun Gao, NVIDIA, University of Toronto, Vector Institute (jung@nvidia.com) Tianchang Shen, NVIDIA, University of Toronto, Vector Institute (frshen@nvidia.com) Zian Wang, NVIDIA, University of Toronto, Vector Institute (zianw@nvidia.com) Wenzheng Chen, NVIDIA, University of Toronto, Vector Institute (wenzchen@nvidia.com) Kangxue Yin, NVIDIA (kangxuey@nvidia.com) Daiqing Li, NVIDIA (daiqingl@nvidia.com) Or Litany, NVIDIA (olitany@nvidia.com) Zan Gojcic, NVIDIA (zgojcic@nvidia.com) Sanja Fidler, NVIDIA, University of Toronto, Vector Institute (sfidler@nvidia.com) សេចក្តីសង្ខេប ដោយសារឧស្សាហកម្មជាច្រើនកំពុងផ្លាស់ប្តូរឆ្ពោះទៅរកការបង្កើតពិភពនិម្មិត 3D ដ៏ធំ ការបង្កើតឧបករណ៍បង្កើតមាតិកាដែលអាចកើនឡើងតាមបរិមាណ គុណភាព និងភាពចម្រុះនៃមាតិកា 3D កំពុងក្លាយជាការចាំបាច់។ នៅក្នុងការងាររបស់យើង យើងមានគោលបំណងបង្រៀនម៉ូដែលបង្កើត 3D ប្រកបដោយគុណភាពខ្ពស់ ដែលអាចបង្កើត meshes ທີ່ມີ texture ដែលអាចប្រើប្រាស់បានដោយផ្ទាល់ដោយម៉ាស៊ីន render 3D ដូច្នេះអាចប្រើបានភ្លាមៗនៅក្នុងកម្មវិធី downstream។ ការងារពីមុនលើការបង្កើត 3D ទាំងខ្វះព័ត៌មានលម្អិតអំពីធរណីមាត្រ មានដែនកំណត់លើ topology នៃ mesh ដែលពួកវាអាចបង្កើតជាធម្មត មិនគាំទ្រ textures ឬប្រើ neural renderers នៅក្នុងដំណើរការសំយោគ ដែលធ្វើឱ្យការប្រើប្រាស់របស់វានៅក្នុងកម្មវិធី 3D ទូទៅមិនងាយស្រួល។ នៅក្នុងការងារនេះ យើងសូមណែនាំ GET3D ដែលជាម៉ូដែលបង្កើត enerative ដែលបង្កើតម៉ាស់ xplicit extured meshes ដោយផ្ទាល់ជាមួយនឹង topology ស្មុគស្មាញ ព័ត៌មានលម្អិតអំពីធរណីមាត្រដ៏សម្បូរបែប និង textures គុណភាពខ្ពស់។ យើងភ្ជាប់ជោគជ័យថ្មីៗនេះក្នុងការបង្កើតផ្ទៃ differentiable ការ render differentiable ក៏ដូចជា 2D Generative Adversarial Networks ដើម្បីបង្រៀនម៉ូដែលរបស់យើងពីការប្រមូលរូបភាព 2D ។ GET3D អាចបង្កើត meshes 3D ដែលមាន texture គុណភាពខ្ពស់ ចាប់ពីឡាន កៅអី សត្វ កង់បី និងតួអង្គមនុស្ស រហូតដល់អគារ ដោយសម្រេចបានការកែលម្អយ៉ាងខ្លាំងលើវិធីសាស្ត្រពីមុន។ ផ្ទាំងគម្រោងរបស់យើង៖ G E T 3D https://nv-tlabs.github.io/GET3D 1 ការណែនាំ មាតិកា 3D ដែលមានគុណភាពខ្ពស់ និងចម្រុះកំពុងក្លាយជាកាន់តែសំខាន់សម្រាប់ឧស្សាហកម្មជាច្រើន រួមទាំងការលេងហ្គេម រ៉ូបូត ស្ថាបត្យកម្ម និងវេទិកាសង្គម។ ទោះជាយ៉ាងណាក៏ដោយ ការបង្កើតទ្រព្យសម្បត្តិ 3D ដោយដៃគឺចំណាយពេលច្រើន ហើយទាមទារចំណេះដឹងបច្ចេកទេសជាក់លាក់ ក៏ដូចជាជំនាញបង្កើតម៉ូដែលសិល្បៈ។ ឧបសគ្គចម្បងមួយគឺទំហំ – ខណៈពេលដែលមនុស្សម្នាក់អាចស្វែងរកម៉ូដែល 3D នៅលើទីផ្សារ 3D ដូចជា Turbosquid [ ] ឬ Sketchfab [ ] ការបង្កើតម៉ូដែល 3D ជាច្រើនដើម្បីឧទាហរណ៍ បំពេញហ្គេម ឬខ្សែភាពយន្តជាមួយនឹងហ្វូងតួអង្គដែលមើលទៅខុសគ្នា នៅតែចំណាយពេលច្រើនពីសិល្បករ។ 4 3 ដើម្បីសម្រួលដល់ដំណើរការបង្កើតមាតិកា និងធ្វើឱ្យវាកាន់តែងាយស្រួលសម្រាប់អ្នកប្រើប្រាស់ (ថ្មី) ផ្សេងៗ เครือข่าย 3D ដែលបង្កើតឡើងដែលអាចផលិតទ្រព្យសម្បត្តិ 3D គុណភាពខ្ពស់ និងចម្រុះបាន ក្លាយជាវិស័យស្រាវជ្រាវសកម្ម [ , , , , , , , , , , ] ។ ទោះយ៉ាងណាក៏ដោយ ដើម្បីឱ្យមានប្រយោជន៍ជាក់ស្តែងសម្រាប់កម្មវិធីពិភពលោកពិតបច្ចុប្បន្ន ម៉ូដែលបង្កើត 3D គួរតែបំពេញតាមតម្រូវការដូចខាងក្រោម៖ ពួកវាគួរតែមានសមត្ថភាពក្នុងការបង្កើតរូបរាងជាមួយនឹងព័ត៌មានលម្អិតអំពីធរណីមាត្រ និង topology ដោយចៃដន្យ ទិន្នផលគួរតែជា mesh ដែលមាន texture ដែលជាការតំណាងបឋមដែលប្រើដោយកញ្ចប់កម្មវិធីក្រាហ្វិកស្តង់ដារដូចជា Blender [ ] និង Maya [ ] និង យើងគួរតែអាចប្រើរូបភាព 2D សម្រាប់ការត្រួតពិនិត្យ ចាប់តាំងពីពួកវាមានច្រើនជាងរូបរាង 3D ពិតប្រាកដ។ 5 14 43 46 53 68 75 60 59 69 23 (a) (b) 15 1 (c) ការងារពីមុនលើការបង្កើត 3D បានផ្តោតលើសំណុំរងនៃតម្រូវការខាងលើ ប៉ុន្តែមិនមានវិធីសាស្រ្តណាមួយរហូតមកដល់ពេលនេះដែលបំពេញតាមតម្រូវការទាំងអស់ (តារាង )។ ឧទាហរណ៍ វិធីសាស្រ្តដែលបង្កើត point clouds 3D [ , 68, 75] ជាធម្មតាមិនបង្កើត textures ហើយត្រូវតែបំប្លែងទៅជា mesh ក្នុងការដំណើរការក្រោយ។ 1 5 វិធីសាស្រ្តបង្កើត voxels ជាញឹកញយខ្វះព័ត៌មានលម្អិតអំពីធរណីមាត្រ និងមិនបង្កើត texture [ , , , ] ។ ម៉ូដែលបង្កើតដោយផ្អែកលើ neural fields [ , ] ផ្តោតលើការទាញយកធរណីមាត្រ ប៉ុន្តែមិនគិតពី texture ។ ភាគច្រើននៃពួកវាក៏ទាមទារការត្រួតពិនិត្យ 3D ពិតប្រាកដផងដែរ។ ជាចុងក្រោយ វិធីសាស្រ្តដែលបង្កើត meshes 3D ដែលមាន texture ដោយផ្ទាល់ [ , ] ជាធម្មតាទាមទារគំរូទ្រង់ទ្រាយដែលបានកំណត់ទុកជាមុន ហើយមិនអាចបង្កើតរូបរាងដែលមាន topology ស្មុគស្មាញ និង genus ប្រែប្រួលបាន។ 66 20 27 40 43 14 54 53 ថ្មីៗនេះ ការរីកចម្រើនយ៉ាងឆាប់រហ័សនៅក្នុង neural volume rendering [ ] និង 2D Generative Adversarial Networks (GANs) [ , , , , ] បាននាំឱ្យមានការកើនឡើងនៃការសំយោគរូបភាព 3D-aware [ , , , , , ] ។ ទោះជាយ៉ាងណាក៏ដោយ បន្ទាត់នៃការងារនេះមានគោលបំណងសំយោគរូបភាព multi-view ដែលស៊ីគ្នាដោយប្រើ neural rendering នៅក្នុងដំណើរការសំយោគ ហើយមិនធានាថា រូបរាង 3D ដែលមានអត្ថន័យអាចត្រូវបានបង្កើតឡើង។ ទោះបីជា mesh អាចទទួលបានពីការតំណាង neural field ក្រោមដោយប្រើ algorithm marching cube [ ] ក៏ដោយ ការទាញយក texture ដែលត្រូវគ្នាមិនងាយស្រួលទេ។ 45 34 35 33 29 52 7 57 8 49 51 25 39 នៅក្នុងការងារនេះ យើងណែនាំវិធីសាស្រ្តថ្មីមួយដែលមានគោលបំណងដោះស្រាយតម្រូវការទាំងអស់នៃម៉ូដែលបង្កើត 3D ដែលមានប្រយោជន៍ជាក់ស្តែង។ ជាពិសេស យើងសូមណែនាំ GET3D ដែលជាម៉ូដែលបង្កើត enerative សម្រាប់រូបរាង 3D ដែលបង្កើតម៉ាស់ xplicit extured meshes ដោយផ្ទាល់ជាមួយនឹងព័ត៌មានលម្អិតអំពីធរណីមាត្រ និង texture ខ្ពស់ និង topology នៃ mesh ដោយចៃដន្យ។ នៅចំកណ្តាលនៃវិធីសាស្រ្តរបស់យើងគឺជាដំណើរការបង្កើតដែលប្រើវិធីសាស្រ្តទាញយកផ្ទៃ differentiable [ ] និងបច្ចេកទេស differentiable rendering [ , ] ។ អតីតអនុញ្ញាតឱ្យយើងកែតម្រូវដោយផ្ទាល់ និងបង្កើត meshes 3D ដែលមាន texture ជាមួយនឹង topology ដោយចៃដន្យ ខណៈពេលដែលក្រោយមកអនុញ្ញាតឱ្យយើងបង្រៀនម៉ូដែលរបស់យើងជាមួយនឹងរូបភាព 2D ដូច្នេះទាញយកគុណសម្បត្តិនៃ discriminators ដែលមានគុណភាពខ្ពស់ និងមានភាពចាស់ទុំដែលបានបង្កើតឡើងសម្រាប់សំយោគរូបភាព 2D ។ ដោយសារម៉ូដែលរបស់យើងបង្កើត meshes ដោយផ្ទាល់ ហើយប្រើ renderer គុណភាពខ្ពស់ (differentiable) គុណភាពខ្ពស់ យើងអាចបង្កើនទំហំម៉ូដែលរបស់យើងដើម្បីបង្រៀនជាមួយនឹង G E T 3D explicit 60 47 37 គុណភាពបង្ហាញខ្ពស់រហូតដល់ 1024 × 1024 ដែលអនុញ្ញាតឱ្យយើងរៀនព័ត៌មានលម្អិតអំពីធរណីមាត្រ និង texture គុណភាពខ្ពស់។ យើងបង្ហាញគុណភាពបង្ហាញខ្ពស់សម្រាប់ការបង្កើតរូបរាង 3D ដែលមិនមានការត្រួតពិនិត្យលើប្រភេទជាច្រើនដែលមានធរណីមាត្រស្មុគស្មាញពី ShapeNet [ ], Turbosquid [ ] និង Renderpeople [ ] ដូចជា កៅអី កង់បី ឡាន តួអង្គមនុស្ស និងអគារ។ ជាមួយនឹង mesh ពិតប្រាកដជាការតំណាងទិន្នផល GET3D ក៏មានភាពបត់បែនខ្លាំងផងដែរ ហើយអាចត្រូវបានកែសម្រួលយ៉ាងងាយស្រួលទៅកាន់កិច្ចការផ្សេងទៀត រួមមាន៖ រៀនបង្កើត decomposed material និង lighting effects ដែលអាស្រ័យលើទិដ្ឋភាព ដោយប្រើ differentiable rendering ទំនើប [ ] ដោយគ្មានការត្រួតពិនិត្យ ការបង្កើតរូបរាង 3D ដោយផ្អែកលើអត្ថបទដោយប្រើ CLIP [ ] embedding. 9 4 2 (a) 12 (b) 56 2 ការងារដែលទាក់ទង យើងពិនិត្យឡើងវិញនូវការរីកចម្រើនថ្មីៗនេះនៅក្នុងម៉ូដែលបង្កើត 3D សម្រាប់ធរណីមាត្រ និងរូបរាង ក៏ដូចជាការសំយោគរូបភាពបង្កើត 3D-aware។ ក្នុងរយៈពេលប៉ុន្មានឆ្នាំចុងក្រោយនេះ ម៉ូដែលបង្កើត 2D បានសម្រេចបាននូវគុណភាពបង្ហាញខ្ពស់នៅក្នុងការសំយោគរូបភាពគុណភាពខ្ពស់ [ , , , , , , ] ។ ការរីកចម្រើននេះក៏បានបំផុសគំនិតស្រាវជ្រាវក្នុងការបង្កើតមាតិកា 3D ផងដែរ។ វិធីសាស្រ្តដំបូងមានគោលបំណងពង្រីក 2D CNN generators ទៅ 3D voxel grids ដោយផ្ទាល់ [ , , , , ] ប៉ុន្តែ footprint អង្គចងចាំខ្ពស់ និងភាពស្មុគស្មាញនៃការគណនា Convolution 3D រារាំងដំណើរការបង្កើតនៅគុណភាពបង្ហាញខ្ពស់។ ជាជម្រើស trabalhos ផ្សេងៗ បានสำรวจ point cloud [ , , , ], implicit [ , ], ឬ octree [ ] representations។ ទោះជាយ៉ាងណាក៏ដោយ trabalhos ទាំងនេះផ្តោតជាចម្បងលើការបង្កើតធរណីមាត្រ ហើយមិនគិតពីរូបរាងទេ។ ការតំណាងទិន្នផលរបស់ពួកគេក៏ត្រូវការការដំណើរការក្រោយដើម្បីធ្វើឱ្យពួកវាត្រូវគ្នាជាមួយនឹងម៉ាស៊ីនក្រាហ្វិកស្តង់ដារផងដែរ។ ម៉ូដែលបង្កើត 3D 34 35 33 52 29 19 16 66 20 27 40 62 5 68 75 46 43 14 30 Textured3DGAN [ , ] និង DIBR [ ] បង្កើត meshes 3D ដែលមាន texture ប៉ុន្តែពួកវាបង្កើតការបង្កើតជាការបំប្លែងនៃ template mesh ដែលការពារពួកគេពីការបង្កើត topology ស្មុគស្មាញ ឬរូបរាងដែលមាន genus ប្រែប្រួល ដែលវិធីសាស្រ្តរបស់យើងអាចធ្វើបាន។ PolyGen [ ] និង SurfGen [ ] អាចបង្កើត meshes ជាមួយនឹង topology ដោយចៃដន្យ ប៉ុន្តែមិនបង្កើត texturesទេ។ 54 53 11 48 41 បំផុសគំនិតដោយជោគជ័យនៃ neural volume rendering [ ] និង implicit representations [ , ] ការងារថ្មីៗនេះបានចាប់ផ្តើមដោះស្រាយបញ្ហានៃការសំយោគរូបភាព 3D-aware [ , , , , , , , , , ] ។ ទោះជាយ៉ាងណាក៏ដោយ បណ្តាញ neural volume rendering ជាទូទៅគឺយឺតក្នុងការសាកសួរ ដែលនាំឱ្យមានពេលវេលាបង្រៀនយូរ [ , ] និងបង្កើតរូបភាពដែលមានគុណភាពបង្ហាញមានកំណត់។ GIRAFFE [ ] និង StyleNerf [ ] បង្កើនប្រសិទ្ធភាពការបង្រៀន និងការ render ដោយការ render neural នៅគុណភាពបង្ហាញទាបជាង ហើយបន្ទាប់មក upscale លទ្ធផលជាមួយនឹង 2D CNN ។ ទោះជាយ៉ាងណាក៏ដោយ ការកើនឡើងគុណភាពបង្ហាញមកជាមួយនឹងការបាត់បង់ភាពស៊ីគ្នា multi-view ។ ដោយប្រើ discriminator ពីរ EG3D [ ] អាចកាត់បន្ថយបញ្ហានេះដោយផ្នែក។ ទោះជាយ៉ាងណាក៏ដោយ ការទាញយកផ្ទៃដែលមាន texture ពីវិធីសាស្រ្តដែលផ្អែកលើ neural rendering គឺជាកិច្ចការដ៏លំបាកមួយ។ ផ្ទុយទៅវិញ GET3D បង្កើត meshes 3D ដែលមាន texture ដោយផ្ទាល់ ដែលអាចប្រើប្រាស់បានភ្លាមៗនៅក្នុងម៉ាស៊ីនក្រាហ្វិកស្តង់ដារ។ 3D-Aware Generative Image Synthesis 45 43 14 7 57 49 26 25 76 8 51 58 67 7 57 49 25 8 3 វិធីសាស្រ្ត ឥឡូវនេះ យើងសូមបង្ហាញស៊ុម GET3D របស់យើងសម្រាប់ការសំយោគរូបរាង 3D ដែលមាន texture ។ ដំណើរការបង្កើតរបស់យើងត្រូវបានបែងចែកជាពីរផ្នែក៖ កิ่งធរណីមាត្រ ដែលបង្កើត mesh ផ្ទៃនៃ topology ដោយចៃដន្យ differentiable និង កิ่ง texture ដែលបង្កើត texture field ដែលអាចត្រូវបានសាកសួរនៅចំណុចផ្ទៃដើម្បីបង្កើតពណ៌។ ក្រោយមកទៀតអាចត្រូវបានពង្រីកទៅកាន់គុណសម្បត្តិផ្ទៃផ្សេងទៀតដូចជាឧទាហរណ៍ materials (Sec. )។ ក្នុងអំឡុងពេលបង្រៀន renderer rasterizer គុណភាពខ្ពស់ត្រូវបានប្រើប្រាស់ដើម្បី render mesh ដែលបានបង្កើតទៅជារូបភាព 2D គុណភាពខ្ពស់។ ដំណើរការទាំងមូលគឺ differentiable អនុញ្ញាតឱ្យមានការបង្រៀន adversarial ពីរូបភាព (ជាមួយនឹង masks បង្ហាញវត្ថុដែលចាប់អារម្មណ៍) ដោយការផ្សព្វផ្សាយ gradients ពី 2D discriminator ទៅកាន់ branch generator ទាំងពីរ។ ម៉ូដែលរបស់យើងត្រូវបានបង្ហាញក្នុងរូបភាព ។ នៅក្នុងផ្នែកបន្ទាប់ យើងសូមបង្ហាញម៉ូដែលបង្កើត 3D របស់យើងជាមុនសិននៅ Sec មុននឹងបន្តទៅ differentiable rendering និង objective functions នៅ Sec ។ 4.3.1 2 3.1 3.2 3.1 ម៉ូដែលបង្កើត 3D Textured Meshes យើងមានគោលបំណងរៀនម៉ូដែលបង្កើត 3D = ( ) ដើម្បី maping sample ពី distribution Gaussian M, E G z ∈ N (0*,* ) ទៅ mesh ជាមួយនឹង texture . z I M E ដោយសារ geometry ដូចគ្នាអាចមាន textures ផ្សេងៗគ្នា ហើយ texture ដូចគ្នាអាចត្រូវបានអនុវត្តទៅ geometries ផ្សេងៗគ្នា យើង sample vectors ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ ធាតុ ʻzʼ