[chbot] Scene description language for GPU's - a project failure
Mark Atherton
markaren1 at xtra.co.nz
Fri Jun 12 10:39:28 BST 2020
Thanks Geoffrey.
quote of the day "and a touch of the nightmare that is the web
development ecosystem"
-Mark
On 12/06/2020 9:23 PM, Geoff wrote:
> Hey all,
>
> I recently discovered that the power of a modern GPU allows
> brute-forcing constructive solid geometry
> <https://en.wikipedia.org/wiki/Constructive_solid_geometry> (aka how
> CAD programs work) on a per-pixel basis. As I know a bit of GLSL, I
> endeavoured to create a small CAD program.
>
> For those who know nothing about a GPU: you can treat it like a CPU
> with a thousand cores, with the caveat that all the cores are
> performing the same instruction at the same time. Typically you write
> a "shader" program that gets executed for a region on the screen.
>
> My idea was to define primitives (box, sphere), transformations
> (translate, rotate) and boolean operations (union, intersect,
> difference) in a declarative language. For example, you may say:
>
> * Create An Entity
> * Move the entity 3 units along the X axis
> * The entity is a box
> * The entity should be joined to the existing entities with a
> "difference" operation
>
> A mini version you can play with is available online here:
> https://www.shadertoy.com/view/ttXcWH
> The scene description begins on line 52.
>
> Unfortunately I couldn't get the system performant enough to be
> useful. I think this is because of the (by shader standards) high
> amount of memory fetches required, or perhaps the instruction cache is
> getting hammered? (There is zero information on the size of the
> instruction cache on modern GPU's).
>
> Anyway, there's a random failure that failed. If I could be bothered
> continuing with making a CAD program, I'd probably dynamically
> generate the shader. This would be slower when you edit the scene (as
> it would have to recompile the shader), but would be faster on execution.
>
> If nothing else, I learned a bunch of Rust, WebAssembly and WebGL and
> a touch of the nightmare that is the web development ecosystem. Full
> project repository https://github.com/sdfgeoff/sdf_designer_failed
>
> Geoffrey
>
>
>
>
>
> _______________________________________________
> Chchrobotics mailing list Chchrobotics at lists.ourshack.com
> https://lists.ourshack.com/mailman/listinfo/chchrobotics
> Mail Archives: http://lists.ourshack.com/pipermail/chchrobotics/
> Meetings usually 3rd Monday each month. See http://kiwibots.org for venue, directions and dates.
> When replying, please edit your Subject line to reflect new subjects.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ourshack.com/pipermail/chchrobotics/attachments/20200612/6f8b445b/attachment.html>
More information about the Chchrobotics
mailing list