Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tinyraytracer on ESP32 #7

Open
tobozo opened this issue Jan 23, 2019 · 13 comments
Open

Tinyraytracer on ESP32 #7

tobozo opened this issue Jan 23, 2019 · 13 comments

Comments

@tobozo
Copy link

tobozo commented Jan 23, 2019

Hello and thanks for this g茅nialissime project 馃憤

Just to let you know I tried your code on ESP32 and it worked just fine with very little modification.
The ESP32 doesn't have that much ram so I applied a direct TFT rendering approach instead of using the framebuffer.

https://github.com/tobozo/ESP32-Raytracer

@manthrax
Copy link

Rad! Pocket RayTracer! How long to render a frame on the TFT?! I would legit love to have a keychain device that raytraces :D

@ssloy
Copy link
Owner

ssloy commented Jan 23, 2019

Wow, that's very cool, thank you!

@tobozo
Copy link
Author

tobozo commented Jan 23, 2019

I'll add a timer to the code when back from work, but it takes about 20 seconds to render.

It's far from being able to render an amiga boing ball animation in real time, but still impressive for a 240MHz MCU :-)

@ssloy ssloy pinned this issue Jan 23, 2019
@ssloy
Copy link
Owner

ssloy commented Jan 23, 2019

ESP + OLED, binary image with simple test if the color is >128.

1.5s for the 64 x 128 screen size.

@tobozo
Copy link
Author

tobozo commented Jan 23, 2019

looks like a LoRa Heltec build ^_^

interesting how that ssd1306 seems to have burn traces from its usual duty, I always thought this would never happen on OLEDs.

do you have an estimation of its total uptime ? I haven't observed this yet but I guess it's time to add dimming to my own ssd1306 projects

@ssloy
Copy link
Owner

ssloy commented Jan 23, 2019

3 weeks of constant uptime. Now with dithering :)

@tobozo
Copy link
Author

tobozo commented Jan 23, 2019

I wish this OLED was capable of doing stable grayscales

@ssloy ssloy unpinned this issue Jan 25, 2019
@tobozo
Copy link
Author

tobozo commented Jan 26, 2019

*currently testing multiple image rendering to sdcard as jpeg data, I've modified this jpeg library so it uses the psram

the ambition behind this is obviously to play a pre-rendered animation although I'm not sure yet jpeg is the right choice to achieve a fast frame rate when playing later (GIF compression is less efficient but supports transparency+partial writes)

@tobozo
Copy link
Author

tobozo commented Jan 26, 2019

Dimensions: 128x64
Rendering time: ~3s per frame
Frames: 60

bouncing-60 frames 128x64

Youtube link

@ssloy
Copy link
Owner

ssloy commented Jan 27, 2019

Fantastic. Can't wait for my display to arrive :)

@tobozo
Copy link
Author

tobozo commented Mar 11, 2019

getting closer to the Amiga Boing ball sphere material, playing a 2D animation over it just because ...

https://youtu.be/yg1FgM8eU6U

@ssloy
Copy link
Owner

ssloy commented Mar 13, 2019

Awesome!

@tobozo
Copy link
Author

tobozo commented Apr 20, 2019

I'll just put this here as it somehow seems relevant 馃ぃ

image

Source: https://twitter.com/txsector/status/1119280135922827264

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants