UNPKG

threex

Version:

Game Extensions for three.js http://www.threejsgames.com/extensions/

262 lines (203 loc) 7.99 kB
/** * declare THREEx namespace * @type {[type]} */ var THREEx = THREEx || {}; /** * THREEx extension * * @constructor */ THREEx.ClaraioMaterials = {}; THREEx.ClaraioMaterials.baseURL = '../' /** * return an array of each texture of the material. usefull when * setting .repeat/.warpS/.warpT stuff. for example * * THREEx.ClaraioMaterials.textures(material).forEach(function(texture){ * texture.wrapS = THREE.RepeatWrapping; * texture.wrapT = THREE.RepeatWrapping; * texture.repeat.set(30,30) * texture.anisotropy = 16; * }) * * @return {[THREE.Texture]} the array of texture */ THREEx.ClaraioMaterials.textures = function(material){ var textures = [] if( material.map ) textures.push(material.map) if( material.normalMap ) textures.push(material.normalMap) if( material.specularMap ) textures.push(material.specularMap) if( material.bumpMap ) textures.push(material.bumpMap) return textures } ////////////////////////////////////////////////////////////////////////////////// // Fabric // ////////////////////////////////////////////////////////////////////////////////// THREEx.ClaraioMaterials.createLeather = function(){ var baseURL = THREEx.ClaraioMaterials.baseURL; var material = new THREE.MeshPhongMaterial({ ambient : '#1b1d28', shininess : 19, map : THREE.ImageUtils.loadTexture(baseURL+'images/LeatherColor.png'), normalMap : THREE.ImageUtils.loadTexture(baseURL+'images/LeatherNormal.png'), normalScale : new THREE.Vector2(0.6,0.6), specularMap : THREE.ImageUtils.loadTexture(baseURL+'images/LeatherSpec.png'), specular : '#0e131c', }) return material } THREEx.ClaraioMaterials.createJean = function(){ var baseURL = THREEx.ClaraioMaterials.baseURL; var material = new THREE.MeshPhongMaterial({ ambient : '#3a3a33', shininess : 19, emissive : '#000000', map : THREE.ImageUtils.loadTexture(baseURL+'images/Jean_COLOR.png'), normalMap : THREE.ImageUtils.loadTexture(baseURL+'images/Jean_NRM.png'), normalScale : new THREE.Vector2(2,2), specularMap : THREE.ImageUtils.loadTexture(baseURL+'images/Jean_SPEC.png'), specular : '#2d2d2d', }) return material } THREEx.ClaraioMaterials.createBlackLeather = function(){ var baseURL = THREEx.ClaraioMaterials.baseURL; var material = new THREE.MeshPhongMaterial({ ambient : '#000000', shininess : 20, emissive : '#000000', map : THREE.ImageUtils.loadTexture(baseURL+'images/BlackLeather_Color.png'), normalMap : THREE.ImageUtils.loadTexture(baseURL+'images/BlackLeather_NRM.png'), normalScale : new THREE.Vector2(0.5,0.5), specularMap : THREE.ImageUtils.loadTexture(baseURL+'images/BlackLeather_Spec.png'), specular : '#7a7878', }) return material } ////////////////////////////////////////////////////////////////////////////////// // Architectural // ////////////////////////////////////////////////////////////////////////////////// THREEx.ClaraioMaterials.createStone = function(){ var baseURL = THREEx.ClaraioMaterials.baseURL; var material = new THREE.MeshPhongMaterial({ ambient : '#1e1e1e', shininess : 14, map : THREE.ImageUtils.loadTexture(baseURL+'images/BrickColor.png'), normalMap : THREE.ImageUtils.loadTexture(baseURL+'images/BrickNormal.png'), normalScale : new THREE.Vector2(2,2), specularMap : THREE.ImageUtils.loadTexture(baseURL+'images/BrickSpec.png'), specular : '#4c4a4a', }) return material } THREEx.ClaraioMaterials.createCobblestone = function(){ var baseURL = THREEx.ClaraioMaterials.baseURL; var material = new THREE.MeshPhongMaterial({ ambient : '#1e1e1e', shininess : 14, map : THREE.ImageUtils.loadTexture(baseURL+'images/CobbleStoneColor.png'), normalMap : THREE.ImageUtils.loadTexture(baseURL+'images/CobbleStoneNormal.png'), normalScale : new THREE.Vector2(2,2), specularMap : THREE.ImageUtils.loadTexture(baseURL+'images/CobbleStoneSpec.png'), specular : '#4c4a4a', }) return material } ////////////////////////////////////////////////////////////////////////////////// // Environmental // ////////////////////////////////////////////////////////////////////////////////// THREEx.ClaraioMaterials.createLava = function(){ var baseURL = THREEx.ClaraioMaterials.baseURL; var material = new THREE.MeshPhongMaterial({ ambient : '#ffffff', shininess : 15, emissive : '#7e7f54', map : THREE.ImageUtils.loadTexture(baseURL+'images/Lava.jpg'), // TODO there is a emissiveMap which seems not present in three.js specularMap : THREE.ImageUtils.loadTexture(baseURL+'images/LavaEmiss.png'), specular : '#a88630', }) return material } THREEx.ClaraioMaterials.createGrass = function(){ var baseURL = THREEx.ClaraioMaterials.baseURL; var material = new THREE.MeshPhongMaterial({ ambient : '#3e5935', shininess : 14*2, emissive : '#000000', map : THREE.ImageUtils.loadTexture(baseURL+'images/Grass_Color.png'), normalMap : THREE.ImageUtils.loadTexture(baseURL+'images/Grass_NRM.png'), normalScale : new THREE.Vector2(2,2), specularMap : THREE.ImageUtils.loadTexture(baseURL+'images/Grass_Spec.png'), specular : '#1b1c1b', }) return material } THREEx.ClaraioMaterials.createSand = function(){ var baseURL = THREEx.ClaraioMaterials.baseURL; var material = new THREE.MeshPhongMaterial({ ambient : '#424242', map : THREE.ImageUtils.loadTexture(baseURL+'images/WhiteSand_COLOR.png'), normalMap : THREE.ImageUtils.loadTexture(baseURL+'images/WhiteSand_NRM.png'), specularMap : THREE.ImageUtils.loadTexture(baseURL+'images/WhiteSand_SPEC.png'), specular : '#35311d', }) return material } ////////////////////////////////////////////////////////////////////////////////// // Metals // ////////////////////////////////////////////////////////////////////////////////// THREEx.ClaraioMaterials.createMetal = function(){ var baseURL = THREEx.ClaraioMaterials.baseURL; var material = new THREE.MeshPhongMaterial({ color : '#888888', ambient : '#444444', shininess : 75, reflectivity : 0.93, envMap : THREE.ImageUtils.loadTextureCube([ baseURL+'images/cubes/swisscastleblur/posx.png', baseURL+'images/cubes/swisscastleblur/negx.png', baseURL+'images/cubes/swisscastleblur/posy.png', baseURL+'images/cubes/swisscastleblur/negy.png', baseURL+'images/cubes/swisscastleblur/posz.png', baseURL+'images/cubes/swisscastleblur/negz.png', ]) }) return material } THREEx.ClaraioMaterials.createBrushedMetal = function(){ var baseURL = THREEx.ClaraioMaterials.baseURL; var material = new THREE.MeshPhongMaterial({ color : '#bbbbbb', ambient : '#666666', shininess : 33, bumpMap : THREE.ImageUtils.loadTexture(baseURL+'images/BrushedMetal.png'), bumpScale : 0.001, reflectivity : 0.93, envMap : THREE.ImageUtils.loadTextureCube([ baseURL+'images/cubes/swisscastleblur/posx.png', baseURL+'images/cubes/swisscastleblur/negx.png', baseURL+'images/cubes/swisscastleblur/posy.png', baseURL+'images/cubes/swisscastleblur/negy.png', baseURL+'images/cubes/swisscastleblur/posz.png', baseURL+'images/cubes/swisscastleblur/negz.png', ]) }) return material } ////////////////////////////////////////////////////////////////////////////////// // Wood // ////////////////////////////////////////////////////////////////////////////////// THREEx.ClaraioMaterials.createWood = function(){ var baseURL = THREEx.ClaraioMaterials.baseURL; var material = new THREE.MeshPhongMaterial({ ambient : '#261a0c', shininess : 19, map : THREE.ImageUtils.loadTexture(baseURL+'images/AfricanEbonyBoards-ColorMap.png'), normalMap : THREE.ImageUtils.loadTexture(baseURL+'images/AfricanEbonyBoards-NormalMap.png'), normalScale : new THREE.Vector2(2,2), specular : '#261910', }) return material }