首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Three.js
这个冰棍不太冷
创建于2022-12-12
订阅专栏
个人学习记录
等 9 人订阅
共22篇文章
创建于2022-12-12
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
检测一个点是否在三角形内
检测一个点是否在三角形内: 1. 使用角度求和的方式 2. 使用同侧检测的方式 3. 使用重心坐标的方式
Three.js-Raycaster.setFromCamera源码分析
Raycaster.setFromCamera(coords, camera) 这个方式是根据相机和“屏幕”上的一个位置,设置射线对象(类型为Ray)
Three.js后处理 提取亮色
1. 自定义一个提取亮色的shader 2. 学习LuminosityHighPassShader 3. 了解smoothstep和mix函数
Three.js混合
1.混合简介 2.透明效果的混合方式 3.three.js中,material关于混合的若干属性 4.premultipliedAlpha
WegGL ContextAttributes.alpha和Three.js WebGLRenderer构造器参数alpha的不同
在创建WebGLRenderer时,传递的参数和获取WebGLContext时的参数基本一致,但是对于three.js对于alpha有特殊的处理,并不是直接传递到getContext
Object3D:变换相关的内容
Object3D:变换相关的内容 1. 有关变换属性 2. matrix(局部变换矩阵)和matrixWorld(世界/全局变换矩阵) 3. localToWorld和worldToLocal
Object3D:lookAt方法
Object3D.lookAt 1. 方法介绍与源码分析 2. Object3D和Geometry在变换上的区别 3.Camera&Light的lookAt方法和其他对象的区别
Object3D、Geometry和BufferAttribute的关系
Geometry用来存储一系列顶点信息positions、normals等;存储这些信息使用AttributeBuffer进行存储。不同的Geometry表示不同的图元,需要对应的Object3D。
BufferGeometry.boundingBox的应用:BoxHelper的实现
BufferGeometry.boundingBox的应用:BoxHelper的实现 1. BoxHelper的具体实现 2. BoxHelper在使用时不要放到动画循环去更新
BufferGeometry: index、groups、drawRange
通过index减少重复顶点的出现,通过index指定顶点怎么使用,可以减少内存占用;可以通过groups对顶点进行分组绘制,每组顶点可以单独指定材质;可以通过指定drawRange进行部分渲染。
骨骼原理及源码
1. Bone和骨骼动画的原理 2. 骨骼转换的源码分析 3. skeleton.pose()源码分析
SkinnedMesh避坑:在bind()之前,更新Bone.matrixWorld
如果在Skeleton.calculate()之前,Bone.matrixWorld没有更新,会出现错误。有以下解决方法: 1. bind()之前,把bone放入children 2. 显式更新
SkinnedMesh克隆后骨骼动画出错
在生产中,碰到这样的一个需求,就是对于同一个模型文件,加载多次。在最初的想法中,考虑到材质的复用和效率问题,多次加载某个模型直接使用clone()方法,但是某次加载SkinnedMesh出现了问题
InstancedBufferGeometry & InstancedBufferAttribute
InstancedBufferGeometry & InstancedBufferAttribute
InstancedMesh
InstancedMesh 用InstancedBufferGeometry和InstancedBufferAttriubte对每个instance应用不同的变换,模拟InstancedMesh
Three.js动画系统简介
本文旨在介绍Three.js中的动画系统的基本使用,对动画更复杂的控制的API(主要集中在`AnimationAction`)没有进行过多的介绍。希望这篇文章可以帮助读者朋友建立一个动画系统的
Three.js Interpolant
Three.js提供了内置的插值类Interpolant,采用了模板方法的设计模式。对于不同的插值方式,继承基类Interpolant,然后实现抽象方法interpolate_ 推导线性插值的公式
Three.js Animation time和timeScale
本文主要介绍了time,timeScale以及相关的API的实现源码,以及timeScale和_effectiveTimeScale的关系。
Three.js AnimationAction weight以及相关API
和timeScale类似,weight在内部实现时,也分成了Animation.weight和Animation._effectiveWeight。本文介绍了它们的关系以及相关API
WebGLRenderTarget与截图功能
1. 了解WebGLRendererTarget 2. 实现截图/预览功能 3. 使用了后处理时,使用同样的方式截图
下一页