首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

【带着canvas去流浪(12)】用Three.js制作简易的MARVEL片头动画(上)

3.2 纹理贴图的基本原理-UV映射 在Three.js中,几何是通过点和面的特征构建起来的,如果将一个几何实例对象在控制台打印出来,就可以看到存储端点坐标信息的vertexs和存储面信息的faces...当你构建一个立方时,会发现它的faces属性数组中有12个面的信息,因为Three.js中默认使用三角面片来构建几何,一个矩形表面需要用两个三角面片来构建,(你可以将立方材料material中传入...右图中白色三角形的三个顶点在归一化坐标系中的坐标值已经列出,将[0.2,0.2],[0.2,0.8],[0.7,0.2]这三个坐标点信息填充到对应的UV映射数组中后,Three.js就会用这个三角形区域来对一个三角面进行贴图...由于贴图素材是三个点,几何某个三角面也是有三个顶点,如果不限制索引,那么就可能存在很多种贴图结果: ?...,这就唯一限定了截取表面到几何三角面的贴图样式。

3.1K51

Three.js - 走进3D的奇妙世界

计算机内的3D世界是由点组成,两个点能够组成一条直线,三个不在一条直线上的点就能够组成一个三角形面,无数三角形面就能够组成各种形状的几何。...以创建一个简单的立方为例,创建简单的立方需要添加8个顶点和12个三角形的面,创建顶点时需要指定顶点在坐标系中的位置,添加面的时候需要指定构成面的三个顶点的序号,第一个添加的顶点序号为0,第二个添加的顶点序号为...五、材质 创建几何时通过指定几何的顶点和三角形的面确定了几何的形状,另外还需要给几何添加皮肤才能实现物体的效果,材质就像物体的皮肤,决定了物体的质感。...7.1 普通纹理贴图 在这个示例中使用上图左侧的地球纹理,在球形几何上进行贴图就能制作出一个地球。...材质默认是在几何的正面进行贴图的,如果想要在反面贴图,需要在创建材质的时候设置side参数的值为THREE.BackSide,代码如下: /* 创建反面贴图的球形 */ // 球体 var geom

8.3K20

Three.js - 走进3D的奇妙世界

计算机内的3D世界是由点组成,两个点能够组成一条直线,三个不在一条直线上的点就能够组成一个三角形面,无数三角形面就能够组成各种形状的几何。...以创建一个简单的立方为例,创建简单的立方需要添加8个顶点和12个三角形的面,创建顶点时需要指定顶点在坐标系中的位置,添加面的时候需要指定构成面的三个顶点的序号,第一个添加的顶点序号为0,第二个添加的顶点序号为...五、材质 创建几何时通过指定几何的顶点和三角形的面确定了几何的形状,另外还需要给几何添加皮肤才能实现物体的效果,材质就像物体的皮肤,决定了物体的质感。常见的材质有如下几种: ?...3D世界的纹理是由图片组成的,将纹理添加在材质上以一定的规则映射到几何上,几何就有了带纹理的皮肤。 7.1 普通纹理贴图 ?...在这个示例中使用上图左侧的地球纹理,在球形几何上进行贴图就能制作出一个地球。

9.7K40

Three.js 画个 3D 生日蛋糕送给他(她)

不妨用 Three.js 做个 3D 的蛋糕送给 ta,既浪漫又能展现你技术的魅力。 这篇文章我们就来学习下如何用 Three.js 画一个蛋糕。...Mesh 比较常用,它是由一个个三角形构成的几何,还可以在每个面上贴图。所以,参数有两个,几何 Geometry 和材质 Material。...物体中常见的有 Mesh 和 Sprite 等,Sprite 是永远面向相机的一个平面,Mesh 是由三角形构成的三维物体。...Mesh 要指定几何Geometry 和材质 Material,常用的材质可以是颜色或者纹理贴图。...首先我们学习了下 Three.js 的基础:通过 Scene 来管理物体,物体可以分组,物体包括 Mesh、Sprite 等,Mesh 是三角形构成的 3D 物体,要分别指定几何 Geometry 和材质

3.3K31

three.js 几何(二)

上一篇简单的介绍了几何的构造参数,这一篇郭先生就更加详细的说一说(十分简单的几何我就不说了) 1....ShapeGeometry形状几何 image.png 形状几何方便我们从一个或多个路径形状中创建一个单面多边形几何,和canvas一样都是二维图形。...TextGeometry文本几何 image.png 文本几何是一个用于将文本生成为单一的几何的类。...PolyhedronGeometry多面几何 image.png 这个几何其实和Geometry非常相似,通过传递点和面的数组构建几何,不过他还有两个参数,一个是半径,一个是细分数,简单的说半径越大几何就越大...TubeGeometry管道几何 image.png 管道几何顾名思义就是可以非常方便的制作出类似管道的几何

92310

three.js 几何(一)

这篇郭先生来说一说three.js几何都有哪些?在线案例点击预览three.js 几何 1....了解各种three.js几何 下面是three.js几何的分类介绍以及构造器的参数(r117版本) |名称|构造器参数| |-|-|-| |PlaneGeometry(平面几何)|width —...| |CircleGeometry(圆形几何)|radius — 圆形的半径,默认值为1segments — 分段(三角面)的数量,最小值为3,默认值为8。...通过添加属性值得到相应几何| 2. 几何的介绍 现在给这些几何进行分类。...认识几何 先上图 image.png 图片对应的就是这些几何,如果你想更加细致的认识这些几何请看demo。接下来的几篇我将详细的介绍这些几何的使用以及注意事项。 转载请注明地址:郭先生的博客

1.3K10

3D to H5工作流应用手册

Part 2 实践篇:基于three.js的实现性,提供场景、材质贴图的制作思路、以及gltf工作流,并动态讨论项目常常遇到的还原问题。...理想的漫反射我们通常称作郎伯反射(Lambertian Reflectors),也就是我们熟悉的橡胶材质。...考虑到H5项目的实际应用场景,下表罗列了Three.js原生材质的对比,包含了材质特性优势、贴图差异及适用场景,大家可以基于项目需求快速选择并混合使用: three.js材质对比表 四、色彩描述与管理...在three.js中色彩管理的工作流会根据导入模型Asset的差异而有所不同,如果贴图与模型是分别导入场景,则建议可尝试以下流程: 1、输入贴图数据 sRGB to Linear: 含色彩的贴图(基础材质...4、细分曲面着色器 Tessellation Shader 在OpenGL4.0和 Direct3D 11中出现,它可以在图元内镶嵌更多三角

2.5K41

Three.js教程(6):几何

之前的章节中我们使用了平地、方块、球体等几何(Geometry),今天我们探讨更多的几何。 先说一个事实,在WebGL中只能绘制3种东西,分别是点、线和三角形。什么?...我们之前做的方块和球体,明明就不是三角形呢?其实他们确实是由三角形组成的。多个小的三角形就是可以组成包括球体以内的几乎任何几何。我们先从简单的例子开始今天的课程吧。...此时的效果如下,我们可以很清楚的看到平地是由三角形构成的。 ?...Three.js还提供的几何有:ConeGeometry、CylinderGeometry、DodecahedronGeometry、ExtrudeGeometry、IcosahedronGeometry...当然Three.js不仅仅可以使用给出的几何,甚至还可以自定义几何,最重要的是还可以导入其他建模软件做出来的模型,这一点是非常厉害的。

1.7K61

使用Three.js制作酷炫无比的无穷隧道特效

Fornasetti的网站截图 起步 在例子中我们会使用Three.js这个常用的库,来使构建WebGL效果更为便捷。...隧道 现在我们有了一条曲线(一点也不弯),我们可以使用Three.js来创建一个隧道。...为此我们需要:何模型(用来描述管道的形状),材质(用来展示管道的视觉效果)以及最终的将几何与材质结合成网格(mesh)。...实际的解决方案非常巧妙: 场景中没有任何物体发生了实际的运动,发生的仅仅只是隧道贴图位置的移动. 为此,我们需要对每一帧的贴图都定义一个偏移量从而实现视觉上的运动。...是时候让我们穿梭在三角形的隧道中了。 ? 在手机或平板上尝试这个例子,并通过设备朝向来控制方向!

6.6K51

解剖 WebGL & Three.js 工作原理

2、图元装配(即画出一个个三角形) 3、光栅化(生成片元,即一个个像素点) 接下来,我们分步讲解每个步骤。...一个立方还好说,如果是一个机器人呢? 没错,我们不会一个一个写这些坐标。 往往它来自三维软件导出,或者是框架生成,如下图: 写入缓存区是啥? 没错,为了简化流程,之前我没有介绍。...4.2.2、图元装配 我们已经知道,图元装配就是由顶点生成一个个图元(即三角形)。那这个过程是自动完成的吗?答案是并非完全如此。...它同样是一段opengl es程序,模型看起来是什么质地(颜色、漫反射贴图等)、灯光等由片元着色器来计算。...4.3、WebGL的完整工作流程 至此,实质上,WebGL经历了如下处理流程: 1、准备数据阶段 在这个阶段,我们需要提供顶点坐标、索引(三角形绘制顺序)、uv(决定贴图坐标)、法线(决定光照效果),以及各种矩阵

9.5K20

打造H5里的“3D全景漫游”秘籍 - 腾讯ISUX

全景图像的获取通常是借助鱼眼的全景摄像机的拍摄来完成的,或者是单反相机、鱼眼镜头、云台和三角架的组合。需要按照一个方向旋转360度拍摄一组照片,照片之间要有部分重合的部分,方便进行后期的拼接和融合。...(3)Three.js源自Github的一个开源项目,https://github.com/mrdoob/three.js,官网:http://threejs.org/ 。...前文有提到,全景图像可分为球面全景图、立方全景图以及柱状全景图。...立方全景图有6个面,我们需要定义每个面贴图的背景图片,3D位置,旋转角度(默认的6个面都是朝着我们的,我们需要定义朝坐标轴的各个方向做90度的旋转,才可以搭建成一个立方)。...这里,考虑到星空背景主要为了氛围烘托,我们将6个面的贴图减少成2个,以此缩减了资源文件的大小,如下图所示。

5K10

打造H5里的“3D全景漫游”秘籍 - 腾讯ISUX

全景图像的获取通常是借助鱼眼的全景摄像机的拍摄来完成的,或者是单反相机、鱼眼镜头、云台和三角架的组合。需要按照一个方向旋转360度拍摄一组照片,照片之间要有部分重合的部分,方便进行后期的拼接和融合。...(3)Three.js源自Github的一个开源项目,https://github.com/mrdoob/three.js,官网:http://threejs.org/ 。...前文有提到,全景图像可分为球面全景图、立方全景图以及柱状全景图。...立方全景图有6个面,我们需要定义每个面贴图的背景图片,3D位置,旋转角度(默认的6个面都是朝着我们的,我们需要定义朝坐标轴的各个方向做90度的旋转,才可以搭建成一个立方)。...这里,考虑到星空背景主要为了氛围烘托,我们将6个面的贴图减少成2个,以此缩减了资源文件的大小,如下图所示。

5.9K51

three.js渲染上海外滩模型

记录一下用three.js加载并渲染上海外滩的BIM模型的小demo <!...第二种方式是天空盒,即将上述的天空球变成一个正方盒子,好处是减少了许多三角面片,只剩12个面,但通常要准备上下左右前后6张图片来贴合天空盒。比如这样: ?...可以看到,图中每个矩形的宽高比是1:2,应该把它们都拉伸成正方形,因为赤道:经线=2:1,这样UV贴图的宽高比就是2:1,比如: ?...然后将它通过圆柱投影到球面上,或者转换成6张图作为正方,作为静态天空,代码如下: async function skyToggle() { if (scene.bgURL === "light.png...scene.add(water); tasks.push(() => { water.material.uniforms.time.value += 0.005; }); }); 海水法线贴图

3.4K40

现在做 Web 全景合适吗?

tl;dr; 使用 three.js 实现全景技术 UV 映射原理简介 3D 坐标原理和移动控制 Web 陀螺仪简介 iv-panorama 简单库介绍 基于 Three.js 全景视频是基于 3D 空间...我们需要完成一个贴图,将如下的 sprite,贴到一个正方上。 ? from iefreer ?...这里需要注意的是,纹理空间并不存在所谓的最小三角区域,这里适应的只是在物理空间中划分的三角区域。...为了简单起见,我们设置的 boxGeometry 只使用单位为 1 的 Segments,减少需要划分的三角形数量。 这样,就存在 12 块需要贴的三角区域。...因为,Three.js 中 geometry.faceVertexUvs 在划分物理空间时,定义的面分解三角形的顺序 是 根据逆时针方向,按序号划分,如下图所示: ?

2.2K40

谁还没有冰墩墩?速来领→

当然也可以直接使用 Three.js 自带平面网格加凹凸贴图也可以实现类似的效果。使用 Blender 自建模型的优点在于可以自由可视化地调整地面的起伏效果。...材质贴图: 为了使树只在贴图透明部分透明、其他地方不透明,并且可以产生树状阴影而不是长方阴影,需要给树模型添加如下 MeshPhysicalMaterial、MeshDepthMaterial 两种材质....displacementMap[Texture]:位移贴图会影响网格顶点的位置,与仅影响材质的光照和阴影的其他贴图不同,移位的顶点可以投射阴影,阻挡其他对象,以及充当真实的几何。...Three.js 中,雨、雪、云、星辰 等生活中常见的粒子都可以使用 Points 来模拟实现。...构造函数: 构造函数可以接受两个参数,一个几何和一个材质,几何参数用来制定粒子的位置坐标,材质参数用来格式化粒子; 可以基于简单几何对象如 BoxGeometry、SphereGeometry等作为粒子系统的参数

4.4K10
领券