Hacker News new | past | comments | ask | show | jobs | submit login
An Introduction to ASCII Ray Marching (ch-st.de)
119 points by c-st on March 8, 2021 | hide | past | favorite | 9 comments



I ported it to aalib. Instead of a 7 character linear ramp, the aalib version renders to a larger framebuffer, dithers it down to the closes matching characters.

https://gist.github.com/pdkl95/094cc065ab0215e121da29a63e6c1...

        ajWm##Xs,
      aWWWWBm##S2s,
     jQQWQWWmm#XXov,
    _QQQQWWBBm#ZX2n(
    ]QQQWWWBmm#XXovl
    4WWWWWmmm#XX2ovi`
    ]mBBmmmm#XXXonl|
     ###m##ZZXSonI|`
     -XZZZXXXonvI|~
       "Xo2onvvi+`
         -"^^~~


Very cool, great visual explanations of how raymarching works.

PSA, Germans writing in English: upside down quotes look as out of place as Spanish question marks! They read like two strange misplaced commas to the rest of us.


The first paragraphs contain the most concise explanation of the differences between rasterization and ray tracing I ever encountered!


Very cool! Reminds me of the old days of ASCII art, I think I last saw it mostly on warez readmes (some really impressive ones)

Edit: I love the combo of ray marching and fonts too [0], as previously seen on HN [1]

[0] https://www.rykap.com/2020/09/23/distance-fields/

[1] https://news.ycombinator.com/item?id=24569542



https://github.com/a1k0n/asciitracing sort of combines those things also


Great post! This motivated more learning for me about ray-tracing and ray-marching than I've ever bothered with, despite over a decade of vague interest.

If anyone wants a copy, I ported the diffuse shader code to python 2 and 3 here: https://gist.github.com/wcarss/a6ff897fb9c50ac34875dbd5d8599...


I love it. It's brilliant to side step the whole issue of how to get access to pixels on your screen or in a png, which in some instances is an awful afternoon of frustration. It's almost always easy to get printing going.


Nice work. Reminds me of some of the work of Pete Cooke of Tau Ceti and Academy fame on 8-bit platforms.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: