UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

54 lines (45 loc) 1.6 kB
import {PolyScene} from '../../../../src/engine/scene/PolyScene'; export function MatMeshLambert() { // create a scene const scene = new PolyScene(); const root = scene.root(); // create a few objects const geo = root.createNode('geo'); const sphere = geo.createNode('sphere'); sphere.p.center.x.set(-2); const box = geo.createNode('box'); box.p.center.x.set(2); const torus = geo.createNode('torus'); torus.p.center.z.set(-2); const torusKnot = geo.createNode('torusKnot'); torusKnot.p.center.z.set(2); // merge the geometries const merge = geo.createNode('merge'); merge.setInput(0, sphere); merge.setInput(1, box); merge.setInput(2, torus); merge.setInput(3, torusKnot); // create the material const materials = scene.root().createNode('materialsNetwork'); const meshBasic = materials.createNode('meshLambert'); meshBasic.p.color.set([0, 0.5, 1]); // assign the material const material = geo.createNode('material'); material.setInput(0, merge); material.p.material.setNode(meshBasic); // set the display flag on the material node material.flags.display.set(true); // add a light root.createNode('hemisphereLight'); // create a camera const perspectiveCamera1 = root.createNode('perspectiveCamera'); perspectiveCamera1.p.t.set([5, 5, 5]); // add orbitControls const events1 = perspectiveCamera1.createNode('eventsNetwork'); const orbitsControls = events1.createNode('cameraOrbitControls'); perspectiveCamera1.p.controls.setNode(orbitsControls); // EXPORT const nodes = [sphere]; const camera = perspectiveCamera1; return {scene, camera, nodes}; }