Three.js中文网 Three.js中文网
首页
免费视频
系统课 (opens new window)
  • Three.js基础课程
  • Vue3+Threejs 3D可视化
  • Threejs进阶课程
  • 展厅3D预览漫游
  • Threejs Shader
  • Blender建模基础
  • Three.js基础课程(旧版本) (opens new window)
  • 文章
WebGPU教程
  • WebGL教程
  • WebGL教程(旧版本) (opens new window)
3D案例
  • 本站部署(打开快) (opens new window)
  • 原英文官网文档 (opens new window)
首页
免费视频
系统课 (opens new window)
  • Three.js基础课程
  • Vue3+Threejs 3D可视化
  • Threejs进阶课程
  • 展厅3D预览漫游
  • Threejs Shader
  • Blender建模基础
  • Three.js基础课程(旧版本) (opens new window)
  • 文章
WebGPU教程
  • WebGL教程
  • WebGL教程(旧版本) (opens new window)
3D案例
  • 本站部署(打开快) (opens new window)
  • 原英文官网文档 (opens new window)
Web3D系统课程视频
  • 0.学前说明

  • 1.Vue+Three.js基础

  • 2.场景搭建Three+Blender

  • 3.渲染效果提升(材质光照)

  • 4.渲染性能、模型压缩

    • 1. Stats查看渲染帧率
    • 2. threejs三角形、顶点概念
    • 3. Blender三角形、顶点
      • 4. 渲染性能(顶点、显卡)
      • 5. Blender模型减面
      • 6. 模型数量与性能
      • 7. 减少模型加载时间(压缩)
      • 8. Blender设置纹理贴图
      • 9. Blender打包、解包文件
      • 10. 纹理贴图大小(性能优化)
      • 11. 共享几何体,减小模型文件
    • 5.封装、进度条、切视角

    • js 3D可视化
    • 4.渲染性能、模型压缩
    郭隆邦
    2024-03-20
    目录

    3. Blender三角形、顶点

    # Blender三角形、顶点

    上节课通过threejs代码,给大家介绍了三角形、顶点概念,对于Blender中网格模型一样是通过顶点构成三角形,三角形构成Mesh。

    # 视频演示:Blender编辑网格几何外形

    你可以Blender中创建一个矩形平面网格模型,选中模型的情况下,输入快捷键Tab(英文输入法情况下),进入网格模型几何体外形的编辑模式,你可以操作点、线、面,来改变网格Mesh的几何形状。

    • 点模式
    • 线模式
    • 面模式

    旋转、缩放、平移等操作

    通过快捷键Tab可以切换物体模式、编辑器模式。

    # 统计信息:查看网格的几何体顶点、三角形数据

    3D绘图区右上角根据截图提示,选择查看模型的几何体顶点、三角形数据。

    Blender默认添加的矩形网格模型(Mesh)

    • 1个四边面(两个三角形构成一个四边面)
    • 2个三角形(一个面两个三角形组成)
    • 4个顶点(一个三角形需要3个顶点,两个顶点位置共享,4个点就能组成两个三角形)

    Blender默认添加的立方体网格模型(Mesh)

    • 6个面(一个立方体6个四边面)
    • 12个三角形(每个面2个三角形,6个面共12个三角形)
    • 8个顶点(相邻的三角形顶点共享,8个点可以构建12个三角形表示立方体外形)

    # 导出gltf,threejs查看网格顶点数据

    Blender创建一个宽高度都是20的矩形平面导出,然后threejs加载测试。

    const mesh = gltf.scene.getObjectByName('矩形');
    console.log('gltf模型几何体数据',mesh.geometry);
    

    确保Blender中编辑结果和下面threejs代码生成矩形网格的数据一样。

    const geometry = new THREE.PlaneGeometry(20,20);//默认在XOY平面
    const material = new THREE.MeshLambertMaterial({
        color:0x00ffff,
        // wireframe:true,//查看网格的三角形结构
    });
    const mesh = new THREE.Mesh(geometry, material);
    mesh.position.y = 30;
    scene.add(mesh)
    

    前面2.8小节 (opens new window),给大家介绍过Blender与threejs坐标对应关系。

    # 物体模式与编辑模式区别

    编辑模式平移,改变的是几何体mesh.geometry中顶点位置的坐标。

    const mesh = gltf.scene.getObjectByName('矩形');
    console.log('几何体顶点位置数据',mesh.geometry.attributes.position.array);
    

    物体模式平移网格,改变的是mesh.position属性。

    const mesh = gltf.scene.getObjectByName('矩形');
    console.log('模型位置',mesh.position);
    

    物体模式缩放网格,改变的是mesh.scale属性。

    const mesh = gltf.scene.getObjectByName('矩形');
    console.log('模型缩放倍数',mesh.scale);
    

    # Blender测试

    下面三种情况,在threejs渲染效果一样,但是mesh和geometry改变并不一样。

    • 仅仅向上平移几何体30
    • 仅仅向上网格模型平移30
    • 向上平移网格模型15、向上平移几何体15
    2. threejs三角形、顶点概念
    4. 渲染性能(顶点、显卡)

    ← 2. threejs三角形、顶点概念 4. 渲染性能(顶点、显卡)→

    Theme by Vdoing | Copyright © 2016-2025 豫ICP备16004767号-2
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式