Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- example:
- function init() {
- var aspect = window.innerWidth / window.innerHeight
- camera = new THREE.PerspectiveCamera(45, aspect, 1, 10000)
- camera.position.z = 300
- scene = new THREE.Scene()
- mesh = new THREE.Mesh(new THREE.TorusGeometry(10, 3, 16, 30),
- new THREE.MeshPhongMaterial({ transparent: true, shading: THREE.SmoothShading }))
- mesh2 = new THREE.Mesh(new THREE.TorusGeometry(10, 3, 16, 30),
- new THREE.MeshPhongMaterial({ transparent: true, shading: THREE.SmoothShading }))
- var material = new THREE.MeshPhongMaterial({ transparent: true, shading: THREE.SmoothShading })
- var material2 = new THREE.MeshPhongMaterial({ transparent: true, shading: THREE.SmoothShading })
- var light = new THREE.PointLight(0xffff00, 1, 0)
- light.position.set( 100, 50, 300 )
- scene.add(light)
- var loader = new THREE.OBJLoader();
- loader.load('1.obj', function(object) {
- var l = object.children.length;
- for (var i=0; i< 1; i++) {
- object.children[i].material = material
- }
- mesh = object;
- mesh.material = material;
- mesh.visible = true;
- mesh.position.set(50,0,0);
- scene.add(mesh);
- });
- loader.load('2.obj', function(object) {
- var l = object.children.length;
- for (var i=0; i< 1; i++) {
- object.children[i].material = material2
- }
- mesh2 = object;
- mesh2.material = material2;
- mesh2.visible = true;
- mesh2.position.set(-50,0,0)
- scene.add(mesh2);
- });
- renderer = new THREE.WebGLRenderer();
- renderer.setClearColor(0x007f7f, 1);
- renderer.setPixelRatio( window.devicePixelRatio );
- renderer.setSize( window.innerWidth, window.innerHeight );
- buildGUI();
- document.body.appendChild( renderer.domElement );
- window.addEventListener('resize', onWindowResize, false);
- }
- function onWindowResize() {
- camera.aspect = window.innerWidth / window.innerHeight;
- camera.updateProjectionMatrix();
- renderer.setSize( window.innerWidth, window.innerHeight );
- }
- function animate() {
- renderer.render( scene, camera );
- requestAnimationFrame(animate);
- }
- GUI:
- function buildGUI() {
- var gui = new dat.GUI({ autoPlace: false });
- var objectsMenu = gui.addFolder('Objects:');
- var object = objectsMenu.addFolder('robot');
- var lv, lv2;
- object.add(mesh, 'visible').name('Visible').onChange((value) => {
- mesh.visible = value
- });
- var Config = function() {
- this.color = "#ffffff";
- }
- var conf = new Config();
- object.addColor(conf, 'color').name('Color').onChange((value) => {
- value = value.replace('#', '0x');
- mesh.material.color.setHex(value)
- });
- var CameraZ = function() {
- this.z = 30;
- }
- var cameraZ = new CameraZ()
- object.add(cameraZ, 'z').name('Camera z:').min(0).max(100).step(1).onChange(
- function(value) {
- mesh.position.z = value;
- }
- )
- var Transparency = function() {
- this.transp = 1;
- }
- var transparency = new Transparency();
- object.add(transparency, 'transp').name('Transparency:').min(0).max(1).step(0.01).onChange(
- function(value) {
- mesh.material.opacity = value;
- }
- )
- object = objectsMenu.addFolder('duck');
- object.add(mesh2, 'visible').name('Visible').onChange((value) => {
- mesh2.visible = value
- });
- var Config = function() {
- this.color = "#ffffff";
- }
- var conf = new Config();
- object.addColor(conf, 'color').name('Color').onChange((value) => {
- value = value.replace('#', '0x');
- mesh2.material.color.setHex(value);
- });
- var CameraZ = function() {
- this.z = 30;
- }
- var cameraZ = new CameraZ()
- object.add(cameraZ, 'z').name('Camera z:').min(0).max(100).step(1).onChange(
- function(value) {
- mesh2.position.z = value;
- }
- )
- var Transparency = function() {
- this.transp = 1;
- }
- var transparency = new Transparency();
- object.add(transparency, 'transp').name('Transparency:').min(0).max(1).step(0.01).onChange(
- function(value) {
- mesh2.material.opacity = value;
- }
- )
- var ObjectMaterial = function() {
- this.material = "";
- }
- objectsMenu.open();
- var customContainer = document.getElementById('my-gui-container');
- customContainer.appendChild(gui.domElement);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement