Isi kandungan:
Video: Pemapar 3D: 4 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:12
Helo! Untuk memuaskan minat saya dalam pengaturcaraan dan semoga membantu memuaskan minat anda, saya ingin menunjukkan kepada anda 3D Viewer yang saya kodkan dalam javascript. Sekiranya anda ingin meningkatkan pemahaman anda mengenai permainan 3D atau membuat permainan 3D anda sendiri, penampil 3D prototaip ini sangat sesuai untuk anda.
Langkah 1: Teori
Untuk memahami teori pemapar 3D ini, anda hanya dapat memeriksa cara anda melihat persekitaran anda (sangat membantu hanya mempunyai satu sumber cahaya yang ketara). Perhatikan bahawa:
- Objek yang berada jauh dari anda mengambil bahagian yang lebih kecil dari bidang penglihatan anda.
- Objek yang jauh dari sumber cahaya kelihatan lebih gelap warnanya.
- Oleh kerana permukaan menjadi lebih selari (kurang tegak lurus) dengan sumber cahaya, permukaannya kelihatan lebih gelap.
Saya memutuskan untuk mewakili bidang penglihatan dengan sekumpulan garis yang berasal dari satu titik (serupa dengan bola mata). Seperti bola lonjakan, garis perlu dijarakkan secara merata untuk memastikan setiap bahagian medan penglihatan sama. Dalam gambar di atas, perhatikan bagaimana garis yang berasal dari bola lonjakan menjadi lebih jauh ketika mereka bergerak lebih jauh dari pusat bola. Ini membantu memvisualisasikan pelaksanaan program pemerhatian 1 kerana ketumpatan garis menurun ketika objek bergerak lebih jauh dari titik tengah.
Garis adalah unit dasar penglihatan dalam program, dan masing-masing dipetakan ke piksel pada layar. Apabila garis memotong objek, pikselnya berwarna berdasarkan jaraknya dari sumber cahaya dan sudut dari sumber cahaya.
Langkah 2: Teori Pelaksanaan
Untuk mempermudah program, sumber cahaya adalah sama dengan titik tengah (bola mata: titik dari mana peta dilihat dan dari mana garis itu berasal). Sesuai dengan memegang cahaya tepat di sebelah wajah anda, ini menghilangkan bayang-bayang dan membolehkan kecerahan setiap piksel dikira dengan lebih mudah.
Program ini juga menggunakan koordinat sfera, dengan titik pusat penglihatan pada asalnya. Ini membolehkan garis dihasilkan dengan mudah (masing-masing dengan theta unik: sudut mendatar dan phi: sudut menegak), dan memberikan asas pengiraan. Garis dengan theta yang sama dipetakan ke piksel dalam baris yang sama. Fisik sudut yang sepadan meningkat di setiap baris piksel.
Untuk mempermudah matematik, peta 3D terdiri daripada satah dengan pemboleh ubah sepunya (sepunya x, y, atau z), sementara dua pemboleh ubah tidak biasa yang lain terbatas dalam jarak, menyelesaikan definisi setiap satah.
Untuk melihat-lihat dengan tetikus, faktor persamaan program dalam putaran menegak dan mendatar semasa penukaran antara sistem koordinat sfera dan xyz. Ini mempunyai kesan membentuk putaran pada rangkaian garis penglihatan "bola lonjakan".
Langkah 3: Matematik
Persamaan berikut membolehkan program menentukan garis mana yang memotong setiap objek dan maklumat mengenai setiap persimpangan. Saya memperoleh persamaan ini dari persamaan koordinat sfera asas dan persamaan putaran 2D:
r = jarak, t = theta (sudut mendatar), p = phi (sudut menegak), A = putaran mengenai paksi Y (putaran menegak), B = putaran mengenai paksi Z (putaran mendatar)
Kx = (sin (p) * cos (t) * cos (A) + cos (p) * sin (A)) * cos (B) -sin (p) * sin (t) * sin (B)
Ky = (sin (p) * cos (t) * cos (A) + cos (p) * sin (A)) * sin (B) + sin (p) * sin (t) * cos (B)
Kz = -sin (p) * cos (t) * sin (A) + cos (p) * cos (A)
x = r * Kx
y = r * Ky
z = r * Kz
r ^ 2 = x ^ 2 + y ^ 2 + z ^ 2
pencahayaan = Klight / r * (Kx atau Ky atau Kz)
p = arccos ((x * sin (A) * cos (B) + y * sin (A) * sin (B) + z * cos (A)) / r)
t = arccos ((x * cos (B) + y * sin (B) -p * sin (A) * cos (p)) / (r * cos (A) * sin (p)))
Langkah 4: Program
Saya harap penampil 3D prototaip ini membantu anda memahami cara kerja realiti maya 3D. Dengan beberapa penyempurnaan dan pengekodan yang lebih baik, penonton ini pasti berpotensi untuk digunakan dalam pengembangan permainan 3D.
Disyorkan:
Sistem Makluman Tempat Letak Balik Kereta Arduino - Langkah demi Langkah: 4 Langkah
Sistem Makluman Tempat Letak Balik Kereta Arduino | Langkah demi Langkah: Dalam projek ini, saya akan merancang Litar Sensor Tempat Letak Kereta Berbalik Arduino yang ringkas menggunakan Sensor Ultrasonik Arduino UNO dan HC-SR04. Sistem amaran Car Reverse berasaskan Arduino ini dapat digunakan untuk Navigasi Autonomi, Robot Ranging dan rangkaian lain
Langkah demi Langkah Pembinaan PC: 9 Langkah
Langkah demi Langkah Pembinaan PC: Persediaan: Perkakasan: MotherboardCPU & CPU cooler PSU (Unit bekalan kuasa) Penyimpanan (HDD / SSD) RAMGPU (tidak diperlukan) Alat kes: Pemutar skru Gelang ESD / tampal matsthermal dengan aplikator
Pengangkatan Akustik Dengan Arduino Uno Langkah demi Langkah (8-langkah): 8 Langkah
Acoustic Levitation With Arduino Uno Step-by Step (8-step): transduser suara ultrasonik L298N Dc power adaptor wanita dengan pin dc lelaki Arduino UNOBreadboardBagaimana ini berfungsi: Pertama, anda memuat naik kod ke Arduino Uno (ia adalah mikrokontroler yang dilengkapi dengan digital dan port analog untuk menukar kod (C ++)
Pergelangan Tangan Pemapar Foto: 5 Langkah
Photo Viewer Wrist Warmer: Saya membeli salah satu penonton foto keyring ini, ia hanya penyewa jadi saya fikir " ya mengapa tidak, mungkin dapat menggodamnya menjadi sesuatu yang keren ". Jadi ia muncul dan perkara pertama yang saya lakukan ia? Keluarkan dan letakkan di penghangat pergelangan tangan
Pemapar Gambar 3D Digital - "The DigiStereopticon": 6 Langkah (dengan Gambar)
Pemapar Gambar 3D Digital - "The DigiStereopticon": Fotografi stereoskopik tidak disukai. Ini mungkin disebabkan oleh fakta bahawa orang tidak suka memakai cermin mata khas untuk melihat gambar keluarga. Berikut adalah projek kecil yang menyeronokkan yang dapat anda buat dalam masa kurang dari sehari untuk membuat gambar 3D anda