自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(140)
  • 资源 (1)
  • 收藏
  • 关注

原创 Vulkan学习(二)

vulkan中有众多的createInfo信息,信息中的某些字段需要了解一下。

2025-02-25 11:31:08 165

原创 vulkan学习(一)

vulkan

2025-02-07 16:48:53 474

原创 c++函数模版类型推导

针对上面这个Filter函数,在main中直接调用,并没有传递任何的模版类型,编译器会根据调用时的类型自动进行推导,如果不使用编译器的类型推导应该怎么做呢?对于c++的函数模版,可以处理通用的数据类型,特别是stl中针对容器和算法的一些处理,如果自己写某个过程,如果不借助类型推导还真不好处理。方式2:不借助任何类型推导。

2025-01-23 10:16:30 186

原创 C++ 通用模版消息订阅模式

上面代码中通用的类是EventDelegate和EventManager类,其中EventDelegate主要用于一种类型的消息订阅与处理,其中的参数是可变的,如果使用类的继承方法不可避免的使用类的继承和指针的传递,这样可以编写很少的代码。C++中消息订阅模式的处理过程,针对不同的消息处理的数据不同,如果通过类型继承处理,需要写很多的类型,通过模版会减少代码的编写。这个过程不好理解的就是模版的元编程,然后就是stl标准库中的function类的使用。

2025-01-22 16:34:14 187

原创 javascript 原型、原型链

3、SpriteMaterial.prototype = Object.create( Material.prototype )这个过程会将Material.prototype的原型拷贝一份,防止后续SpriteMaterial.prototype上添加成员是修改Matieral.prototype。这个说明如果let sp = new SpriteMaterial时会将Material、SpriteMaterial中的this都指向sp这个对象。

2024-11-27 13:03:31 251

原创 山脉和湖泊

shadertoy 水模拟

2024-07-08 15:55:08 376 1

原创 Vulkan进阶-输入附件和Subpass以及One Pass Defer技术

多个subpass的执行方式

2024-07-05 13:09:51 1011

原创 cesium ClippingPolygon多边形裁切

多边形裁切

2024-06-17 16:25:39 2076 1

原创 直线与椭球相交计算

通常将椭球和直线联立方程组求解,但是计算过程涉及到分数计算,多项是就比较复杂,将直线与椭球相交转换成直线与球相交,可以简化计算过程;常规化简就比较复杂,涉及通分之类的计算,如果将上式子化简一下为下面的样子,,计算出k的值,就可以计算出交点坐标.,因为各个参数都是已知量,就减少了化简过程。一般的解法是将方程和直线联立,和直线的参数方程联立,

2024-04-23 10:51:54 465

原创 cesium中精度问题

关于cesium中的精度问题

2024-04-12 13:37:19 634

原创 cesium 像素代表的距离(实时)

cesium

2023-12-08 10:34:46 662

原创 欧拉公式推导

数学

2023-11-28 18:36:14 239

原创 cesium 判断模型是否在视锥内

cesium源码分析

2023-11-28 18:08:02 682 1

原创 Turf处理等压线

turf计算等值线

2023-09-28 17:04:15 973

原创 四元数的使用

平面向量向高维空间推广,实数对应一维数轴a, 对实数扩充产生复数a+b*i二维平面,对复数扩充产生四元数a+b*i+c*j+d*k三维空间,并定义相应的运算法则。形如a+b*i+c*j+d*k的数称为四元数(quaternion),其中a、b、c、d是实部,i、j、k称为虚部,并且有下列计算公式。加、减法 : (1+2i+3j+4k) + (4+5i+6j+7k) = 5+5i+9j+10k。乘法:(1+2i+3j+4k) * (4+5i+6j+7k) =复数的运算法则i * i = -1;

2023-03-29 10:58:05 578

原创 Cesium 合并多张图像方法

合并多张图片

2023-03-09 16:26:15 751

原创 Cesium 源码解析 float 与 rgba相互转化

cesium中将float转换为rgba

2023-03-07 15:10:14 784 1

原创 Cesium 源码解析 地球加载过程(一)

Cesium

2022-10-25 18:24:11 2557

原创 Cesium 源码分析 BatchTexture

cesium

2022-10-14 14:51:54 1407

原创 Cesium 源码解析 Model(六)

cesium

2022-09-23 17:10:13 1200

原创 Cesium 源码解析 Model(五)

cesium gltf WEB3D_quantized_attributes

2022-09-23 16:38:01 1133

原创 Cesium 源码解析 Model(四)

cesium model

2022-09-07 15:36:36 1717

原创 Cesium 源码解析 Model(三)

cesium model解析

2022-09-07 11:44:37 1293

原创 Cesium 源码解析 Model(二)

cesium

2022-09-06 17:37:58 1724

原创 Cesium 源码解析 Model(一)

cesium gltf model

2022-09-02 18:11:55 2250

原创 cesium gltf 1.0 2.0的一些扩展

gltf扩展

2022-08-30 17:11:31 1153

翻译 gltf规范翻译

gltf规范

2022-08-29 13:40:11 1031

原创 关于椭球的一点形象的解说

投影

2022-08-26 15:09:34 519

原创 cesium wgs84 经纬度转笛卡尔坐标

cesium wgs84 经纬度转笛卡尔坐标

2022-08-26 11:55:25 1284

原创 cesium 源码解析 ShaderProgram

shaderprogram

2022-08-10 11:49:58 2327

原创 cesium 压平的一种实现方式

cesium压平

2022-08-02 18:20:09 2853

原创 cesium 源码分析 裁切面原理

cesium 裁切面原理

2022-08-02 17:58:57 683

原创 Blender 源码分析(2)

Blender ID系统

2022-07-22 16:38:09 1867

原创 xatlas源码解析(七)

xatlas功能

2022-07-20 15:52:12 704 1

原创 Blender 源码解析(1)

Blender的UI于数据结构的简单介绍

2022-07-19 17:23:45 6049

原创 xatlas源码解析(六)

上一章说到,facegroup有了,facegroup组成了chartgroup,那么如何使用chartgroup计算相应的chart呢,答案在runChartGroupComputeChartsTask中,如下:// 使用ChartGroup计算Chartsstatic void runChartGroupComputeChartsTask(void *groupUserData, void *taskUserData){ auto args = (ChartGroupComputeChart

2022-04-02 19:03:30 1632

原创 xatlas源码解析(五)

前一章讲到,为了组织计算facegroup的任务数据,调用了computeCharts函数,这个函数中将每一个mesh放到一个任务当中,并使用多线程分割mesh,并将分割后的mesh形成一个一个的facegroup,下面看看是如何分割的:// 运行计算ComputeCharts的任务函数,计算每一个mesh分成多少个Charts的任务static void runMeshComputeChartsTask(void *groupUserData, void *taskUserData){ //

2022-04-02 16:52:40 618

原创 xatlas源码解析(四)

xatlas将导入的模型重新存储完成,格式化成s_atlas内部的mesh后,就开始将mesh分割成一个一个的chart。// 构建图集线程static void atlasGenerateThread() {// 第一次运行 或者 useUvMesh改变了 或者 chart改变了 if (firstRun || s_atlas.useUvMeshChanged || s_atlas.options.chartChanged) {#if USE_LIBIGL if (s_at...

2022-04-02 14:50:20 1035

原创 xatlas源码解析(三)

这一章讲解当模型不参考本身的uv的情况:继续上一章AddMesh过程的讲解,AddMesh中将模型的数据组织为atlas内部的数据,并且是原始数据的拷贝,而不是引用,并将mesh交给了子线程处理。// atlas中添加mesh【顶点、法线、uv】AddMeshError AddMesh(Atlas *atlas, const MeshDecl &meshDecl, uint32_t meshCountHint){ ...... // 获取一个任务组句柄 if (ctx->ad

2022-04-02 11:58:22 925 1

原创 xatlas源码解析(二)

在进行xatlas分析之前,先说说xatlas将模型加载到内存后的数据组织方式,代码如下:typedef struct { uint32_t flags; // flags代表网格索引数是否超过65535 // uint32_t if OBJZ_FLAG_INDEX32 flag is set, otherwise uint16_t. // See: objz_setIndexFormat void *indices; // 所有的面索引buffer uint32_t numIn

2022-04-01 19:54:43 1835

单向循环缓冲区

通过建立循环缓冲队列,将接收到得数据保存到队列中。或者将处理完的数据放入队列中,等待发送。

2013-03-04

空空如也

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

TA关注的人

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