How to use the MeshPhongMaterial function from three

Find comprehensive JavaScript three.MeshPhongMaterial code examples handpicked from public code repositorys.

three.MeshPhongMaterial is a class in the Three.js library that defines a material for a 3D mesh that reflects light in a phong shading model.

515
516
517
518
519
520
521
522
523
524
525
        }
    }
}


class MapHeightNode extends MapNode {
    constructor(parentNode = null, mapView = null, location = QuadTreePosition.root, level = 0, x = 0, y = 0, geometry = MapHeightNode.geometry, material = new three.MeshPhongMaterial({ wireframe: false, color: 0xffffff })) {
        super(parentNode, mapView, location, level, x, y, geometry, material);
        this.heightLoaded = false;
        this.textureLoaded = false;
        this.geometrySize = 16;
fork icon75
star icon468
watch icon0

+ 5 other calls in file

48
49
50
51
52
53
54
55
56
57
        lightDirection: new THREE.Vector3(1, -1, 1).normalize(),
        camera: camera,
        parent: scene
});

let material = new THREE.MeshPhongMaterial(); // works with Phong and Standard materials
csm.setupMaterial(material); // must be called to pass all CSM-related uniforms to the shader

let mesh = new THREE.Mesh(new THREE.BoxBufferGeometry(), material);
mesh.castShadow = true;
fork icon16
star icon191
watch icon9

How does three.MeshPhongMaterial work?

The three.MeshPhongMaterial class is a part of the Three.js library, which is a JavaScript library that provides a framework for creating 3D graphics in a web browser. When you create a 3D mesh in Three.js, you typically apply a material to the mesh to define its appearance. The three.MeshPhongMaterial class is one of several material classes provided by Three.js that define different types of material properties. The three.MeshPhongMaterial class defines a material for a 3D mesh that reflects light in a Phong shading model. This means that the material simulates the way that light reflects off a surface in the real world, based on the angle between the surface normal and the direction of the light. The three.MeshPhongMaterial class provides various properties that you can use to configure the appearance of the material, such as its color, emissive color, specular color, shininess, and more. You can also set the map property to apply a texture to the material, or use the envMap property to simulate reflection and refraction based on an environment map. Once you have created a three.MeshPhongMaterial object, you can apply it to a 3D mesh using the material property of the mesh object. Overall, the three.MeshPhongMaterial class provides a powerful way to define the appearance of a 3D mesh in Three.js using a phong shading model.

215
216
217
218
219
220
221
222
223
}

function createLevel(){
 // planet creation
  var planet_geometry = new THREE.TetrahedronBufferGeometry( 500, 4 );
  var planet_material = new THREE.MeshPhongMaterial( { color: someColors['red'], shading: THREE.FlatShading});
  var planet = new THREE.Mesh( planet_geometry, planet_material );

  planet.receiveShadow = true;
fork icon15
star icon47
watch icon10

+ 15 other calls in file

89
90
91
92
93
94
95
96
97
98
light.shadow.mapSize.width = 1024;
light.shadow.mapSize.height = 1024;
scene.add( light );


var matFloor = new THREE.MeshPhongMaterial({ color: 0x444444, shininess: 1 });
var geoFloor = new THREE.BoxGeometry( 16, 9, 0.001 );
var mshFloor = new THREE.Mesh( geoFloor, matFloor );
mshFloor.position.set(0, 0, -0.005);
mshFloor.receiveShadow = true;
fork icon16
star icon39
watch icon8

Ai Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
const scene = new THREE.Scene();

// Create a phong material
const material = new THREE.MeshPhongMaterial({
  color: 0xff0000,
  specular: 0xffffff,
  shininess: 100,
});

// Create a box mesh with the phong material
const geometry = new THREE.BoxGeometry(1, 1, 1);
const mesh = new THREE.Mesh(geometry, material);
scene.add(mesh);

// Create a point light to illuminate the mesh
const light = new THREE.PointLight(0xffffff, 1, 100);
light.position.set(0, 0, 5);
scene.add(light);

// Create a camera and renderer
const camera = new THREE.PerspectiveCamera(
  75,
  window.innerWidth / window.innerHeight,
  0.1,
  1000
);
camera.position.z = 5;
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);

// Render the scene
function render() {
  requestAnimationFrame(render);
  mesh.rotation.x += 0.01;
  mesh.rotation.y += 0.01;
  renderer.render(scene, camera);
}
render();

In this example, we first create a new THREE.Scene object to hold our 3D mesh and light. We then create a THREE.MeshPhongMaterial object and pass in an options object that sets the color of the material to red, the specular color to white, and the shininess to 100. We use the THREE.BoxGeometry class to create a cube mesh geometry, and the THREE.Mesh class to create a new mesh object with the geometry and the phong material. We add the mesh object to the scene using the add method of the scene object. We then create a THREE.PointLight object to illuminate the mesh and add it to the scene. We create a THREE.PerspectiveCamera object and a THREE.WebGLRenderer object, and add the renderer's DOM element to the HTML body. We also set the camera's position to (0, 0, 5) so that it is positioned in front of the mesh. Finally, we define a render function that animates the mesh's rotation and renders the scene using the THREE.WebGLRenderer object. We call the requestAnimationFrame method to continuously update the scene and mesh rotation. Overall, this example demonstrates how to create a 3D mesh with a phong material in Three.js, and how to add it to a scene and render it using a camera and renderer.

43
44
45
46
47
48
49
50
51
52
  '#547980'];
let randomColor = aFewColors[~~(Math.random() * aFewColors.length)];

// THREE
geometry = new THREE.TetrahedronBufferGeometry( 10, 2 );
material = new THREE.MeshPhongMaterial({ color: randomColor,
                                         shading: THREE.FlatShading });
mesh = new THREE.Mesh( geometry, material );

// Cannon
fork icon15
star icon47
watch icon10

+ 5 other calls in file

84
85
86
87
88
89
90
91
92
    color: 0x30404d,
  });
}

function createHatMaterial() {
  return new THREE.MeshPhongMaterial({
    color: 0xf5498b,
  });
}
fork icon9
star icon77
watch icon5

+ 5 other calls in file

128
129
130
131
132
133
134
135
136
137
this.isSelectColor = false;
this.renderer = null;
this.pinObj3D = new THREE.Object3D();
this.pinObj3D.name = 'pin';

this.mouseMaterialDefault = new THREE.MeshPhongMaterial({
    color: 0xadf1a7,
    // specular: 0x009900,
    // shininess: 30,
    //  wireframe:true,
fork icon13
star icon28
watch icon7

52
53
54
55
56
57
58
59
60
61
  })
}

// 创建材质
createMaterial(options) {
  return new THREE.MeshPhongMaterial(options)
}

// 创建网格
createMesh(shape, options, name, isScience) {
fork icon4
star icon7
watch icon1

+ 7 other calls in file

166
167
168
169
170
171
172
173
174
175
};

var createCommet = function() {
  var base_geometry = new THREE.OctahedronGeometry(comet_radius, 2);
  var geometry = new THREE.BufferGeometry();
  var material = new THREE.MeshPhongMaterial({
    color: new THREE.Color('hsl(' + comet_color_h + ', 100%, 100%)'),
    flatShading: true
  });
  var positions = new Float32Array(base_geometry.vertices.length * 3);
fork icon260
star icon0
watch icon0

+ 7 other calls in file

33
34
35
36
37
38
39
40
41
42
// Create THREE object based on initial data parameters
let { type, parms, x, y, z } = this.initialData;
switch (type) {
  case 'box':
    geometry = new THREE.BoxBufferGeometry( parms[0], parms[1], parms[2] );
    material = new THREE.MeshPhongMaterial( {color: someColors[color], shading: THREE.FlatShading} );
    shape = new CANNON.Box(new CANNON.Vec3(parms[0] / 2, parms[1] / 2, parms[2] / 2));
    break;
  case 'moon':
    geometry = new THREE.IcosahedronBufferGeometry( parms[0], 1 );
fork icon15
star icon47
watch icon10

+ 5 other calls in file

52
53
54
55
56
57
58
59
60
61
  
  if(shapeCoords.length > 3) {
    var shape = new THREE.Shape(shapeCoords);
    var extrusionSettings = {amount: 10, bevelEnabled: false};
    var geometry = new THREE.ExtrudeGeometry(shape, extrusionSettings);
    var material = new THREE.MeshPhongMaterial({color: 0xcccccc});  
    var mesh = new THREE.Mesh(geometry,material );
    scene.add(mesh);
  }
});
fork icon6
star icon0
watch icon1

+ 3 other calls in file

36
37
38
39
40
41
42
43
44
45
  side: THREE.DoubleSide,
})
var sphere = new THREE.Mesh(geo, mat)

var itemGeo = new THREE.TorusKnotGeometry(0.02, 0.008, 128, 128)
var itemMat = new THREE.MeshPhongMaterial({
  // transparent: true,
  // shininess: 20,
  // metal: true,
  color: 0xffffff,
fork icon3
star icon3
watch icon23

43
44
45
46
47
48
49
50
51
52
} else {
    geometry = loader.parse(text);
}

if (geometry.hasColors) {
    material = new THREE.MeshPhongMaterial({
        opacity: geometry.alpha,
        vertexColors: THREE.VertexColors,
        wireframe: config.wireframe
    });
fork icon117
star icon0
watch icon1

71
72
73
74
75
76
77
78
79
80
pointsContainer.add(pointCloud);
viewer.scene.add(pointsContainer);

/*     var geometry = new THREE.BoxBufferGeometry( 1, 1, 1 );
    geometry.translate( 0, 0.5, 0 );
    var material = new THREE.MeshPhongMaterial( { color: 0xffffff, flatShading: true } );
    for ( var i = 0; i < 500; i ++ ) {
        var mesh = new THREE.Mesh( geometry, material );
        mesh.position.x = Math.random() * 1600 - 800;
        mesh.position.y = 0;
fork icon6
star icon0
watch icon0

+ 9 other calls in file

115
116
117
118
119
120
121
122
123
124

    return material;
}

function createGroundSnowMaterial() {
    const material = new THREE.MeshPhongMaterial({
        side: THREE.DoubleSide,
    });

    material.emissive.setHex(0xeeeeee);
fork icon2
star icon14
watch icon2

+ 5 other calls in file

18
19
20
21
22
23
24
25
26
27
 *  });
 *
 * For binary STLs geometry might contain colors for vertices. To use it:
 *  // use the same code to load STL as above
 *  if (geometry.hasColors) {
 *    material = new THREE.MeshPhongMaterial({ opacity: geometry.alpha, vertexColors: THREE.VertexColors });
 *  } else { .... }
 *  var mesh = new THREE.Mesh( geometry, material );
 */
var THREE = require('three');
fork icon2
star icon13
watch icon1

119
120
121
122
123
124
125
126
127
128
  color: new THREE.Color(0x000000),
  shininess: 0,
  emissiveIntensity: 1,
};
this.meteoriteMaterials = [
  new THREE.MeshPhongMaterial(Object.assign({}, defaultMaterial, {
    emissive: new THREE.Color(0x0d6fb5),
  })),
  new THREE.MeshPhongMaterial(Object.assign({}, defaultMaterial, {
    emissive: new THREE.Color(0xe52d2a),
fork icon1
star icon11
watch icon1

+ 5 other calls in file

46
47
48
49
50
51
52
53
54
55

let promise = new Promise(function(resolve, reject) {
    let loaderSTL = new THREE.STLLoader();
    loaderSTL.load( file, function ( geometry ) {
        let clr = (objectColor == undefined) ? 0x1258c9 : objectColor;
        let material = new THREE.MeshPhongMaterial( { color: clr } );
        let mesh = new THREE.Mesh( geometry, material );
        resolve(mesh);
    });
});
fork icon2
star icon4
watch icon1

57
58
59
60
61
62
63
64
65
66

dirLight = new THREE.DirectionalLight( 0xffffff );
dirLight.position.set( -1, 0, 1 ).normalize();
scene.add( dirLight );

var materialNormalMap = new THREE.MeshPhongMaterial( {
  specular: 0x333333,
  shininess: 15,
  map: textureLoader.load( "/app/components/asteroids/earth_atmos_2048.jpg" ),
  specularMap: textureLoader.load( "/app/components/asteroids/earth_specular_2048.jpg" ),
fork icon0
star icon3
watch icon5

+ 3 other calls in file

62
63
64
65
66
67
68
69
70
71
const number = randomInt(0, this.geometryType.length - 1)

for (let i = 0; i < this.geometryLength; i++) {
  this.geometry[i] = new THREE.Mesh(
    this.geometryType[number],
    new THREE.MeshPhongMaterial({
      color: 0xFFFFFF,
      wireframe: true,
      transparent: true
    })
fork icon11
star icon0
watch icon1

Other functions in three

Sorted by popularity

function icon

three.Vector3 is the most popular function in three (22341 examples)