【问题标题】:How to transform texture of three.js to WebGL如何将three.js的纹理转换为WebGL
【发布时间】:2016-11-21 15:03:53
【问题描述】:

我得到了两个位置和法线的纹理对象,比如说,

var tx1 = gpuCompute.getCurrentRenderTarget( positionVariable ).texture;
var tx2 = gpuCompute.getCurrentRenderTarget( normalVariable ).texture;

GPUComputationRendererthree.js计算(参考例子gpgpu/protoplanet(1))

我想将其转换为WebGLBuffer 对象进行渲染,例如:

gl.bindBuffer(gl.ARRAY_BUFFER, tx1);
gl.vertexAttribPointer(shaderProgram.vertexPositionAttribute, 3, gl.FLOAT, false, 0, 0);

gl.bindBuffer(gl.ARRAY_BUFFER, tx2);
gl.vertexAttribPointer(shaderProgram.vertexNormalAttribute, 3, gl.FLOAT, false, 0, 0);

但是直接赋值不行。

我想问是否有办法做到这一点。这两个对象的格式截图如下(tx1来自threejs,tx3来自WebGL)。谢谢。

(1)https://threejs.org/examples/#webgl_gpgpu_protoplanet

【问题讨论】:

    标签: javascript web three.js webgl


    【解决方案1】:

    您不能直接将纹理复制到缓冲区中。为什么不直接将它们用作纹理?这是一个从纹理中渲染位置的示例。

    https://stackoverflow.com/a/22009385/128511

    【讨论】:

    • 非常感谢。那么有没有办法把three.js生成的那个纹理对象转换成gl.createTexture();gl.createTexture();生成的WebGLTexture格式呢?对不起,我不熟悉 javascript。再次感谢。
    • 我不知道如何从THREE.Texture 获得WebGLTexture。我会问一个单独的问题,如“如何从 THREE.Texture 获取 WebGLTexture?”
    猜你喜欢
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 2014-04-02
    • 2018-02-25
    • 2021-12-31
    • 2019-02-11
    • 2013-02-23
    • 2015-05-10
    相关资源
    最近更新 更多