02 2022 档案
摘要:1 问题起因 我使用 vite2 + vanillajs 模板创建 CesiumJS 项目,其中,main.js 是这样的: import { Viewer } from 'cesium' import './style.css' import 'cesium/Source/Widgets/widg
阅读全文
摘要:前两篇文章介绍了 WebGL 和 WebGPU 是如何准备顶点和数字型 Uniform 数据的(纹理留到下一篇),当渲染所需的原材料准备完成后,就要进入逻辑组装的过程。 WebGL 在这方面通过指定“WebGLProgram”,最终触发“drawArrays”或“drawElements”来启动渲染
阅读全文
摘要:众所周知,在 GPU 跑可编程管线的时候,着色器是并行运行的,每个着色器入口函数都会在 GPU 中并行执行。每个着色器对一大片统一格式的数据进行冲锋,体现 GPU 多核心的优势,可以小核同时处理数据;不过,有的数据对每个着色器都是一样的,这种数据的类型是“uniform”,也叫做统一值。 这篇文章罗
阅读全文
摘要:1 说明 jsts 完全就是根据其老妈 jts 的 java 包结构移植的,除了部分分析功能需要额外注意外,基本上所有的子模块的根路径位于 jsts/org/locationtech/jts 模块下。 Geometry 类 Geometry 类符合 OGC 简单要素规范的设计。它有若干个子类,例如点
阅读全文
摘要:1. WebGL 中的 VBO 1.1. 创建 WebGLBuffer WebGL 使用 TypedArray 进行数据传递,这点 WebGPU 也是一样的。 下面的代码是 WebGL 1.0 常规的 VertexBuffer 创建、赋值、配置过程。 const positions = [ 0, 0
阅读全文
摘要:OpenGL 体系给图形开发留下了不少的技术积累,其中就有不少的“Buffer”,耳熟能详的就有顶点缓冲对象(VertexbufferObject,VBO),帧缓冲对象(FramebufferObject,FBO)等。 切换到以三大现代图形开发技术体系为基础的 WebGPU 之后,这些经典的缓冲对象
阅读全文
摘要:1. 什么是缓冲映射 就不给定义了,直接简单的说,映射(Mapping)后的某块显存,就能被 CPU 访问。 三大图形 API(D3D12、Vulkan、Metal)的 Buffer(指显存)映射后,CPU 就能访问它了,此时注意,GPU 仍然可以访问这块显存。这就会导致一个问题:IO冲突,这就需要
阅读全文
摘要:1. 获取高频操作对象 1.1 WebGL 获取上下文对象 WebGL 获取的是 WebGLRenderingContext/WebGLRenderingContext2 对象,必须依赖于有合适宽度和高度的 HTMLCanvasElement,通常命名为 gl,gl 变量有非常多方法,允许修改 We
阅读全文

浙公网安备 33010602011771号