THREEJS实战_加载fbx模型

举报
yma16 发表于 2023/07/22 16:50:50 2023/07/22
【摘要】 加载fbx模型原理3D模型模型由面构成,面包括三角形、四边形与多边形,轻量级的优秀模型面数一般都是三角形,面又由多条边构成,边由多个顶点构成。这里我做了一个简单模型烘培导出fbx模式ok,没问题! threejs加载fbx原理顶点数据顶点位置顶点颜色顶点法向量数据geometry.attributespositioncolornormal顶点法向量与光照阴影有关漫反射光的颜色=几何体表面基...

加载fbx模型原理

3D模型
模型由面构成,面包括三角形、四边形与多边形,轻量级的优秀模型面数一般都是三角形,面又由多条边构成,边由多个顶点构成。
这里我做了一个简单模型
image.png

烘培导出fbx模式
image.png

ok,没问题!
image.png

threejs加载fbx原理

顶点数据

顶点位置 顶点颜色 顶点法向量数据

geometry.attributes

  • position
  • color
  • normal
    顶点法向量与光照阴影有关
    image.png

image.png

漫反射光的颜色=几何体表面基色光线颜色光线入射角
光线方向是一个向量,顶点有一个法向量
这里是三维空间向量
image.png

VTK文件格式
Vtk模型是一种以文本方式表示的3D模型文件,其能够表示点面信息,
而且能够以人类易读易懂的方式以文本的形式存储下来。
ASCII表示该文件的格式,是ascii版本,该位置也可以写binary,那
么这个文件就是二进制格式的了。
VTK简介
代码重构
直接使用loadfbx.js框架
核心部分

	var loader = new THREE.FBXLoader();
	loader.load( '../models/UI.fbx', function ( object ) 
	{//加载路径fbx文件
	  object.traverse( function ( child ) 
	  {
			if ( child.isMesh )
			{

				child.castShadow = true;
				child.receiveShadow = true;

			}

	  } );
	  scene.add( object );//模型

    } );

image.png

ok,没问题!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。