Three.js-着色器 Shader操控的是物体的表面。 似乎可以将Shader理解为装饰器模式。 Shader能干嘛?Shader中文翻译是着色器,从这个名字就可以看出来,其功能是着色。 作者:毛伟链接:https://www.zhihu.com/question/471183747/answer/2009491115来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 大部分shad 2022-06-15 Three.js #Three.js
Three.js-纹理 纹理贴图的类型与作用 图片 -> Texture -> Material 凹凸感凹凸贴图(灰度图):bumpMap 法向贴图:normalMap 移位贴图:displacementMap,会改变模型形状 阴影环境光遮挡贴图:aoMap 光照贴图:lightMap,可以产生假阴影 透明度Alpha贴图:alphaMap,控制物体表面的透明度 反光自发光贴图:emissiveMap,只影 2022-06-15 Three.js #Three.js
Three.js-粒子和精灵 案例粒子形变: https://mathis-biabiany.fr/ 教程实现粒子的三种方式: https://varun.ca/three-js-particles/ 实现粒子系统: Writing a Particle System (using Three.js) - YouTube 2022-06-15 Three.js #Three.js
Three.js-材质 原理-数据驱动渲染在Three.js中几何体对象Geometry和缓冲类型几何体对象BufferGeometry本质上就是对WebGL中各种顶点数据的封装,顶点颜色数据就是顶点数据中的一种,至于Three.js中的各种点材质、线材质、网格材质、精灵材质本质上都是对顶点着色器、片元着色器、uniform变量数据的封装。 几何体:顶点数据封装 材质:着色器封装 顶点数据 -> 驱动 -> 2022-06-15 Three.js #Three.js
Three.js-光源 光照类型SpotLight:聚光灯光源,圆锥体、阴影效果 强度强度是以坎德拉(Candela)为单位的: 坎德拉(拉丁语:Candela),发光强度的单位,国际单位制七个基本单位之一,符号cd。1979年10月第十六届国际计量大会将坎德拉定义为:给定一个频率为540.0154×1012 Hz的单色辐射光源(黄绿色可见光),该辐射源在某个方向的辐射强度为1/683瓦特每球面度,则该辐射源 2022-06-15 Three.js #Three.js
Three.js-渲染器 THREE.WebGLRenderer最常用的渲染器,一般我们都采用这个即可。 THREE.CSS3DRenderer如果浏览器比较老,不支持WebGLRenderer,可以考虑降级用这个渲染器。 2022-06-15 Three.js #Three.js
Three.js-几何体 几何体自定义几何体的原理 给不同的面设置不同的颜色/材质https://jsfiddle.net/vptec390/2/ 原理是给每个顶点设置一个颜色 12345678910111213141516171819202122232425262728293031const geometry = new THREE.BoxGeometry( 0.2, 0.2, 0.2 ).toNonIndex 2022-06-15 Three.js #Three.js
Three.js-相机 透视相机(PerspectiveCamera)THREE.PerspectiveCamera透视摄像机 官方文档 一句话总结:PerspectiveCamera 的构造函数的四个参数决定了你能看到多大范围的内容;PerspectiveCamera 的 position 决定了你看物体的角度。 12345const fov = 75;const aspect = 2; // 相机默认值const n 2022-06-15 Three.js #Three.js
Three.js-程序架构 1、对于3D美术知识的了解:不管你有没有3D美术从业经历,但你必须要明白什么是mesh,geomerty,material,texture是什么东西,在3D环境下想要一个东西变大可以改变一个物体的scale也可以调整position.z,甚至改变摄像机的机位,想要一个东西变亮你可以调整物体的diffuse反射属性,也可以加强光照值,等等。这些基础美术能力决定了你是否能做3D。 2、对于Javas 2022-06-15 Three.js #Three.js