【发布时间】:2015-07-06 20:23:12
【问题描述】:
在 THREE 中,您可以指定具有给定数据类型和格式的 DataTexture。我的着色器管道基于一些用户控制的制服规范化原始值。
以 Float32Array 为例,非常简单:
data = new Float32Array(...)
texture = new THREE.DataTexture(data, columns, rows, THREE.LuminanceFormat, THREE.FloatType)
而且,在着色器中,混合后的值具有非标准化值。但是,如果我使用:
data = new Uint8Array(...)
texture = new THREE.DataTexture(data, columns, rows, THREE.LuminanceFormat, THREE.UnsignedByteType);
然后纹理在 0.0 和 1.0 之间进行归一化,作为管道的输入。不是我所期待的。有没有办法防止这种行为?
这是一个示例 jsfiddle,展示了对意外情况的快速测试(至少对我而言):http://jsfiddle.net/VsWb9/3796/
three.js r.71
【问题讨论】:
-
我相信目前这是不可能的,基于此评论的回复和假设:stackoverflow.com/questions/13041830/… 涉及类似问题,但不在 WebGL 下。在发布我自己的问题的答案之前,我需要进一步研究它。
标签: three.js