自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 【Threejs】添加鼠标事件到场景中的物体上,更完善的事件派发器

使用camera scene 和dom创建后,在模型上添加事件,也可以直接给事件派发器添加事件,其中transController是变换控制器,用于移动旋转拉伸物体,是threejs自带工具。上一个派发器逻辑混乱书写潦草,所以我重新写了一个。

2025-01-17 15:26:38 307

原创 【Threejs】创建饼图扇面(Pie)的两种方法

两个方法是一样的,区别在构建mesh上。

2024-12-13 14:38:34 440

原创 【threejs】创建FPS相机

这里我用js代码演示,绑定的任然是flyControl// animateif () {// startstart() {loop()end() {// private1 : 0;break;break;break;break;break;break;break;break;

2024-12-09 17:52:30 626

原创 【threejs】实现不同动画的播放和平滑切换

主要是通过 修改动作的速度和幅度达到平滑切换。

2024-12-03 17:38:00 361

原创 【Webgl_glsl&Threejs】制作流水效果/毛玻璃效果材质

不一定用这张,可以换点贴图试试,可能做出别的效果(走马灯,石棉,瓷砖等的都可以模拟)

2024-11-27 10:38:51 508

原创 【Threejs】CatmullRomCurve3 生成折线和曲线

CatmullRomCurve3 是 Three.js 中的一个类,用于创建基于 Catmull-Rom 插值的曲线。这个类允许你通过一组点来创建一条平滑的曲线。curveType 和 tension 是用来控制曲线形状的参数。curveType 是一个字符串,用于指定 Catmull-Rom 曲线的类型。它有以下三个可能的值:这种类型的曲线在计算插值时会考虑到点的分布,倾向于生成更平滑的曲线。曲线的弧度会较小,生成的效果更平滑。

2024-11-25 14:38:33 366

原创 【Threejs】让物体永远处于最上层图层

如图所示,让这些粒子永远悬浮再模型前面,但事实上它们是穿插在场景中的。

2024-11-25 14:35:31 286

原创 【Threejs】沿连续的路径点path创建墙体

【代码】【Threejs】沿连续的路径点path创建墙体。

2024-11-19 14:10:17 269

原创 【threejs】一个控制器事件派发器

可以为场景内的模型添加点击,鼠标移入移出和鼠标滑动回调。

2024-11-08 14:57:59 255

原创 【threejs】创建及管理场景内的后期处理效果(以bloom为例,开箱即用)

创建后期处理通道的类后期类内部的辉光通道类效果我在花朵和瓶子上分别用了1 和2 辉光效果,下图是无光效果对比

2024-11-08 14:20:54 248

原创 【Threejs】相机控制器动画

官方提供了一个基于目标点、刷新速度,在每次renderer中执行的动画,但实际开发中你可能会需要基于设定时间、目标点添加动画,并且有更多自定义成分的方式。

2024-11-08 11:30:07 447

原创 vue2--拖拽列表

【代码】vue2--拖拽列表。拖拽自定义顺序

2024-11-08 11:17:35 233

原创 js自定义简易动画库

当你懒得使用tween或者想自定义一些工具给过度动画,渐变数值什么的都可以用,当动画结束会停止调用动画帧无需手动卸载。

2024-10-31 10:02:25 240

原创 【Javascript】原生实现deep watch,使用proxy逐层建立数据监听

使用对象处理数据,添加监听,然后递归再次添加直到全部添加完毕。

2024-09-24 16:50:51 451 1

原创 【threejs】火焰特效制作

使用shader创建threejs火焰效果

2024-06-26 09:07:44 796 4

原创 【Threejs】场景编辑功能及内外侧通信

threejs官方提供了一个较为完善的threejs场景编辑的demo,并且支持导出导入,前进后退,场景缓存等功能,所以我们需要做的只有把他引入自己的页面。但是同时业务中可能涉及一些特殊的功能或者一些可配置的内容,我们需要在官方editor的沙盒中完成这些操作。所以最终方案就是通过iframe引入editor编辑器,然后通过contentMessage传送消息给沙盒,同时也可以反向监听沙盒里面的instance。

2024-05-14 11:33:48 570 2

原创 【Threejs】获取相交网格相交线

【代码】【Threejs】获取相交网格相交线。

2024-04-29 15:44:22 523

原创 【Webgl_glsl&Threejs】搬运分享shader_飘落心形

将shadertory上的代码转成了threejs可以直接用的代码,引入文件的material,并在创建mesh或已有物体上使用material即可,使用时请注意uv对齐。

2024-04-24 15:08:33 816

原创 【Webgl_glsl&Threejs】搬运分享shader

这是一个基于圆弧缩放和分型的shader材质 ,可以作为墙体,天幕等特效使用。

2024-04-24 11:12:40 297

原创 【JavaScript&&threejs】对于二维平面内的路径进行扩张或缩放

对指定路径沿着边缘向内或向外扩张,达到放大或缩小一定范围的效果,这里我们获取每个点(这里是Vector3(x,y,z)),获取前后两个点和当前点的坐标,计算前后两点的向量,旋转90度向内或向外,然后获取单位向量。

2024-04-23 15:57:04 324 2

原创 【JavaScript&&Threejs】判断路径在二维平面上投影的方向顺逆时针

可以将路径每个连续的两点向量叉乘相加,根据正负性判断路径顺逆时针性当我们计算两个向量的叉积时,结果是一个新的向量,其方向垂直于这两个向量所在的平面,并且其大小与这两个向量构成的平行四边形的面积成正比。这个新向量的方向由右手定则确定:如果你将右手的四指放在两个向量的方向上,让拇指指向叉积的方向,那么你的手指弯曲的方向就是两个向量的顺时针旋转方向。当我们应用这个概念到路径的情况时,我们可以将相邻的路径点表示为向量,然后计算它们之间的叉积。

2024-04-22 16:24:21 544 1

原创 【threejs&&Javascript】实现事件注册派送

在初始化threejs场景的 class内使用。以事件管理器和点击事件为例。

2024-04-01 10:19:30 338

原创 【webgpu】0 Javascript中使用wgsl代码高亮

wgsl本质上是rust代码,本博客文本高光来自rust标记。

2024-03-29 14:11:34 189

原创 【threejs】较大物体或shape的贴图较小问题处理方法

有的场景内相对体型差距过大的物体(如山地 海洋等····)由于尺寸问题,加载贴图过于小,同时shader也无法完全展示,如图。如果uv是乱的 可以用xyz坐标最大最小值先排布uv再对uv进行缩放。我们可以获取物体的uv,进行缩放使得贴图可以完全展开。

2024-03-29 09:30:43 643

原创 【javaScript】遍历树形结构

【代码】【javaScript】遍历树形结构。

2024-03-28 08:58:09 392

原创 【threejs】计算矩阵、网格等总面积

将面分为无数个三角面 ,使用向量计算面积。

2024-03-26 19:29:17 247

原创 【threejs】二维坐标内判断 点 与 凹凸多边形 位置关系

从点向 ± xy方向发射四条射线,从相交次数判断点与多边形关系,理论上只要有一条射线相交奇数次(n%2==1)即可判定点在多边形内,此方法可避免凹凸多边形造成的判断错误。

2024-03-26 19:24:35 293

原创 【threejs】事件处理eventDispatch(点击,滑动等)

构建一个class,传入dom scene和camera等必要参数即可新建,使用射线判断物体是否触发事件,一个场景可以建立多个事件处理。

2024-03-21 11:24:33 538

原创 【threejs】使用矩阵创建曲面

假设有一组离散的点,需要生成曲面,选择其中的主要轮廓,用相同段数的(顶点数相同)的几条线画出来后,组成一个3*3矩阵。threejs自带的曲面生成api,版本需要更新到2024年之后的版本,老版可以去github拷贝引入文件到项目中。矩阵需要是规整的,不能长短不一(可以通过线性插值补充不足的点),形成一个类似网格的数据就行了,然后使用下面的方法。

2024-03-20 14:30:02 642 8

原创 【threejs】使用任意矩阵创建曲面

可以使用本方法创建平面,基本原理就是创建buffergeometry并通过index分配网格 同时修正uv让整个曲面可以展示贴图。使用一个三维矩阵描述一个不规则的面时(类似geojson的多边形,模型单个面网格),

2024-03-20 14:12:21 550

原创 【threejs】修正 threejs 后期效果合成EffectComposer 导致场景变暗淡修正

3 smaaPass解决后期render无法开启抗锯齿的问题 (还有一种fxaa修正 效果依实际情况选择)2 GammaCorrectionShader修正明暗色域。1 ShaderPass修正scene异常。

2024-03-20 14:03:22 714 9

原创 【threejs】在Cesiumjs内使用threejs渲染场景

创建该类即可,具体细节备注有写。

2024-03-19 15:45:53 1068 1

原创 【threejs】创建沿轨迹流动的粒子效果

使用class管理整个粒子系统。

2024-02-22 16:35:02 1387 1

原创 【weblg threejs shader】4.关于函数的补充--引入自定义变量

这里我再次说明一下,threejs创建ShaderMaterial的时候可以创建一个uniforms的对象存储我们更新glsl视图的参数,比如这里的uFormula,他的意思就是公式。我们可以将片源着色器改成一个箭头函数返回glsl字符串,并且在上述位置获取window上的uFormula变量(前提你取消了注释)。// 片元着色器代码 const getFragment =() => {// 扩大坐标系 现在整个uv的 xy在0-10之间来变化来st*=10.;······y=x;

2024-02-08 18:02:12 438

原创 【weblg threejs shader】3.函数,图像与合成

本次内容将教你构建任意函数,并合成多层图形。

2024-02-08 17:15:25 896

原创 【weblg threejs shader】2.色彩与线条还有简单的参数

glsl语言通常由通道组成,每一个色彩通道由r,g,b,a颜色和透明度通道组成,取值范围1到0,而着色位置由x,y和z三个坐标组成,这个取值比较随意。由于空间表示过于抽象,我先介绍色彩通道,然后再介绍空间坐标。首先请看上篇文章的色彩部分${${此时每个通道的颜色都是固定的颜色,我们并没有拿到什么特殊的参数去改变它的颜色,所以他的颜色就是他本来的样子:我们来尝试输入一些参数,让色彩变化起来 ,比如随着画布位置的改变调整它的颜色。

2024-02-08 15:58:55 994

原创 【weblg threejs shader】1.初始化

着色器通常由两个部分组成:顶点着色器和片元(或像素)着色器。顶点着色器处理每个图形顶点的位置和属性,而片元着色器处理每个像素的颜色和其他特性。顶点着色器通过对输入顶点进行变换和计算,将其转换为屏幕上的2D坐标,同时可以计算每个顶点的属性,如颜色和纹理坐标等。片元着色器负责计算每个像素的最终颜色,可以通过对纹理采样、光照计算和其他技术进行复杂的计算。通过编写自定义的着色器代码,您可以实现各种各样的效果,如纹理映射、光照、阴影、透明度和变形等。

2024-02-05 14:39:00 427 1

原创 【无标题】

Farm是一个使用Rust编写的前端工程构建工具,他有十分快速的构建速度并完全兼容vite插件。

2024-02-04 12:52:26 508 1

原创 修复threejs中带有透明度的贴图显示错误等问题

在threejs中 ,透明贴图可能会因为多次渲染造成色差或透视,如图带有透明贴图的Sprite所示。

2024-01-23 16:34:40 820 1

原创 原生 shader模板

logarithmicDepthBuffer 需要关闭,防止其显示不正确。其中 vUv代替r3f中的uv。

2023-12-07 15:18:03 386

shader随时间变化颜色

shader随时间变化颜色

2024-02-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除