facebook-on lévő raytracer EP-re Pascalban:Átírtad? Mennyi idő alatt fut le?
Átírtad? Mennyi idő alatt fut le?24 perc 56 mp, out 191,12-vel
A BASIC az kb másfél óra ALT+W-vel :oops:
Mondjuk ha jól nézem a tiéd az nem max képernyős.
(Attachment Link)
Átírtad? Mennyi idő alatt fut le?ó, látom, te hires kétszínű módot használtál!
A BASIC az kb másfél óra ALT+W-vel :oops:
Mondjuk ha jól nézem a tiéd az nem max képernyős.
(Attachment Link)
Talán érdekes lenne még C-re átírni egész számos aritmetikával, vagy 4 színű módban ditherelt színátmenetre módosítani, ha az eredeti algoritmus azt lehetővé teszi.nekem is eszembe jutott, a program eredeti szerzője készített egy 16 bites float rutint, azzal 6 perc a speccy-n, állítja, hogy annál még a fixpontos se lenne gyorsabb.
ó, látom, te hires kétszínű módot használtál!És azt is 27x42-es lapon :-)
Átírtad? Mennyi idő alatt fut le?Zozó, mik a paraméterek a max felbontáshoz? (a fő ciklusban a i, j és dz?)
A BASIC az kb másfél óra ALT+W-vel :oops:
Mondjuk ha jól nézem a tiéd az nem max képernyős.
(Attachment Link)
Talán érdekes lenne még C-re átírni egész számos aritmetikával, vagy 4 színű módban ditherelt színátmenetre módosítani, ha az eredeti algoritmus azt lehetővé teszi.Igen, érdekes lenne megnézni többféle programnyelvben.
gyorsan rákerestem, de nem találtam semmiféle raytrace dolgot specyre vagy hasonló régi gépre! durva :)A Spectrum Mánia nevű facebook csoportba rakta ki az eredeti kódot a Daniel A. Nagy nevű fickó, ő írta a 16 bites float rutinokat is:
6 perc alatt lefut specyn BASICBEN?????? jól értem?neeem, 8 és fél óra BASIC-ben, 6 perc assembly-ben, 16 bites float-tal
neeem, 8 és fél óra BASIC-ben, 6 perc assembly-ben, 16 bites float-tal
Nagyon jól néz ki, gondolom itt azért több szín van a képen.
Ez a módosítás elvileg működhetne EP-n is 4 színű módban, a Z változó alapján állítja a színt (196. sor), ami talán javítja a 3D effektust:
(Attachment Link)
(Attachment Link)
és tényleg jó lenne egy külön raytrace topikba szétszedni :-)Szétszedtem :-)
még mindig ezen csodálkozok. raytrace ep-n, specy-n :)Primora és Zx81-re is átírták :-)
marha jól néz ki, mindig csak ámulok és bámulok, hogy dither-rel milyen szépet lehet csinálni (és hogy van olyan, aki érti, hogy kell lekódolni, de előbb-utóbb most már erőt veszek magamon, és kielemzem a kódot :-) )
Nade kérem, ez mikor lesz 50 FPS ? !
A PC-s verzió lehetne. :) Akár GPU (shader) alapú is, mint az itt (https://enterpriseforever.com/ep128emu/plus4emu/msg64027/#msg64027) látható Mandelbrot példa, szerintem így növelhető lenne a felbontás. EP-n néhány előre renderelt képkockát lehetne megjeleníteni animációként.
Ehhez lenne értelme a kooprocit összebarkácsolni? (http://ep.homeserver.hu/Hardware/Cooprocessor/cooprocessor.htm)
Sebesség összehasonlítás a jelenlegi verzióval:Nem semmi gyorsulást sikerült elérni, amúgy a két kép között nem is vettem észre különbséget, igaz váltogatva néztem.
ray2sdcc ray2fast
----------------------------------
__fsadd: 2447.325 s 306.651 s
__fssub: 1679.457 s 217.501 s
__fsmul: 11810.507 s 1061.920 s
__fsdiv: 1999.392 s 260.163 s
__fseq: 11.287 s 3.429 s
__fslt: 236.658 s 50.373 s
__sint2fs: 207.031 s 14.179 s
ldexpf: 58.940 s 5.914 s
frexpf: 22.945 s 2.520 s
floorf: 252.169 s 14.956 s
----------------------------------
Ehhez lenne értelme a kooprocit összebarkácsolni? (http://ep.homeserver.hu/Hardware/Cooprocessor/cooprocessor.htm)
Ha támogat szabványos 32 bites float formátumot (pl. 1.0 = 3F800000h), akkor valószínűleg használható lenne.Sajnos nem azt használ, de bitforgatásokkal elég könnyen át lehetne alakítani az AMD-s formátumra (7 bites kitevő, 24 bites mantissza).
érdemes lenne!!!
főleg, hogy a HiSoft Pascal tud arra is fordítani! :-)
akkor már nem csak kooproci, hanem vannak valami direkt 3d számolásra való extra utasítások is. bár lehet hogy manapság ez már rég benne van a cooprociban :)Ez a koproci, amiről szó van, a 70-es évek találmánya, ma már nem is kapható, legfeljebb bontottan aranyáron, vagy Kínából, hamisítványként. Viszont Z80-hoz nagyon könnyen társítható (valójában arra találták ki, vagy inkább az Intel 8080-hoz). 3D utasításokat nem tud, de az alapműveleteken kívül van benne sin, cos, gyökvonás stb.
Ez a koproci, amiről szó van, a 70-es évek találmánya, ma már nem is kapható, legfeljebb bontottan aranyáron, vagy Kínából, hamisítványként. Viszont Z80-hoz nagyon könnyen társítható (valójában arra találták ki, vagy inkább az Intel 8080-hoz). 3D utasításokat nem tud, de az alapműveleteken kívül van benne sin, cos, gyökvonás stb.ű
Nem semmi gyorsulást sikerült elérni,
Ehhez lenne értelme a kooprocit összebarkácsolni? (http://ep.homeserver.hu/Hardware/Cooprocessor/cooprocessor.htm)
Ha van a hardver programozására már működő példa, akkor annak alapján lehetne a használatával próbálkozni, és Xep128 emulátorral tesztelhető lenne.Lgb belerakta a javascript ep-emulátorába, de nem pontos emuláció
amúgy az mennyire lassítana, ha valami "editálható" objekteket renderelne?
persze nem polygonokra gondolok meg komolyabb dologra, hanem csak megadható gömbök, kockák stb...
Megoldható. Elvileg fel van rá készítve a kód. A sebességcsökkenés nagyjából azzal arányos, hogy milyen gyorsan tudod detektálni, hogy az adott ojjektumot nem találja el a fénysugár.
Saját fejlesztésű float rutinokkal (floatlib.c és float.s) már használhatóbb sebességű, ez 40:44 alatt fut le, a felbontás 42x27 EXOS karakter, azaz 336x243 pixel:
A float.s még nem tökéletes, kissé pontatlan (elsősorban az összeadás és kivonás), előfordulhatnak hibák, és a sebességen is lehetne tovább javítani. :oops: