User:Lindsaystanleykay/SceneJS
This is not a Wikipedia article: It is an individual user's work-in-progress page, and may be incomplete and/or unreliable. For guidance on developing this draft, see Wikipedia:So you made a userspace draft. Find sources: Google (books · news · scholar · free images · WP refs) · FENS · JSTOR · TWL |
SceneJS is a JavaScript framework that allows interactive 3-dimensional scenes to be created on the WebGL HTML5 canvas element.
-
Caption1
Its scene graphs are defined in a terse, declarative style. Below is a an example which renders the OpenGL teapot. To render the teapot, SceneJS will traverse the scene graph in depth-first order. Each scene node is a function that will set some OpenGL state on entry, then un-set it again before exit. In this scene, a renderer node activates a WebGL Canvas element and clears depth and colour buffers, a shader activates some OpenGL Shading Language (GLSL) scripts, and the rest of the nodes set various matrices, vectors and geometry variables within the scripts.
with (SceneJs) {
var exampleScene = scene({},
renderer({ canvasId: 'theCanvas',
clear : { depth : true, color : true} },
shader({ type: 'simple-shader' },
lights({
lights: [
{ pos: { x: 30.0, y: 30.0, z: 30.0 } }
]},
perspective({ fovy : 25.0, aspect : 1.0,
near : 0.10, far : 300.0 },
lookAt({
eye : { x: 5.0, y: 5.0, z: -7.0 },
up : { y: 1.0 }
},
rotate(function(scope) {
return {
angle: scope.get('angle'),
y : 1.0
};
},
material({
ambient: { r:0.2, g:0.2, b:0.5 },
diffuse: { r:0.6, g:0.6, b:0.9 }
},
objects.teapot()
)
)
)
)
)
)
)
)
);
exampleScene.render({angle: 45.0});
}
Note that node declarations generally have the form node({configs}, child,child...). For brevity, node configurations need only specify values where defaults are overridden, such as non-zero vector components, for example.
References
[edit]External links
[edit]
-
Caption1
-
Caption2
</gallery>