three.js 纹理贴图

three.js 纹理贴图

1.单个图片
通过纹理贴图加载器TextureLoader的load()方法加载一张图片可以返回一个纹理对象Texture,纹理对象Texture可以作为模型材质颜色贴图.map属性的值。

材质的颜色贴图属性.map设置后,模型会从纹理贴图上采集像素值,这时候一般来说不需要再设置材质颜色.color。.map贴图之所以称之为颜色贴图就是因为网格模型会获得颜色贴图的颜色值RGB。

// 纹理贴图映射到一个矩形平面上
var geometry = new THREE.PlaneGeometry(204, 102); //矩形平面
// TextureLoader创建一个纹理加载器对象,可以加载图片作为几何体纹理
var textureLoader = new THREE.TextureLoader();
// 执行load方法,加载纹理贴图成功后,返回一个纹理对象Texture
textureLoader.load('Earth.png', function(texture) {
  var material = new THREE.MeshLambertMaterial({
    // color: 0x0000ff,
    // 设置颜色纹理贴图:Texture对象作为材质map属性的属性值
    map: texture,//设置颜色贴图属性值
  }); //材质对象Material
  var mesh = new THREE.Mesh(geometry, material); //网格模型对象Mesh
  scene.add(mesh); //网格模型添加到场景中

  //纹理贴图加载成功后,调用渲染函数执行渲染操作
  // render();
})

2.多张图片

/**
       * 创建场景对象Scene
       */
      var scene = new THREE.Scene();

      /**
       * 创建网格模型
       */
      var geometry = new THREE.BoxGeometry(100, 100, 100); //创建立方体几何对象
      // TextureLoader创建一个纹理加载器对象,可以加载图片作为几何体纹理
      var loader = new THREE.TextureLoader();
      loader.setCrossOrigin("anonymous");
      
 var material = [
        //定义多个导入贴图的材质,放到一个数组里
        new THREE.MeshBasicMaterial({
          map: loader.load(
            "img1.jpg"
          ),
        }),
        new THREE.MeshBasicMaterial({
          map: loader.load(
            "img2.jpg"
          ),
        }),
        new THREE.MeshBasicMaterial({
          map: loader.load(
            "img3.jpg"
          ),
        }),
        new THREE.MeshBasicMaterial({
          map: loader.load(
            "img4.jpg"
          ),
        }),
        new THREE.MeshBasicMaterial({
          map: loader.load(
            "img3.jpg"
          ),
        }),
        new THREE.MeshBasicMaterial({
          map: loader.load(
            "img4.jpg"
          ),
        }),
      ];
var mesh = new THREE.Mesh(geometry, material); //网格模型对象Mesh
 scene.add(mesh);
 
 // 以下为光源与相机设置
 ......

效果图
在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大兵的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值