相关疑难解决方法(0)

WebGL iOS渲染到浮点纹理

我正在尝试渲染到iOS Safari上的WebGL中的浮点纹理(不是在本机应用程序中).我已经设法让iOS手动(例如从JavaScript)创建浮点纹理,但是当我创建一个浮点类型的帧缓冲区并使用GPU渲染它时,它不起作用.

我已经将问题隔离到渲染到浮点纹理的代码,然后将其传递给另一个要显示的着色器.以下是应用于多维数据集的结果:

纹理渲染绘制绿色正方形,纹理的一半大小,然后应用于立方体的每一侧.

只要绿色方块呈现的纹理类型是标准的无符号字节类型,这在桌面和iOS WebGL上都可以正常工作.但是,将类型更改为浮点会导致iOS设备上的渲染纹理失败(同时继续在桌面浏览器上工作).纹理是空的,就好像没有渲染任何东西一样.

我在这里创建了一个示例项目来演示这个问题:https://github.com/felixpalmer/render-2-texture

使用该THREE.Renderer.precision设置更改着色器的精度没有任何区别

javascript opengl-es webgl ios

7
推荐指数
1
解决办法
3513
查看次数

如何在float和vec4,vec3,vec2之间进行转换?

这个问题与这里的问题非常相关(如何将vec4 rgba值转换为浮点数?).

已经有一些与此问题相关的文章或问题,但我想知道大多数文章都没有确定哪种类型的浮动值.只要我能想到,下面有一些浮动值包装/拆包公式.

  • 无符号规范化浮点数
  • 签署标准化浮点数
  • 签名远程浮点数(浮点值我可以找到范围限制)
  • 无符号远程浮点数
  • 无符号浮点数
  • 签名浮动

然而,实际上这只是两个案例.其他包装/拆包可以通过这两种方法处理.

  • unsigned ranged float(我可以通过简单的位移来打包/解压缩)
  • 签名浮动

我想将已签名的浮动值打包并解压缩到vec3或vec2中.

对于我的情况,浮动值不能确保标准化,所以我不能使用简单的位移方式.

opengl-es webgl glsles

4
推荐指数
2
解决办法
4622
查看次数

标签 统计

opengl-es ×2

webgl ×2

glsles ×1

ios ×1

javascript ×1