为何在打包工具中导入 Cesium 的 css 失败了?

2022-02-28
阅读 3 分钟
2.4k
这个问题貌似在各前端框架的模板中是不会出现的,我不确定。也有人在 Webpack 中遇到了这个类似的情况,究其原因,我认为还是 cesium 包的导出有些不完备,见下面第二节的分析。

WebGL 与 WebGPU比对[5] - 渲染计算的过程

2022-02-28
阅读 5 分钟
1.7k
前两篇文章介绍了 WebGL 和 WebGPU 是如何准备顶点和数字型 Uniform 数据的(纹理留到下一篇),当渲染所需的原材料准备完成后,就要进入逻辑组装的过程。

WebGL 与 WebGPU比对[4] - Uniform

2022-02-19
阅读 10 分钟
1.8k
众所周知,在 GPU 跑可编程管线的时候,着色器是并行运行的,每个着色器入口函数都会在 GPU 中并行执行。每个着色器对一大片统一格式的数据进行冲锋,体现 GPU 多核心的优势,可以小核同时处理数据;不过,有的数据对每个着色器都是一样的,这种数据的类型是“uniform”,也叫做统一值。

在 esmodule 环境下使用 jsts

2022-02-14
阅读 2 分钟
1.3k
jsts 完全就是根据其老妈 jts 的 java 包结构移植的,除了部分分析功能需要额外注意外,基本上所有的子模块的根路径位于 jsts/org/locationtech/jts 模块下。

WebGL 与 WebGPU比对[3] - 顶点缓冲

2022-02-14
阅读 3 分钟
1.5k
WebGL 获取的是 WebGLRenderingContext/WebGLRenderingContext2 对象,必须依赖于有合适宽度和高度的 HTMLCanvasElement,通常命名为 gl,gl 变量有非常多方法,允许修改 WebGL 的全局状态

WebGL 与 WebGPU比对[2] - 初始化篇

2022-02-14
阅读 3 分钟
1.4k
WebGL 获取的是 WebGLRenderingContext/WebGLRenderingContext2 对象,必须依赖于有合适宽度和高度的 HTMLCanvasElement,通常命名为 gl,gl 变量有非常多方法,允许修改 WebGL 的全局状态

WebGPU 中消失的 FBO 和 RBO

2022-02-14
阅读 9 分钟
2k
OpenGL 体系给图形开发留下了不少的技术积累,其中就有不少的“Buffer”,耳熟能详的就有顶点缓冲对象(VertexbufferObject,VBO),帧缓冲对象(FramebufferObject,FBO)等。

WebGPU 中的缓冲映射机制

2022-02-12
阅读 2 分钟
1.4k
三大图形 API(D3D12、Vulkan、Metal)的 Buffer(指显存)映射后,CPU 就能访问它了,此时注意,GPU 仍然可以访问这块显存。这就会导致一个问题:IO冲突,这就需要程序考量这个问题了。

WebGPU 中消失的 VAO

2022-02-09
阅读 3 分钟
1.3k
A Vertex Array Object (VAO) is an object which contains one or more Vertex Buffer Objects and is designed to store the information for a complete rendered object. In our example this is a diamond consisting of four vertices as well as a color for each vertex.

WebGPU 的几个最佳实践

2022-01-26
阅读 6 分钟
2.5k
WebGPU 中的每个对象都有 label 属性,不管你是创建它的时候通过传递 descriptor 的 label 属性也好,亦或者是创建完成后直接访问其 label 属性也好。这个属性类似于一个 id,它能让对象更便于调试和观察,写它几乎不需要什么成本考量,但是调试的时候会非常、非常爽。
封面图

下一代 3DTiles(Next)详解 [0] 文章目录

2022-01-21
阅读 1 分钟
1.2k
篇1 总体简介篇2 瓦片数据内容扩展之 3DTILES_content_gltf篇3 瓦片数据内容扩展之 3DTILES_multiple_content篇4 瓦片组织形式扩展之 3DTILES_implicit_tiling篇5 瓦片组织形式扩展之 3DTILES_bounding_volume_S2篇6 瓦片属性数据组织扩展之 3DTILES_metadata未完待续
封面图

下一代 3DTiles(Next)详解 [6] 瓦片属性数据组织扩展之 3DTILES_metadata

2022-01-21
阅读 13 分钟
3.1k
如果用到了属性元数据,那么这项扩展必须同时出现在 extensionsUsed 和 extensionsRequired 数组中,即“必需的”。
封面图

下一代 3DTiles(Next)详解 [5] 瓦片组织形式扩展之 3DTILES_bounding_volume_S2

2022-01-21
阅读 8 分钟
2k
S2 是一个用于定义单位球体表面的网格框架的程序库,一个网格单元(又叫单元格,Cell)将会横竖各取一半来分成 4 个子单元格,单元格的四个边界线均为测地线(即沿着地面的“直线”)。
封面图

下一代 3DTiles(Next)详解 [4] 瓦片组织形式扩展之 3DTILES_implicit_tiling

2022-01-21
阅读 13 分钟
3.5k
如果瓦片在空间索引规则上用到了隐式分割,那么这项扩展必须同时出现在 extensionsUsed 和 extensionsRequired 数组中,即“必需的”。
封面图

下一代 3DTiles(Next)详解 [3] 瓦片数据内容扩展之 3DTILES_multiple_content

2022-01-21
阅读 8 分钟
1.7k
如果在瓦片中引用了多个数据文件作为内容,那么这项扩展必须同时出现在 extensionsUsed 和 extensionsRequired 数组中,即“必需的”。
封面图

下一代 3DTiles(Next)详解 [2] 瓦片数据内容扩展之 3DTILES_content_gltf

2022-01-21
阅读 3 分钟
1.9k
如果用到了 glTF 作为瓦片内容文件,那么它必须同时出现在 extensionsUsed 和 extensionsRequired 数组中,即“必需的”。
封面图

下一代 3DTiles(Next)详解 [1] 总体介绍

2022-01-21
阅读 4 分钟
4k
在 Next 中,glTF 2.0 数据将可以直接作为瓦片的内容,不再使用 1.0 的 b3dm、i3dm、pnts 和 cmpt,提供了与 glTF 生态的互通性。瓦片可以引用单个内容,也可以引用多个内容。

WebGL 与 WebGPU 比对[1] 前奏

2022-01-15
阅读 6 分钟
1.7k
你若往 Web 图形技术的底层去深究,一定能追溯到上个世纪 90 年代提出的 OpenGL 技术,也一定能看到,WebGL 就是基于 OpenGL ES 做出来的这些信息。OpenGL 在那个显卡羸弱的年代发挥了它应有的价值。

WebGPU 补充篇之 Uniform

2021-09-22
阅读 5 分钟
2.1k
系列博客总目录:[链接]参考自WebGPU 8. Resource Binding(资源绑定)WGSL 5.1. Module Scope Variables(全局对象)WGSL 9.3.2. Resource interface(资源接口)WebGPU 中的 Uniform接口预览:GPUBindGroupGPUBindGroupLayoutGPUBufferGPUBufferUsageGPUSamplerGPUTextureWebGPU 中,uniform 资源的传递是通过 UBO 完...

WebGPU 补充篇之 VertexBuffer

2021-09-22
阅读 2 分钟
1.3k
VertexBuffer 的本体就是一个 GPUBuffer,主要就是指定其 usage,以及在创建 ShaderModule 时配置好 VertexAttribute。

WebGPU 规范篇 11 Canvas上下文

2021-09-22
阅读 3 分钟
2k
系列博客总目录:[链接]对应规范中 Canvas Rendering 一章1 GPUCanvasContextGPUCanvasContext 类型,其对象被称作 WebGPU 上下文。它的作用就是让 HTML 上的 Canvas 元素,作为 WebGPU 中的一个纹理,与 WebGPU 进行渲染互动。它的获取方法同 WebGLRenderingContext: {代码...} 但是它与 WebGLRenderingContext 最大的...

WebGPU 规范篇 10 指令编码与队列

2021-09-22
阅读 8 分钟
1.5k
指令缓存(又译作命令缓冲区),GPUCommandBuffer,是一个能事先存储 GPU 指令的存储容器。它可以提交给 [GPUQueue]() 执行。每个 GPU 指令代表一个要被 GPU 执行的任务,可以是绘图、设置数据、复制资源等。

WebGPU 规范篇 09 通道

2021-09-22
阅读 7 分钟
1.7k
系列博客总目录:[链接]Pass,通道。通道允许使用多个 Pipelines。Pipelines 允许切换不同的资源(bindGroup、VBO)。通道在设置好 Pipelines (setPipeline)和资源绑定(setVertexBuffer、setBindGroup)、绘制命令(draw)触发之后,要进行编码(endPass),编码完成即可告诉指令编码器完成一个通道编码器的编码,并...

WebGPU 规范篇 08 管线

2021-09-22
阅读 18 分钟
1.6k
这一过程需要用到绑定组、VBO、着色器等对象或资源,然后最终能输出一些内容,譬如渲染管线输出颜色值(以颜色附件形式),计算管线输出到其指定的地方,此处就不列举太详细了。

WebGPU 规范篇 07 着色器模块

2021-09-22
阅读 3 分钟
2k
系列博客总目录:[链接]对应文档中的 [链接]关于着色器模块的创建,与 WebGL 中的 Shader 有改进,提供了编译信息。GPUShaderModule 接口这个接口是可以序列化的,意味着可以传递其引用进行多线程编程。它是不可变对象(只读),所以不存在冲突的问题。 {代码...} 创建创建一个 GPUShaderModule,需要调用 device.create...

WebGPU 规范篇 06 资源及其打组绑定

2021-09-22
阅读 12 分钟
1.8k
为了完成这个过程(CPU到GPU),WebGPU 设计了几个对象用于管理这些数据,这些数据包括 某些GPUBuffer(例如UBO,但是不包括VBO)、GPUTexture、GPUSampler、存储型纹理、外部纹理五种,这几个对象是:

WebGPU 规范篇 05 采样器

2021-09-22
阅读 3 分钟
1.5k
通过 device.createSampler() 方法即可创建,这个方法一样需要一个对应类型为 GPUSamplerDescriptor 的参数对象。

WebGPU 规范篇 04 纹理

2021-09-22
阅读 9 分钟
2.5k
系列博客总目录:[链接]WebGPU 之纹理1 纹理的创建纹理由 device.createTexture() 创建,类型是 GPUTexture: {代码...} createTexture 方法需要一个 GPUTextureDescriptor 类型的对象: {代码...} 有三个必选参数:size: GPUExtent3D 类型,表示GPUExtent3D 类型format: GPUTextureFormat 类型,即纹理的格式;GPUTextu...

WebGPU 规范篇 03 缓存对象

2021-09-22
阅读 7 分钟
2.3k
GPUBuffer 表示一块显存。显存中的数据是线性排列的,也就是可以通过偏移量来寻找显存中的数据。有些 GPUBuffer 可以被映射,被映射后的 GPUBuffer 可以通过 JavaScript 中的 ArrayBuffer 访问。

WebGPU 规范篇 02 对象初始化

2021-09-22
阅读 5 分钟
2.5k
系列博客总目录:[链接]参考自 [链接]1 navigator.gpuGPU 对象能在浏览器环境(Window环境)获取,也可以在非共享全局 Worker 中获取,其接口定义如下: {代码...} 可以通过访问 navigator.gpu 来访问 GPU 对象。2 GPU对应 [链接]GPU 是 WebGPU 的入口,可以通过 navigator.gpu 访问它。 {代码...} requestAdapter 方法...

WebGPU 规范篇 01 规范基础

2021-09-22
阅读 7 分钟
2.3k
系列博客总目录:[链接]WebGPU 基本概念节选翻译,选自 WebGPU Spec 3 Fundamentals,本文列举一部分简单的内容,其余内容以后单独拉出去和其他资料一起谈。1 公共约定节选自 WebGPU Spec 3.1 Conventions① WebGPU 接口WebGPU 接口是内部对象的公开访问形式,和大多数语言的接口语法提供的功能差不多。这里只需注意,继...

WebGPU 的类型约定之WebIDL

2021-09-22
阅读 3 分钟
1.7k
系列博客总目录:[链接]说明WebGPU 的规范是通过 WebIDL 语言来描述的,本篇主要介绍类型定义。函数定义、继承描述较为简单,故略去。用于定义类型的语法有以下五种。enum枚举类型,通常其枚举值就是 JavaScript 字符串,取值时符合里面的任意一个即可。 {代码...} 于是,你可以在创建纹理对象时这样用这个枚举: {代码....

WebGPU 摘学总目录

2021-09-22
阅读 2 分钟
4.7k
我所发布的这一系列博文,均为“WebGPU Spec API”的解读,而且是部分解读,还不一定在概念、细节上完全准确。只是,我喜欢吃这螃蟹,虽然的确有点扎嘴。