[Gabriel Gambetta] ve nekaj stvari o sledilnikih žarkov, saj je avtor Tiny Raytracerja, sledilnika žarkov, napisanega v samo 912 bajtih JavaScripta. Kot dolgo časa kolega ki trpi za ZX Spectrumom, zasnovanim v Veliki Britaniji, bi lahko ti dve ljubezni združili? Bi lahko Tiny Raytracer ustrezal ZX Spectrumu? V BASIC-u? Odgovor je pritrdilno, čeprav s številnimi omejitvami naše ljubljene vrste.
Zgodba se začne z [Gabrielovo]. Algoritmi za sledenje žarkov računalniške grafike iz nič (CGFS). in obstoječo kodno osnovo, ki je bila prenesena v zelo omejeno narečje BASIC ZX Spectruma, z uporabo VSCode za urejanje, BAS2TAP za ustvarjanje slikovne datoteke traku (v bistvu zvočni posnetek) in izvedbo z FUSE. Ko je veriga orodij razvrščena, [Gabriel] doda ravno dovolj kode za obravnavo enačb presečišča žarkov krogle in upodablja prizor s tremi kroglami v barvno sliko 32 × 22 slikovnih pik, kar traja le 15 minut izvajanja. Sotrpini se bodo spomnili, da je imel spekter polje atributov blokov 32×22 (ali barvno polje) z dvema barvnima vrednostma za slikovne pike ospredja in ozadja. Vsak atributni blok vsebuje 8 × 8 slikovnih pik, od katerih je vsaka lahko v ospredju (vklopljeno) ali v ozadju (izklopljeno). Naslednja stopnja je bila razširitev kode za obdelavo slikovnih pik in blokov, tako da preprosto razširite sledenje žarkom na polnih 256 ×176 ločljivost in za vsak blok preprosto določite dve najpogostejši barvi in zaženite s tistima za celoten blok. Nekako deluje, na zelo spekter-esq način 'spopada atributov'.
Toda zdaj je čas delovanja 17 ur! Sledi točka prilagajanja zmogljivosti z uporabo kar nekaj vdorov spektra BASIC in nekaj grafičnih približkov, kot je oddajanje žarkov za vsako kotno slikovno piko bloka, in če so enaki, enako barvanje vseh preostalih 60 slikovnih pik in nadaljevanje . Ta trud je zmanjšal čas delovanja na dve uri.
Nato [Gabriel] pogumno opusti model ravne osvetlitve, modelira en sam svetlobni vir in izvleče edini preostali trik v svetu monokromatskega spektra, to je umirjanje vrednosti intenzivnosti za vsak blok z uporabo preprostega 8×8 urejen vzorec drhtanja, to ne izgleda tako slabo, če upoštevamo vse. Hiter postanek poti do zaključka, do dodajte sence in čas delovanja se je vrnil na 17 ur, vendar je vredno. Jasno je, da je to optimizirano za eno samo vrsto prizora, kjer so pretežno predstavljene krogle, vendar so načela prisotna, kocke pa so oddaljene le še nekaj vrstic kode. Ali kdo prevzame?
Raytracing je ena tistih zabavnih, a zapletenih nalog, ki jih ljudje radi zagozdijo v neprimerno strojno opremo, kot je ta grafični kalkulator TI-84Plus CE, in če je to nekoliko težko dostopno, je tukaj nekaj enako norega teče v navadnem starem Excelu.
- Distribucija vsebine in PR s pomočjo SEO. Okrepite se še danes.
- PlatoData.Network Vertical Generative Ai. Opolnomočite se. Dostopite tukaj.
- PlatoAiStream. Web3 Intelligence. Razširjeno znanje. Dostopite tukaj.
- PlatoESG. Ogljik, CleanTech, Energija, Okolje, sončna energija, Ravnanje z odpadki. Dostopite tukaj.
- PlatoHealth. Obveščanje o biotehnologiji in kliničnih preskušanjih. Dostopite tukaj.
- vir: https://hackaday.com/2024/01/26/a-zx-spectrum-raytracer-in-basic/
- : je
- :kje
- 1
- 15%
- 17
- 400
- 60
- a
- O meni
- dostop
- Dodaja
- zadeve
- vsi
- an
- in
- odgovor
- kaj
- SE
- Array
- AS
- audio
- Avtor
- stran
- nazaj
- ozadje
- Slab
- baza
- Osnovni
- BE
- počutje
- ljubljeni
- Bit
- Block
- Bloki
- vendar
- by
- litje
- jasno
- Koda
- baza kod
- Skupno
- dokončanje
- kompleksna
- šteje
- Vsebuje
- Kotiček
- bi
- ponudba
- Ugotovite,
- Jarki
- Ne
- vsak
- urejanje
- prizadevanje
- dovolj
- enako
- enačbe
- v bistvu
- Eter (ETH)
- izvršeno
- obstoječih
- Razširi
- širi
- Moda
- Feature
- kolega
- Nekaj
- file
- fit
- stanovanje
- za
- iz
- polno
- zabava
- ustvarjajo
- grafika
- žaga
- imel
- ročaj
- Trdi
- strojna oprema
- URE
- HTML
- HTTPS
- enako
- if
- slika
- in
- križišče
- v
- IT
- JavaScript
- samo
- Otrok
- ve
- light
- Razsvetljava
- Limited
- linije
- Poglej
- ljubezen
- več
- max širine
- Mers
- min
- Model
- modeli
- enobarvni
- več
- Najbolj
- premikanje
- net
- Naslednja
- zdaj
- of
- off
- Staro
- on
- ONE
- samo
- Optimizirano
- or
- naši
- ven
- ljudje
- performance
- pixel
- Plain
- platon
- Platonova podatkovna inteligenca
- PlatoData
- pretežno
- primarni
- Načela
- Potegne
- Hitri
- precej
- RAY
- snovanje
- Zmanjšana
- Preostalih
- ne pozabite
- ometi
- Resolucija
- Run
- Enako
- Prizor
- praska
- Enostavno
- preprosto
- sam
- nekaj
- Nekaj
- vir
- Spectrum
- področju
- Komercialni
- Stage
- začne
- stop
- Zgodba
- taka
- odjemalci
- ob
- trak
- Naloge
- da
- O
- Blok
- POTEM
- Tukaj.
- te
- stvari
- ta
- tisti,
- čas
- do
- tudi
- Sledenje
- sledenje
- tweaking
- dva
- tip
- uporabo
- Vrednote
- zelo
- je
- način..
- Dobro
- ki
- celoti
- Wikipedia
- bo
- z
- deluje
- svet
- vredno
- pisni
- zefirnet