Age | Commit message (Collapse) | Author |
|
|
|
More candy
|
|
This should produce a rototiller executable with all the renderers available,
and the ability to choose the DRM card and connector.
|
|
This will be replacing the old rototiller listings, and uses all the
new stuff (drm_setup, fb, fps, renderers...)
|
|
My first ray tracer, it only has spheres, planes, and point light sources.
No texture mapping, no soft shadows, no global illumination.
This is all very basic right now, the camera movement is simple and boring, but
sufficient for further development and optimization.
I made some effort to support multiple CPUs, it should detect the number of
CPUs in the system and use enough pthreads to keep them busy.
Jacco Bikker's tutorial on flipcode was the original impetus to do this, and
definitely served as a guide early on.
|
|
A while ago I made this particle system on SDL, and had the beginnings of
an octree implemented within it, but never finished actually using the
octree to accelerate the proximity searches.
This now has the octree completed and of course more particle interactions now
that neighbors could be found more quickly.
The simulation somewhat resembles a fireworks display. Every particle is drawn
as a single pixel. The visual effect is dominated by spontaneously spawned
rockets which explode into thousands of particles accompanied by bursts that
thrust particles away from the explosion radially in an expanding sphere
resembling a shock wave. When the shock wave happens to strike another rocket,
it explodes, resulting in another shock wave. This can produce spectacular
chain reactions, so it's worth running for some time and seeing what transpires.
|
|
|
|
quick and dirty stdio-based drm card and connector selection
|
|
quick and dirty stdio dialog helpers
|
|
Moving towards a modular renderer model so we can draw different things.
|
|
|
|
|
|
Also introduces get_ncpus(), in preparation for threaded rendering.
|
|
This is just the implementation, nothing leveraged yet.
|
|
This implementation uses a page flipping thread and very simple
pthreads mutex/condition variable synchronization. There is room
for improvement, but this combined with 3 fb pages enables the
rendering loop to fully overlap with page flipping with the next
ready page queued asynchronously.
|
|
|
|
This is a retro-style demo hack, demonstrating libdrm dummy buffer use for
achieving "oldskool" demo-style graphics programming on modern linux.
It's a quick and nasty hack, some effort was put into optimizing the renderer,
but the libdrm setup code is prototype quality at best, it's a spaghetti of
crap cobbled together while scrutinizing the libdrm headers until something
showed on-screen.
The amazing thing is, it actually works, and quite well at that, on my machine
anyways.
|