Log In  


Cart #17032 | 2015-11-25 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
18

left/right - move x
up/down - move y
z/x - move z

slow as heck so it only updates every 100th pixel each frame, here is hoping for a pico 8 memory expansion in the future ;)

18


haha, nice one man. I love the dithering.


This is really impressive, awesome job


Absolutely amazing.


If you rendered into sprite memory, you could use sprite calls to rescale it to the screen. Then you could render a really low resolution version in near-real time. Might be a fun thing to try.


This is insane.


This is nice. Well done

I quite agree with slembcke: having a king of low but faster rendering when moving would be nice as it would allow the user to position the camera where he wants to by getting a preview.

It currently takes about 15s to render the full screen so raytracing on a 32x32 grid should take less than a second with your current implementation.

This is what I did with my terrain demo. Well it is not raytraced but rasterized but you get the idea of having two render modes: one fast for real time preview and one slow to get the beautiful stuff.

Some colors would be cool too!


Hey Netgrind, i'm a motion graphics designer working on the 2016 Game Developer's choice awards, and I was wondering if I could capture some video of your PICO-8 Cart and use it in the intro video for the awards show? If that's cool, let me know! :D Thanks!


1



PICO-GLSL?


This is super cool! It's quite fast for a pico-8 program.

I shortened it to 334 characters, 54 over a tweetcart, but at the cost of having no controls and no fancy colors.

cls()c=0t=.3f=1a=1z=128g=.5k=.25::s::c+=1c%=100for j=0,z^2do if(j%100==c)then d=j\z x=d/z e=j%z y=e/z r={g,g,k}for i=0,40do q={(r[1]%g)-k,(r[2]%g)-k,((r[3]+t)%g)-k}a=((q[1]^2)+(q[2]^2)+(q[3]^2))^g a=a-.1r[1]+=(x+x-1)/1*.4*a r[2]+=(y+y-1)/1*.4*a r[3]+=2*.4*a f=i\6/2
if(a<.01)break;end
if(f%1==g)f+=(d+e)%2
pset(d,e,f%16)end end goto s

edit: using bitwise operators you can save 1 character, and it might increase the speed slightly assuming bitwise are still faster than the normal ones; I also slightly rearranged the order of operations which saved 3.

cls()c=0t=.3f=1a=1z=128g=.5k=.25::s::c+=1c%=100for j=0,z^2do if(j&99==c)then d=j\z x=d/z e=j%z y=e/z r={g,g,k}for i=0,40do q={(r[1]%g)-k,(r[2]%g)-k,((r[3]+t)%g)-k}a=((q[1]^2)+(q[2]^2)+(q[3]^2))^g a=a-.1r[1]+=(x+x-1)/1*a*.4r[2]+=(y+y-1)/1*a*.4r[3]+=2*a*.4f=i\6/2
if(a<.01)break;end
if(f%1==g)f+=(d+e)&1
pset(d,e,f&15)end end goto s


[Please log in to post a comment]