node package manager
Painless code sharing. npm Orgs help your team discover, share, and reuse code. Create a free org »

glsl-turntable-camera

glsl-turntable-camera

stable

Convenience module for GLSL raytracing that provides a turntable camera for your scene.

If you're looking for more flexibility, you might want to check out glsl-camera-ray.

Usage

NPM

camera(float angle, float height, float dist, vec2 resolution, out vec3 ro, out vec3 rd).

  • angle is the camera's rotation around the origin in radians.
  • height is the camera's height relative to the origin.
  • dist is the distance the camera is placed from the origin.
  • ro is the ray origin, which gets set as a result of calling this function.
  • rd is the ray direction, a unit vector which gets set as a result of calling this function.
vec2 doModel(vec3 p);
 
#pragma glslify: raytrace require('glsl-raytrace', map = doModel, steps = 50) 
#pragma glslify: camera   require('glsl-turntable-camera') 
 
void main() {
  // Determine the ray origin/direction: 
  vec3 ro, rd;
  camera(iGlobalTime * 0.83.03.5, iResolution.xy, ro, rd);
 
  // Trace the scene: 
  vec2 t = raytrace(ro, rd);
  if (t.x > -0.5{
    // ... 
  }
}

Contributing

See stackgl/contributing for details.

License

MIT. See LICENSE.md for details.