Renderers
- class Renderer(camera, scene, params, threeRenderer)
Non-euclidean renderer. Takes as input the non-euclidean camera and scene and makes some magic. It should not be confused with the Three.js WebGLRenderer it relies on. Abstract class with the code common to all renderers.
Constructor.
- Arguments:
- Renderer.Renderer
Constructor.
- Renderer.camera
type: Camera
Non-euclidean camera
- Renderer.domElement
Shortcut to the DOM element of the underlying Three.js renderer. See Three.js doc.
- Renderer.globalUniforms
type: Object
“Global” uniforms (i.e. values that will not depend on the objects in the scene) A uniform is encoded by an object with two properties type - a glsl type value - the JS value.
- Renderer.scene
type: Scene
Non-euclidean scene
- Renderer.set
Shortcut for the underlying teleportation set.
- Renderer.shader1
The first part of the geometry dependent shader.
- Renderer.shader2
The second part of the geometry dependent shader.
- Renderer.threeRenderer
type: WebGLRenderer
The underlying Three.js renderer If the passed argument is already a WebGLRenderer, we directly use it, otherwise, we build a WebGLRenderer from the passed parameters.
- Renderer.build()
Build the Three.js scene with the non-euclidean shader.
- Renderer.render()
Render the non-euclidean scene. The method build should be called before.
- Renderer.setAnimationLoop(callback)
Shortcut to set the animation loop of the underlying Three.js renderer. See Three.js doc.
- Arguments:
callback (function) –
- Renderer.setClearColor(color, alpha)
Shortcut to set the clear color of the underlying Three.js renderer. See Three.js doc.
- Arguments:
color (Color) –
alpha (number) –
- Renderer.setPixelRatio(value)
Shortcut to set the pixel ratio of the underlying Three.js renderer. See Three.js doc.
- Arguments:
value (number) –
- Renderer.setSize(width, height, updateStyle=true)
Shortcut to set the size of the underlying Three.js renderer. See Three.js doc.
- Arguments:
width (number) –
height (number) –
updateStyle (boolean) –
- class BasicRenderer(camera, scene, params, threeRenderer)
Non-euclidean renderer. Takes as input the non-euclidean camera and scene and makes some magic. It should not be confused with the Three.js WebGLRenderer it relies on.
This one is built with a spherical Three.js screen. It is more convenient for virtual reality (see VRRenderer) It should be used with a perspective Three.js camera
Constructor.
- Arguments:
- BasicRenderer.BasicRenderer
Constructor.
- BasicRenderer._fragmentBuilder
type: ShaderBuilder
Builder for the fragment shader.
- BasicRenderer.composer
type: EffectComposer
Effect composer for postprocessing
- BasicRenderer.postProcess
type: Array.<PostProcess>
Add post-processing to the final output
- BasicRenderer.buildFragmentShader()
Build the fragment shader
- class VRRenderer(camera, scene, params, threeRenderer)
Renderer for virtual reality. Based on the tools provided by Three.js (which relies on WebXR). We place in distinct layer of the Three.js scene two horizon spheres. Each sphere will render the picture seen by one eye.
Constructor.
- Arguments:
- VRRenderer.VRRenderer
Constructor.
- VRRenderer._fragmentBuilders
type: Array.<ShaderBuilder>
Builder for the fragment shader. The first one correspond to the left eye, the second one to the right eye
- VRRenderer.xr
Shortcut to access the Three.js WebXRManager
- class PathTracerRenderer(camera, scene, params, threeRenderer)
Constructor.
- Arguments:
camera (PathTracerCamera) – the camera
scene (Scene) – the scene
params (Object) – parameters for the Thurston part of the renderer
threeRenderer (WebGLRenderer|Object) – parameters for the underlying Three.js renderer
- class PostProcess()
A post process is a treatment apply to the picture obtained after rendering the geometry. A post process defines 3 elements : - its uniforms - a vertex shader - a fragment shader Most of the time the vertex shader will be the same. These data are packaged by the method fullShader
- PostProcess.PostProcess
- PostProcess.fragmentShader()
- Returns:
string – - the fragment shader
- PostProcess.fullShader()
- Returns:
Object – - all the data needed by the Three.js addPass method.
- PostProcess.uniforms()
Return the uniforms needed in the fragment shader. It is a good practice to extend the object return by the method of this abstract class. tDiffuse is the texture containing the rendered geometry.
- Returns:
Object – - an object with all the uniforms of the post process
- PostProcess.vertexShader()
- Returns:
string – - the vertex shader