美文网首页three.js简易教程
three.js(4)-网格Lambert材质

three.js(4)-网格Lambert材质

作者: 姜治宇 | 来源:发表于2021-11-16 10:33 被阅读0次

有关物体的材质,我们前面用了MeshBasicMaterial来体现。

  var material = new THREE.MeshBasicMaterial({
    color: 0xccccccc
  });

MeshBasicMaterial就是基础网格材质,它不受光源的影响。而在实际场景中,物体大多都是受光源影响的,也就是漫反射,这时我们就要用到另一个材质函数:MeshLambertMaterial。
Lambert(朗伯)这个单词是亮度单位,词源是lamp(灯),我们来做个例子:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="http://www.yanhuangxueyuan.com/versions/threejsR92/build/three.js"></script>
</head>

<body>
    <div id="webgl"></div>
</body>

</html>
<script>
    var scene = new THREE.Scene();
    var geometry = new THREE.PlaneGeometry(150, 150);
    //材质
    var material = new THREE.MeshLambertMaterial({
        color: 0xff0000,
        opacity: 0.5,
        transparent: true
    });
    //合成对象
    var mesh = new THREE.Mesh(geometry, material); //网格模型对象Mesh
    scene.add(mesh); //网格模型添加到场景中
    //环境光
    var ambient = new THREE.AmbientLight(0x666666);
    scene.add(ambient);
    //创建相机对象
    var camera = new THREE.PerspectiveCamera(45, 2, 0.1, 2000);
    camera.position.x = 200;
    camera.position.y = 200;
    camera.position.z = 200;
    camera.lookAt(scene.position); //设置相机方向(指向的场景对象)
    /**
   * 创建渲染器对象
   */
    var renderer = new THREE.WebGLRenderer({
        antialias: true //消除锯齿
    });
    renderer.setSize(1000, 500);//设置渲染区域尺寸
    renderer.setClearColor(0xb9d3ff, 1); //设置背景颜色
    renderer.render(scene, camera);//渲染必须有场景和相机两个对象

    var cont = document.getElementById('webgl');
    cont.appendChild(renderer.domElement);
</script>
场景渲染了一个红色的矩形,如果没有声明光源,那物体就是黑色的,只有打光时才可以看到物体真实的颜色。 666.png

相关文章

  • three.js(4)-网格Lambert材质

    有关物体的材质,我们前面用了MeshBasicMaterial来体现。 MeshBasicMaterial就是基础...

  • Maya建模 透明贴图设置

    2018-02-06,maya2017 update4 1. 用Maya默认材质Lambert, 要求透明贴图带A...

  • Three.js (三) 模型、材质、纹理、网格

    模型 Geometry 精灵(Sprite) 精灵是一个总是面朝着摄像机的方形平面,不会投射任何阴影。精灵的构造函...

  • Material 材质

    材质决定了物体是否透明颜色等 three.js 中涉及的主要几种材质 MeshBasicMaterialcolor...

  • 网格面材质

    运行结果:

  • 人像复原-后期渲染

    使用软件:maya,arnold。人像复原的后期渲染需要的素材:白模,可以直接使用lambert材质渲染。普通线框...

  • 插件-资源

    Mesh Baker 工作原理是将网格与材质合并,降低DrawCall Texture:角色网格相似,可以将纹理合...

  • UE4角色添加武器

    将武器放在角色蓝图里 Player Player_AnimationBP 武器附加材质 武器网格体 武器材质 迁移...

  • three.js浅谈@材质

    材质种类 上一节介绍了光源,但是表现一个物体的表面仅仅需要光源是不够的,光源与材质进行影响,会表现出不同的表面材质...

  • three.js之材质

    材质(Material)是独立于物体顶点信息之外的与渲染效果相关的属性。通过设置材质可以改变物体的颜色、纹理贴图、...

网友评论

    本文标题:three.js(4)-网格Lambert材质

    本文链接:https://www.haomeiwen.com/subject/shqhtrtx.html