[Gabriel Gambetta] tietää muutamia asioita sädejäljityksistä, koska hän on kirjoittanut Tiny Raytracerin, raytracerin, joka on kirjoitettu vain 912 tavulla JavaScriptiä. Pitkästä aikaa kaveri Iso-Britannian suunnittelemasta ZX Spectrumista kärsivänä, voitaisiinko nämä kaksi rakkaussuhdetta yhdistää? Voisiko Tiny Raytracer sopia ZX Spectrumiin? BASICissa? Vastaus on myönteinen, vaikkakin rakkaan lajimme monien rajoitusten kanssa.
Tarina alkaa [Gabrielista] Computer Graphics From Scratch (CGFS) raytracer-algoritmit ja olemassa oleva koodikanta, joka on siirretty ZX Spectrumin erittäin rajoitettuun BASIC-murteeseen käyttämällä VSCodea editointiin, BAS2TAP luodaksesi nauhakuvatiedoston (lähinnä ääniraidan) ja suorittaaksesi sen kanssa FUSE. Kun työkaluketju on lajiteltu, [Gabriel] lisää juuri sen verran koodia, että se käsittelee pallon säteen leikkausyhtälöitä, ja tekee kolmen pallon kohtauksen 32 × 22 pikselin värikuvaksi, mikä kestää vain 15 minuuttia. Muut sairastuneet muistavat, että spektrillä oli 32 × 22 lohkoattribuuttiryhmä (tai väritaulukko), jossa oli kaksi väriarvoa etu- ja taustapikseleille. Jokainen attribuuttilohko sisältää 8 × 8 pikseliä, joista jokainen voi olla etualalla (päällä) tai taustalla (pois). Seuraava vaihe oli sitten laajentaa koodia käsittelemään pikseleitä sekä lohkoja yksinkertaisesti laajentamalla säteenseuranta koko 256 pikseliin. ×176 resoluutio ja määritä jokaiselle lohkolle kaksi yleisintä väriä ja suorita koko lohkon värit. Se tavallaan toimii, hyvin spektri-esq "attribuuttien yhteentörmäys" tavalla.
Mutta nyt ajoaika on 17 tuntia! Seuraavaksi suorituskyvyn säätämistä käyttäen melko vähän spektrin BASIC-hakkerointia ja joitain graafisia approksimaatioita, kuten säteiden lähettäminen lohkon jokaiselle kulmapikselille, ja jos ne ovat identtisiä, kaikki loput 60 pikseliä värjätään samoin ja siirrytään eteenpäin. . Tämä ponnistus lyhensi käyttöaikaa kahteen tuntiin.
Seuraavaksi [Gabriel] luopuu urheasti litteän valaistuksen mallista, mallintaa yhden valonlähteen ja vetää esiin ainoan jäljellä olevan tempun yksivärisen spektrin maailmassa, joka on kunkin lohkon intensiteettiarvojen häivytys käyttämällä yksinkertaista 8×8 tilattu dither-kuvio, se ei näytä kovin pahalta, kaikki huomioon ottaen. Nopea pysähdys matkalla valmistumiseen, kohti lisää varjoja ja ajoaika on palannut 17 tuntiin, mutta se on sen arvoista. On selvää, että tämä on optimoitu yhdelle kohtaustyypille, jossa pallot esiintyvät pääasiassa, mutta periaatteet ovat olemassa, ja kuutiot ovat vain muutaman koodirivin päässä. Onko ottajia?
Säteenseuranta on yksi niistä hauskoista, mutta monimutkaisista tehtävistä, joita ihmiset vain rakastavat kiilauttaa sopimattomaan laitteistoon, kuten tämä TI-84Plus CE graafinen laskin, ja jos sitä on vähän vaikea saada, tässä on jotain yhtä hullua toimii tavallisella vanhalla Excelillä.
- SEO-pohjainen sisällön ja PR-jakelu. Vahvista jo tänään.
- PlatoData.Network Vertical Generatiivinen Ai. Vahvista itseäsi. Pääsy tästä.
- PlatoAiStream. Web3 Intelligence. Tietoa laajennettu. Pääsy tästä.
- PlatoESG. hiili, CleanTech, energia, ympäristö, Aurinko, Jätehuolto. Pääsy tästä.
- PlatonHealth. Biotekniikan ja kliinisten kokeiden älykkyys. Pääsy tästä.
- Lähde: https://hackaday.com/2024/01/26/a-zx-spectrum-raytracer-in-basic/
- :On
- :missä
- 1
- 15%
- 17
- 400
- 60
- a
- Meistä
- pääsy
- Lisää
- Asioiden
- Kaikki
- an
- ja
- vastaus
- Kaikki
- OVAT
- Ryhmä
- AS
- audio-
- kirjoittaja
- pois
- takaisin
- tausta
- Huono
- pohja
- perustiedot
- BE
- ovat
- rakastettu
- Bitti
- Tukkia
- Blocks
- mutta
- by
- valu
- selvästi
- koodi
- koodikanta
- Yhteinen
- valmistuminen
- monimutkainen
- harkittu
- sisältää
- Kulma
- voisi
- sopimus
- Määrittää
- ojat
- ei
- kukin
- muokkaus
- vaivaa
- tarpeeksi
- yhtä
- yhtälöt
- olennaisesti
- Eetteri (ETH)
- teloitettiin
- olemassa
- Laajentaa
- laajenee
- Muoti
- Ominaisuus
- kaveri
- harvat
- filee
- sovittaa
- tasainen
- varten
- alkaen
- koko
- hauska
- tuottaa
- grafiikka
- hakata
- HAD
- kahva
- Kova
- Palvelimet
- TUNTIA
- HTML
- HTTPS
- identtinen
- if
- kuva
- in
- leikkauspiste
- tulee
- IT
- JavaScript
- vain
- laji
- tietää
- valo
- Valaistus
- rajallinen
- linjat
- katso
- rakkaus
- monet
- max-width
- pelkkä
- pöytäkirja
- malli
- mallit
- yksivärinen
- lisää
- eniten
- liikkuvat
- netto
- seuraava
- nyt
- of
- pois
- Vanha
- on
- ONE
- vain
- Optimoitu
- or
- meidän
- ulos
- Ihmiset
- suorituskyky
- pixel
- tavallinen
- Platon
- Platonin tietotieto
- PlatonData
- pääasiallisesti
- ensisijainen
- periaatteet
- Vetää
- nopea
- melko
- RAY
- säteen jäljitys
- Vähentynyt
- jäljellä oleva
- muistaa
- tekee
- päätöslauselma
- ajaa
- sama
- kohtaus
- raapia
- Yksinkertainen
- yksinkertaisesti
- single
- jonkin verran
- jotain
- lähde
- spektri
- pallo
- Kaupallinen
- Vaihe
- alkaa
- stop
- Tarina
- niin
- ottajia
- ottaen
- nauha
- tehtävät
- että
- -
- Lohko
- sitten
- Siellä.
- Nämä
- asiat
- tätä
- ne
- aika
- että
- liian
- jäljitys
- raita
- säätämistä
- kaksi
- tyyppi
- käyttämällä
- arvot
- hyvin
- oli
- Tapa..
- HYVIN
- joka
- koko
- wikipedia
- tulee
- with
- toimii
- maailman-
- arvoinen
- kirjallinen
- zephyrnet