All Projects → codeanticode → planetarium

codeanticode / planetarium

Licence: other
A Processing library for dome projection.

Programming Languages

java
68154 projects - #9 most used programming language
CSS
56736 projects
HTML
75241 projects
GLSL
2045 projects
shell
77523 projects

Projects that are alternatives of or similar to planetarium

grid-shader-unity
A grid shader for Unity 🌐
Stars: ✭ 81 (+80%)
Mutual labels:  shaders
YALCT
Yet Another Live Coding Tool - Powered by Veldrid and elbow grease
Stars: ✭ 25 (-44.44%)
Mutual labels:  shaders
shaders
Okano's Unity Shaders. Big mishmash of reworked, original, and mixed shaders.
Stars: ✭ 35 (-22.22%)
Mutual labels:  shaders
Fake-Interior-Shader-for-GodotEngine
Interior Mapping shader for the Godot Game Engine 3.x that works with both GLES3 and GLES2.
Stars: ✭ 40 (-11.11%)
Mutual labels:  shaders
sketch-mapper
A reimagining of SurfaceMapperGUI for Processing
Stars: ✭ 33 (-26.67%)
Mutual labels:  processing-library
webgl-shader-examples
Some simple examples of WebGL shaders
Stars: ✭ 83 (+84.44%)
Mutual labels:  shaders
deffx
A collection of useful shader effects made ready to be used with the Defold game engine
Stars: ✭ 33 (-26.67%)
Mutual labels:  shaders
VFX-Essentials
VFX graph workshop in HDRP with samples
Stars: ✭ 122 (+171.11%)
Mutual labels:  shaders
30-days-of-shade
30 days of shaders in GLSL using GLSLCanvas
Stars: ✭ 134 (+197.78%)
Mutual labels:  shaders
processing-ar
🔮 ARCore Renderer for Processing-Android
Stars: ✭ 20 (-55.56%)
Mutual labels:  processing-library
nvjob-boids
#NVJOB Simple Boids (Flocks of Birds, Fish and Insects). Flocking Simulation. Free Unity Asset.
Stars: ✭ 55 (+22.22%)
Mutual labels:  shaders
Flocking
An example showing how to use SwiftUI, Satin, Forge and Youi to simulate birds flocking via a compute particle system (n-body).
Stars: ✭ 63 (+40%)
Mutual labels:  shaders
2dset-jelly-sprite
#NVJOB 2D Set Jelly Sprite. Unity Asset.
Stars: ✭ 17 (-62.22%)
Mutual labels:  shaders
DokoDemoPainter
DokoDemoPainter is a fast and easy texture painting solution for Unity and can paint on both regular and skinned meshes
Stars: ✭ 43 (-4.44%)
Mutual labels:  shaders
YOLOv4-Tiny-in-UnityCG-HLSL
A modern object detector inside fragment shaders
Stars: ✭ 38 (-15.56%)
Mutual labels:  shaders
processing-sketchbook
Open Source Sketchbook written in Processing Language
Stars: ✭ 18 (-60%)
Mutual labels:  processing-library
ThickRedLine
Thick Red Line - drawing thick lines for SceneKit with metal shaders
Stars: ✭ 40 (-11.11%)
Mutual labels:  shaders
inanity
Cross-platform C++ game engine.
Stars: ✭ 28 (-37.78%)
Mutual labels:  shaders
reshade-vrtoolkit
Modular shader to enhance you HMD clarity & sharpness with minimal performance impact.
Stars: ✭ 40 (-11.11%)
Mutual labels:  shaders
isosurface
Isosurface extraction using Marching Cubes and pure WebGL.
Stars: ✭ 66 (+46.67%)
Mutual labels:  shaders

The planetarium library is intended to project 3D Processing sketches on spherical domes, with minimal changes in the code of the sketch.

It is based on the FullDomeTemplate code from Christopher Warnow, available at https://github.com/mphasize/FullDome

Work in progress

DONE:

  • More accurate rendering.
  • Variable aperture.
  • Debug grid (shader-based).
  • Toggle rendering of cubemap sides.
  • 2D overlay image rendering in post. (has unfortunately a noticeable performance penalty).

TODO:

  • Improve cubemap resolution (or at least visual quality).
  • Implement rendering into background (2D) layer. (Possible implementation would be to send PGraphics as sampler into the shader, but it collides with the samplerCube, haven’t found a solution yet).
  • Custom sweet spot.
  • 4 sides should suffice for fulldome, need to rotate cubemap by 45° for that.
  • Implement picking?

CHANGES: (technical)

  • Switching to a raycasting approach in the cube map rendering stage. Uses quad with ray-casting instead of hemisphere.
  • Cubemap sampling set to linear.

Overview (original)

A brief descrition of how it works: a 360° view of the scene is generated by rendering the scene 6 times from each direction: positive x, negative x, and so on. The output of each rendering is stored inside a cube map texture, which is then applied on a sphere representing the dome. Hence, the library calls the draw() method 6 times per frame in order to update the corresponding side of the cube map texture (in reality, only 5 times since the bottom side of the cube map is not invisible on the dome).

So, it is important to keep in mind that if you need to perform some calculation only one time per frame, then the code for that calculation should be put inside the pre() method. Similarly, calculations that should performed only once after the rendering is concluded should be put in the post() method.

The library currently assumes that the the projector is placed in the center of the dome, the output will be incorrect if the projector is not centered. Multiple projectors are not currently supported.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].