发布了文章2019-06-17
WebGL渲染目标对象WebGLRenderTarget实现了WebGL的离屏渲染功能,如果你有一定的WebGL或OpenGL基础,对帧缓冲区、离线渲染、后处理等概念应该是不陌生的。
发布了文章2019-06-16
创建场景中的三维模型往往需要设置显示大小、位置、角度,three.js提供了一系列网格模型对象的几何变换方法,从WebGL的角度看,旋转、缩放、平移对应的都是模型变换矩阵,关于矩阵变换内容可以观看本人博客发布的原生WebGL课程。
发布了文章2019-06-16
你查看Threejs的文档可以发现Threejs的很多类都具有克隆.clone()和复制.copy()方法,比如网格模型Mesh、几何体Geometry、三维向量Vector3...
发布了文章2019-06-15
使用三维软件导出.obj模型文件的时候,会同时导出一个材质文件.mtl, .obj和.stl文件包含的数据一样都是几何体对象的顶点位置、顶点法向量等顶点相关数据, 材质文件.mtl包含的是RGB颜色值等材质信息。
发布了文章2019-06-15
针对不同应用的三维场景需要使用不同的投影方式,比如机械、工业设计领域常常采用正投影(平行投影), 游戏场景往往采用透视投影(中心投影)。为了完成三维场景不同的投影方式,three.js封装WebGL API和相关算法,提供了正投影OrthographicCamera、透视投影PerspectiveC...
发布了文章2019-06-14
在很多的实际的项目中,你可能需要给一个Three.js的模型添加标签,标签可以通过一个包含文字图形信息的HTML元素或者一个three.js的精灵模型来表示。
发布了文章2019-06-14
在很多的实际的项目中,你可能需要给一个Three.js的模型添加标签,标签可以通过一个包含文字图形信息的HTML元素或者一个three.js的精灵模型来表示。
发布了文章2019-06-14
如果你刚接触Three.js,查看文档的时候,通过BoxBufferGeometry、SphereBufferGeometry可以分别用来创建长方体、球体,同样通过BoxGeometry、SphereGeometry也可以用来分别创建长方体、球体。BoxBufferGeometry、SphereBufferGeometry等Three.js API的基类是BufferGe...
发布了文章2019-06-13
构造函数:Euler(x,y,z,order)参数xyz分别表示绕xyz轴旋转的角度值,角度单位是弧度。参数order表示旋转顺序,默认值XYZ,也可以设置为YXZ、YZX等值
发布了文章2019-06-13
通过Three.js加载obj、FBX等格式外部模型文件的时候是ajax异步加载数据的过程,需要建立本地服务器来解决,如果不这样直接使用浏览器打开加载三维模型的.html文件,会出现报错无法模型文件无法加载,浏览器控制报错跨域问题的情况。
发布了文章2019-06-12
在编写Three.js程序的时候,你设置线模型Line对应线材质LineBasicMaterial的线宽属性.lineWidth,可能是无效果。
发布了文章2019-06-12
在工作中通过Three.js开发项目的时候,一些特定的情况下你可能需要计算一个三维模型的表面积或者体积,比如在3D打印的Web项目中,你需要计算一个三维模型的体积,然后通过体积计算打印一个三维模型所需要的3D打印材料费;比如开发的一个程序中,需要自动计算一个地面...
发布了文章2019-06-11
在Three.js材质中,和颜色贴图属性.map对应的是颜色属性.color,和高光贴图属性.specularMap对应的是高光颜色属性.specular,与粗糙度贴图属性.roughnessMap对应是粗糙度属性roughness....本文说到的自发光贴图属性.emissiveMap对应的是自发光属性.emissive。
发布了文章2019-06-11
查看Three.js文档的基类Material,可以知道材质属性.visible的作用就是控制绑定该材质的模型对象是否可见,默认值是true,LineBasicMaterial、SpriteMaterial、MeshBasicMaterial等材质都会继承基类Material的可见性.visible属性,也就是说无论点模型Points、线模型L...
发布了文章2018-09-26
最早实现Web3D技术所有技术方案,基本都要依赖特定插件来实现,渲染效率、渲染质量都有些问题,并未全面流行起来。本篇文章既然不涉及使用插件方式实现三维模型在线预览,就不在展开详述历史上需要插件实现在线预览三维模型的相关技术。
发布了文章2018-09-26
很多时候如果想写一些特效,往往需要编写着色器代码GLSL,如果你不熟悉着色器语言,自然需要学习着色器语言语法,如果你有着色器语言基础,直接使用Threejs引擎的ShaderMaterial或RawShaderMaterial API编写就可以。相比较在原生WebGL代码中编写着色器要方便的多,在...