自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

dabaooooq的博客

流水不争先,争的是滔滔不绝

  • 博客(179)
  • 收藏
  • 关注

原创 WebGLRenderTarget(离屏渲染)

从原生WebGL的角度阐述,就是渲染结果的RGBA像素值存储到了GPU一个自定义的帧缓冲区中,屏幕默认不会直接读取该缓冲区中的像素数据,通过WebGL的特定API可以获取,更多的信息可以百度WebGL或OpenGL离屏渲染

2025-03-31 22:54:13 482

原创 xr-frame 优化ar相机中加载模型效果

/组件生命周期:在视图层布局完成后执行ready() {//在小程序中同步获取系统信息//获取屏幕的宽度(单位为物理像素)//获取屏幕的高度(单位为物理像素)//设备像素比,即物理像素与逻辑像素之间的比率width,height,renderWidth: width * dpi * this.data.dpiScale,//与dpi,this.data.dpiScale相乘将逻辑像素转换为物理像素,同时考虑了 dpiScale影响因子});},

2025-03-31 22:45:54 252

原创 计算机网络 TCP/IP参考模型

目录TCP IP模型预览OSI和TCP的相同点OSI和TCP的不同点层参考模型层参考模型的数据封装与解封装

2025-03-31 22:28:52 326

原创 计算机网络 OSI参考模型

目录OSS七层 OSI通信过程1OSI通信过程2应用层 表示层会话层 传输层网络层数据链路层物理层

2025-03-31 22:25:09 419

原创 计算机网络 分层、协议、接口、服务

2025-03-31 22:20:25 85

原创 记录一下小程序支付业务提交代码审核时遇到的一些问题

2 如果ui无祝福含义,单纯虚拟支付:虚拟支付是除小游戏类目的安卓内购功能,开发者在iOS系统上提供的虚拟商品,不能展现任何有购买、支付的功能、页面、按钮,即使实际上它们都不可使用;也不得引导至外部网站或APP来实现支付功能。由于公司业务需要做ar类的祈福类型虚拟支付,付钱后可以在小程序端体验ar类的祈福效果,但在实际的业务场景中遇到了种种卡脖子的现象,特此记录!1 不支持祝福支付,目前没有开放对应类目,不支持发布。

2025-03-30 19:33:21 255

原创 微信小程序禁止页面上下滑动的三个方式

在微信小程序app.json的window中,添加”disableScroll”:true,但是要注意,如果你是要在app.json中添加disableScroll,会导致所有页面无法上下滑动,这就是个大bug了,解决也很简单,你想在那个页面禁止页面滑动,就在哪个页面的json下,添加disableScroll就可以了,单独设置就行!但是有些时候使用disableScroll并不合适,比如一个长页面,我需要弹窗出来的时候,才禁止上下滑动,弹窗隐藏的时候,又可以上下滑动!此方法呢,比较麻烦,写的代码比较多!

2025-03-30 19:24:59 157

原创 xr-frame 用cube代替线段实现两点间的连线

/ line});// 加到场上});

2025-03-27 21:34:58 362

原创 【线性代数的理解】 为什么说线性代数研究的是空间变换?旋转矩阵坐标转换矩阵

下面看矩阵乘法为何是不可交换的?注:1.1和2的过程,假如结果一样,就认同矩阵乘法可交换,假如结果不一样,就认为矩阵乘法不可以交换,即不满足交换律。2.矩阵的乘法虽然没有交换律,但是有结合律,简而言之,就是满足就近原则。注:1.2.对于一个几何图形而言,先旋转后拉伸和先拉伸后旋转效果一般是不会一样的。空间变换的两种特殊情况:情况1:空间变换的矩阵中有负值:情况2:空间变换的行列式等于0.

2025-02-28 23:40:52 1048

原创 xr-frame 3D Marker识别,扬州古牌坊 3D识别技术稳定调研

为提高Marker质量,保证算法识别效果,可参考Marker规范文档。目前仅允许通过 小程序示例 的。

2025-02-28 23:18:25 942

原创 小程序Three Dof识别 实现景区AR体验

代码工程 https://gitcode.com/dabaooooq/threedof

2025-02-28 23:07:36 169

原创 Threejs 解析几何体提取顶点数据流程

解析几何体对象,提取顶点数据,然后调用WebGL API创建顶点缓冲区,并把创提取的顶点数据传入创建的顶点缓冲区。解释Three.js渲染器是如何解析场景和渲染器对象的,也就是Threejs如何解析几何体并创建相应的顶点缓冲区。Three.js渲染器解析几何体对象,会从几何体对象提取顶点数据传入WebGL顶点缓冲区的时候,如果解析的是对象,直接访问属性提取顶点数据就可以,比如获得顶点位置数据,通过获得顶点数据。如果Three.js渲染器解析的几何体是Geometry对象,会先把Geometry对象转化为。

2025-02-28 22:22:48 798

原创 Three.js 材质对象Material对应的着色器Shader代码

着色器代码文件目录是,shaders目录下有两个着色器代码的文件ShaderChunk和ShaderLib。ShaderChunk目录下的着色器代码文件.glsl都是具有特定功能的模块,ShaderLib目录下的着色器文件会通过#include <ShaderChunk中着色器文件名>调用ShaderChunk目录下特定功能的着色器代码块构建出来具有具有特定功能的顶点着色器文件和片元着色器文件。

2025-02-28 22:00:35 447

原创 WebGL 渲染器 WebGLRenderer

帧缓冲区包含颜色缓冲区、深度缓冲区、模板缓冲区,颜色缓冲区存储片元的颜色数据,也就是像素数据,深度缓冲存储片元的深度数据,用于WebGL渲染流程中的深度测试环节,被遮挡的片元会被剔除,不会显示在canvas画布上。属性,可以把Three.js的canvas画布插入到html任何一个元素中,可以在整个body页面上全局显示,也可以插入一个div元素中局部显示,注意canvas画布尺寸设置。Three.js渲染器默认情况下,本次执行render方法之前,会把上次执行render方法后帧缓冲区中的数据清除。

2025-02-28 21:54:51 354

原创 Three.js包围盒

包围盒是一种计算一系列顶点最优包围空间的算法,比如一个不规则几何体的所有顶点坐标都被包围在一个最小的长方体盒子中,需要一个算法来求解这个最小的长方体包围盒。Three.js封装与包围盒算法相关的三个API,分别是三维包围盒Box3、包围球Sphere、包围矩形Box2。

2025-02-27 23:44:31 832

原创 微信小程序禁止页面上下滑动的三个方式

在微信小程序app.json的window中,添加”disableScroll”:true,但是要注意,如果你是要在app.json中添加disableScroll,会导致所有页面无法上下滑动,这就是个大bug了,解决也很简单,你想在那个页面禁止页面滑动,就在哪个页面的json下,添加disableScroll就可以了,单独设置就行!代码如下://弹窗遮罩层。但是有些时候使用disableScroll并不合适,比如一个长页面,我需要弹窗出来的时候,才禁止上下滑动,弹窗隐藏的时候,又可以上下滑动!

2025-02-27 22:36:47 357

原创 计算机网络 性能指标相关

目录吞吐量时延 时延带宽积往返时延RTT利用率

2025-01-31 15:15:37 953 1

原创 计算机图形学 通过叉乘判断一个点是否在三角形内

判断一个点是否位于三角形内可以使用多种方法,其中一种较为直观且常用的方法是利用向量的叉乘。叉乘的方法基于向量的方向来判断,如果一个点在三角形内部,那么从该点到三角形每个顶点的向量与三角形边的向量的叉乘方向应该是相同的(亦即,这些叉乘向量的方向保持一致性,要么全部向内,要么全部向外)。

2025-01-31 14:30:22 562

原创 Three.js 中实现自定义光圈 Shader 效果

Three.js 是一个功能强大的 WebGL 库,它让开发者能够轻松地创建复杂的 3D 场景、动画和交互效果。然而,有时候内置的材质和效果无法满足项目的特定需求。在这种情况下,我们可以通过使用自定义着色器来实现独特的视觉效果。Three.js 与自定义着色器的基础知识在 Three.js 中,自定义着色器是通过实现的。允许你完全控制顶点着色器和片段着色器的行为。顶点着色器(Vertex Shader):负责处理每个顶点的位置。片段着色器(Fragment Shader):负责为每个像素计算颜色。

2025-01-31 13:42:01 976

原创 Three.js 后期处理(Post-Processing)详解

在使用 Three.js 创建 3D 场景时,后期处理(Post-Processing)是一个不可忽视的环节。它通过对渲染结果进行额外的处理,可以极大地提升场景的视觉效果,使画面更具吸引力和表现力。后期处理。

2025-01-30 13:57:53 1528

原创 高等数学:映射与函数

目录映射函数定义函数特性

2025-01-19 22:11:42 253

原创 xr-frame 模型摆放与手势控制,支持缩放旋转

【代码】xr-frame模型摆放与手势控制,支持缩放旋转。

2025-01-19 21:44:42 519

原创 Threejs 自定义片元着色器 做UV动画

【代码】Threejs 自定义片元着色器 做UV动画。

2025-01-06 00:22:39 331

原创 xr-frame 通过shader去除视频背景色,加载透明视频

实现了一个用于注册自定义效果(Effect)的 代码,用于 xr-frame框架中。这个效果的核心功能是去除场景中的黑色部分,或者说是对视频纹理进行处理实现思路获取 XR 框架系统// 自定义效果的实现});使用方法注册了一个名为的自定义效果。这个效果会在指定的场景中生效。

2025-01-05 23:39:46 1137

原创 XR-frame实现文字渲染

【代码】XR-frame实现文字渲染。

2024-10-31 23:02:17 213

原创 Threejs中使用A*算法寻路导航

【代码】Threejs中使用A*算法寻路导航。

2024-09-30 22:31:21 483 2

原创 XR-Frame 实现 始终朝向屏幕(相机)的面片与模型

wxml,xr-frame中plane平面默认是趴在场景中的,需要先绕x轴渲染90度。在场景的ready事件中获取相机,模型,并注册tick请求动画帧事件。请求动画帧中,计算旋转四元数,更新模型朝向。

2024-08-31 23:41:41 846 1

原创 XR-Frame 计算相机与场景物体的距离

另想要每帧实时去计算这个距离,可以在另想要每帧实时去计算这个距离,可以在scene的tick事件中操作。scene的tick事件中操作。

2024-07-31 21:44:45 318

原创 Games101 透视投影矩阵推导

透视投影,从一个点往外延伸出来一个四棱锥,这个点就是相机,定义 远平面f 和 近平面n,透视投影视椎体的区别就在于它的远平面要比近平面更大,那么如何计算这个不规则的视体矩阵呢?将透视相机的Frustum挤压为正交相机的Cuboid;再用正交投影矩阵相乘与上方变换矩阵相乘,即可得到最终的透视投影矩阵

2024-06-26 01:01:32 947

原创 Games101 正交投影矩阵推导

正交投影不管是远处还是近处,都是直接挤在屏幕上就好,它没有近大远小的效果。首先,把相机放在原点上,往-z方向看,上方向是y;这样摆放相机的好处是,把z坐标扔掉,得到的结果自然而然就是平面的上的一张图。将z扔掉后,所有的像素都在xy平面上了,不管xy的覆盖范围有多大,都给他移到 -1~1 * -1~1 的区间,此时就是正交投影的成像结果

2024-06-24 23:21:46 572

原创 Three.js 性能监测工具 Stats.js

通过stats.js库可以查看three.js当前的渲染性能,具体说就是计算three.js的渲染帧率(FPS),所谓渲染帧率(FPS),简单说就是three.js每秒钟完成的渲染次数,一般渲染达到每秒钟60次为最佳状态。stats.js下载链接:https://github.com/mrdoob/stats.js。

2024-05-31 23:56:09 851

原创 WebGL画粗线

WebGL绘制模式有点、线、面三种;通过点的绘制可以实现粒子系统等,通过线可以绘制一些连线关系;面就强大了,通过面,我们可以绘制我们想绘制的所有的三维对象。然而,WebGL在绘制线条的时候,存在一个缺陷,那就是在一些机器的一些浏览器上面(大多数情况下)线宽只能设置为1,而不能设置成其他的值。,可以测试自己的电脑是否可以绘制粗线可以看出,我的Chrome有这个 问题基本思路既然画线实现不了加粗,那就使用面来模拟粗线。

2024-05-31 23:21:21 796

原创 Threejs(WebGL)绘制线段优化:Shader修改gl.LINES模式为gl.LINE_STRIP

场景中有大量的非连续线段,每条线段由大量的点构成(曲率较大),并且需要合并渲染,这时,一般考虑使用LineSegments画线,因为LineSegments底层是基于 gl.LINES 的WebGL标准进行绘制,v0 v1、 v1 v2、 v2 v3、 v3 v4.......但是,这种方法会有一定代价。

2024-05-31 21:20:33 1485

原创 Threejs性能优化方向(底层)

一、使用交叉顶点数据:用一个数组交叉地保存顶点数据,而不是用独立的顶点数组保存不同的属性,会得到更好的性能,因为顶点数组具有更好的局部内存。例如,把顶点位置读入到变换前顶点缓存时,很可能会把该顶点的法线信息也读入到变换前的顶点缓存中,在需要时供顶点着色器使用。如下

2024-05-18 00:19:28 1732

原创 WebGL性能优化:退化三角形

第二个三角形带由(V5,V6,V7,)、(V7,V6,V8)这两个三角形组成,它们与元素数组缓存中最后位置的元素索引(5,6,7,8)相对应。首先是第-个三角形带的3个三角形,对应的索引分别为(0,1,2)、(2,1,3)和(2,3,4)。这种不连续性或两个三角形带间存在跳转的解决方法是插入额外的索引(如果使用gl.drawArrays()函数,则插入额外的顶点),这样就得到退化三角形,退化三角形是指三角形至少有两个索引(或顶点)是相同的,因此,存在面积为0的三角形,这样的三角形很容易被GPU检测并删除。

2024-05-17 23:11:54 652

原创 Threejs + Shader 字体扭曲效果

【代码】Threejs + Shader 字体扭曲效果。

2024-05-13 00:00:10 326

原创 推导 模型矩阵的逆转置矩阵求运动物体的法向量

直接通过模型矩阵自身求变换后的法向量。比如说,一个法向量是(1,0,0),沿Y轴平移2.0个单位后,就变成了(1,2,0)。总之,计算变换后的物体表面的法向量方向时,是求诸于模型矩阵自身,还是模型矩阵的逆转值矩阵,取决于模型矩阵中已经包含的变换类型(平移、旋转或缩放)。这里,为了获得变换后的法向量,我们试图使用模型矩阵乘以原先的法向量(1,1,0)。令模型矩阵为M,令初始的法向量为n,令变换矩阵为M',也就是用来正确变换法向量n的矩阵,令垂直于n的向量为s,令变换后的法向量为n',令垂直于n'的向量为s'

2024-05-12 15:53:44 876

原创 Threejs 动态修改InstanceMesh实例化几何体中单个实例的颜色

instanceMesh是使用InstancedMesh类来创建实例化的几何体。它适用于当需要大量重复的几何体时,但是每个实例之间有不同的变换属性(如位置、旋转、缩放等)。场景:在InstanceMesh多实例创建后,动态修改某个实例的颜色。思路:InstanceMesh外层材质颜色置为白色,创建时调用setColorAt对每个实例设置color要创建后修改,需要为InstanceMesh添加一个数组,按序存放每个小实例的id,根据id检索数组,获取当前实例在多实例中

2024-05-11 23:58:37 948

原创 Threejs Shader动态修改Merge合并几何体中单个Mesh的颜色

动态控制mergeBufferGeometries合并几何体中的单个geometry。方法:给每个几何体添加缓冲属性,存储 id和geometry顶点数量。merge合并后,每个geometry的自定义映射属性会同position一样push在一个数组中要单个控制时:通过id检索映射数组,可以得到当前geometry的顶点数量,从而得到这段顶点在merge的position中的位置根据当前geometry顶点坐标,通过onBeforeCompile,修改材质的着色代码

2024-05-11 22:18:18 1386

原创 点乘 及其几何意义

点乘的结果可以用来计算一个向量在另一个向量上的投影。如果有两个向量a和b,a点乘b的结果除以b的长度就是a在b上的投影的长度

2024-04-21 00:19:18 1803

反弹效果.zip

反弹效果.zip

2024-04-18

1_24_Pointer_Advanced.zip

1_24_Pointer_Advanced.zip

2023-11-11

24_Pointer_Advanced.zip

24_Pointer_Advanced.zip

2023-11-09

examples.zip

examples.zip

2023-09-13

Module loading FBX

Module loading FBX

2023-05-28

3DMax Scroll official website

3DMax Scroll official website

2023-04-28

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

TA关注的人

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