5

我想将位置或深度渲染到浮动纹理。我用

vsnTexture = new THREE.WebGLRenderTarget(window.innerWidth, window.innerHeight,
            { minFilter: THREE.NearestFilter, magFilter: THREE.NearestFilter, format: THREE.RGBAFormat ,type:THREE.FloatType }); 

作为渲染目标。

然后,我测试了

var gl = this.renderer.getContext();
    if( !gl.getExtension( "OES_texture_float" ) ){
        console.error( "No OES_texture_float support for float textures!" );
    } 

并没有发现错误。Chrome 支持 OES_texture_float,我踏入 THREE.js:

_gl.texImage2D( _gl.TEXTURE_2D, 0, glFormat, renderTarget.width, renderTarget.height, 0, glFormat, glType, null );
 //console.log(glType);

当我设置 WebGLRenderTarget:type:THREE.FloatType 时,我发现 glType =5126(gl.FLOAT)。这意味着我可以使用 OES_texture_float。我有什么问题吗?因为无论我设置类型:THREE.FloatType 还是使用默认值 (THREE.UnsignedByteType),我都会得到相同的渲染纹理。我没有OES_texture_float正确使用吗?

4

1 回答 1

3

是的,它确实。这个例子展示了如何使用它:

http://threejs.org/examples/#webgl_gpgpu_birds

于 2014-06-10T07:59:40.827 回答