Skip to content

Commit 726eb8f

Browse files
committed
Translate webgl-readpixels.md into Chinese
1 parent 6b43b6e commit 726eb8f

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
Title: WebGL2 readPixels
2+
Description: readPixels 的详细信息
3+
TOC: readPixels
4+
5+
6+
在 WebGL 中,调用 `readPixels` 时需要传入一个 format/type(格式/类型)对。对于一个给定的纹理内部格式(附加到帧缓冲上的纹理),只有两种 format/type 组合是合法的。
7+
8+
来自规范的说明:
9+
10+
> 对于标准化的定点渲染表面,接受格式是 `RGBA` 和类型 `UNSIGNED_BYTE`的组合。
11+
> 对于有符号整数渲染表面,接受的格式是 `RGBA_INTEGER` 和类型 `INT`的组合。
12+
> 对于无符号整数渲染表面,接受的格式是 `RGBA_INTEGER` 和类型 `UNSIGNED_INT`的组合。
13+
14+
第二种组合是实现定义的
15+
<span style="color:red;">这很可能意味着,如果你想让你的代码具有可移植性,就不应该在 WebGL 中使用它</span>。
16+
你可以通过查询以下内容来查看当前实现所支持的 format/type 组合:
17+
18+
```js
19+
// 假设已经绑定了一个附有要读取纹理的 framebuffer
20+
const format = gl.getParameter(gl.IMPLEMENTATION_COLOR_READ_FORMAT);
21+
const type = gl.getParameter(gl.IMPLEMENTATION_COLOR_READ_TYPE);
22+
```
23+
24+
还需要注意,哪些纹理格式是 可渲染 的(即你可以将它们附加到 framebuffer 并对其进行渲染) 在某种程度上也是实现定义的。
25+
WebGL2 列出了[许多格式](webgl-data-textures.html),但其中有些是可选的(例如 `LUMINANCE`),
26+
而有些则默认不可渲染,除非通过扩展启用(例如 `RGBA32F`)。
27+
28+
**下表是实时的**。你可能会注意到,它在不同的设备、操作系统、GPU 甚至浏览器上可能会给出不同的结果。
29+
我在自己的机器上发现 Chrome 和 Firefox 在某些实现定义值上的表现是不同的。
30+
31+
<div class="webgl_center" data-diagram="formats"></div>
32+
<script src="../resources/twgl-full.min.js"></script>
33+
<script src="resources/webgl-readpixels.js"></script>

0 commit comments

Comments
 (0)