[Gabriel Gambetta] tud néhány dolgot a sugárkövetőkről, mivel ő a Tiny Raytracer szerzője, egy mindössze 912 bájt JavaScript-be írt raytracer. Hosszú időnként fickó az Egyesült Királyságban tervezett ZX Spectrum szenvedője, összevonható ez a két szerelmi kapcsolat? A Tiny Raytracer belefér a ZX Spectrumba? BASIC-ben? A válasz igenlő, bár szeretett fajunk számos korlátjával együtt.
A történet [Gabriellel] kezdődik Computer Graphics From Scratch (CGFS) raytracer algoritmusok és egy meglévő kódbázis, amelyet a ZX Spectrum nagyon korlátozott BASIC dialektusára portoltak át, a VSCode segítségével szerkesztve, BAS2TAP szalagos képfájl (lényegében hangsáv) létrehozásához, és ezzel végrehajtva FUSE. Az eszközlánc rendezése után [Gabriel] éppen annyi kódot ad hozzá, hogy kezelje egy gömb sugármetszésegyenleteit, és egy három gömbből álló jelenetet 32 × 22 pixeles színes képpé renderel, ami mindössze 15 percet vesz igénybe. A betegek emlékezni fognak arra, hogy a spektrumnak volt egy 32×22-es blokk attribútumtömbje (vagy színtömbje), két színértékkel az előtér és a háttér képpontjaihoz. Minden attribútumblokk 8×8 pixelt tartalmaz, amelyek mindegyike lehet előtérben (bekapcsolt) vagy háttérben (kikapcsolva) ×256 felbontású, és minden blokkhoz egyszerűen határozza meg a két leggyakoribb színt, és futtassa azokkal az egész blokkra. Valahogy működik, nagyon spektrum-esq „tulajdonság-összeütközés” típusú módon.
De most 17 óra az üzemidő! Következő lépés a teljesítmény módosítása, jó néhány spektrum BASIC hack használatával, és néhány grafikus közelítéssel, mint például sugarak leadása a blokk minden sarokpixelére, és ha ezek megegyeznek, a maradék 60 képpont azonos színezése és továbblépés. . Ez az erőfeszítés két órára csökkentette a futási időt.
Következő [Gábriel] bátran lemond a lapos világítási modellről, egyetlen fényforrást modellez, és egy egyszerű módszerrel előveszi a monokróm spektrum világ egyetlen megmaradt trükkjét, az egyes blokkok dithering intenzitásértékeit. 8×8 rendelt dither minta, ez nem tűnik túl rossznak, mindent figyelembe véve. Gyors megálló a befejezés felé vezető úton árnyékok hozzáadása és a futási idő visszaállt 17 órára, de megéri. Nyilvánvaló, hogy ez egyetlen jelenettípusra van optimalizálva, olyanra, ahol túlnyomórészt a gömbök jelennek meg, de az elvek megvannak, és a kockák csak néhány sornyi kódnyira vannak. Vannak fogadók?
A sugárkövetés egyike azoknak a szórakoztató, de összetett feladatoknak, amelyeket az emberek szeretnek nem megfelelő hardverbe ékelni, mint ez a TI-84Plus CE grafikus számológép, és ha ez egy kicsit nehezen elérhető, akkor itt van valami ugyanolyan őrült sima régi Excelben fut.
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- PlatoData.Network Vertical Generative Ai. Erősítse meg magát. Hozzáférés itt.
- PlatoAiStream. Web3 Intelligence. Felerősített tudás. Hozzáférés itt.
- PlatoESG. Carbon, CleanTech, Energia, Környezet, Nap, Hulladékgazdálkodás. Hozzáférés itt.
- PlatoHealth. Biotechnológiai és klinikai vizsgálatok intelligencia. Hozzáférés itt.
- Forrás: https://hackaday.com/2024/01/26/a-zx-spectrum-raytracer-in-basic/
- :is
- :ahol
- 1
- 15%
- 17
- 400
- 60
- a
- Rólunk
- hozzáférés
- Hozzáteszi
- ügyek
- Minden termék
- an
- és a
- válasz
- bármilyen
- VANNAK
- Sor
- AS
- hang-
- szerző
- el
- vissza
- háttér
- Rossz
- bázis
- alapvető
- BE
- hogy
- szeretett
- Bit
- Blokk
- Blocks
- de
- by
- öntvény
- világosan
- kód
- kódbázis
- Közös
- befejezés
- bonyolult
- figyelembe vett
- tartalmaz
- Sarok
- tudott
- üzlet
- Határozzuk meg
- árkok
- Nem
- minden
- szerkesztés
- erőfeszítés
- elég
- egyaránt
- egyenletek
- lényegében
- Eter (ETH)
- végrehajtott
- létező
- Bontsa
- bővülő
- Divat
- Funkció
- fickó
- kevés
- filé
- megfelelő
- lakás
- A
- ból ből
- Tele
- móka
- generál
- grafika
- hack
- kellett
- fogantyú
- Kemény
- hardver
- NYITVATARTÁS
- HTML
- HTTPS
- identiques
- if
- kép
- in
- útkereszteződés
- bele
- IT
- JavaScript
- éppen
- Kedves
- tudja
- fény
- minőségi
- Korlátozott
- vonalak
- néz
- szerelem
- sok
- max-width
- mers
- jegyzőkönyv
- modell
- modellek
- monokróm
- több
- a legtöbb
- mozgó
- háló
- következő
- Most
- of
- kedvezmény
- Régi
- on
- ONE
- csak
- Optimalizált
- or
- mi
- ki
- Emberek (People)
- teljesítmény
- pixel
- Egyszerű
- Plató
- Platón adatintelligencia
- PlatoData
- Főleg
- elsődleges
- elvek
- Húz
- Quick
- egészen
- RAY
- sugárkövetés
- Csökkent
- megmaradó
- eszébe jut
- vakolatok
- Felbontás
- futás
- azonos
- színhely
- kaparni
- Egyszerű
- egyszerűen
- egyetlen
- néhány
- valami
- forrás
- Spektrum
- gömb
- Spot
- Színpad
- kezdődik
- megáll
- Történet
- ilyen
- szedők
- bevétel
- szalag
- feladatok
- hogy
- A
- A háztömb
- akkor
- Ott.
- Ezek
- dolgok
- ezt
- azok
- idő
- nak nek
- is
- nyomkövetés
- vágány
- csípés
- kettő
- típus
- segítségével
- Értékek
- nagyon
- volt
- Út..
- JÓL
- ami
- egész
- Wikipedia
- lesz
- val vel
- művek
- világ
- érdemes
- írott
- zephyrnet