2

WebGL2 で sRGB テクスチャを利用するのに問題があります。テクスチャを読み込んでフルスクリーン クワッドとして表示しようとしていますが、画像が正しく表示されません (暗すぎます)。

テクスチャの読み込みコードは次のとおりです。

const texture0 = await (() => {
    const image = new Image()
    const promise = new Promise(resolve => image.onload = () => {
        const texture = gl.createTexture()
        gl.bindTexture(gl.TEXTURE_2D, texture)
        gl.texStorage2D(gl.TEXTURE_2D, 1, gl.SRGB8_ALPHA8, 256, 256)
        gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 256, 256, gl.RGBA, gl.UNSIGNED_BYTE, image) 
        resolve(texture)
    })
    image.src = "./images/texture.png"
    return promise
})()

おそらくフレームバッファのエンコーディングに関係していると思いますが、WebGL で glEnable(GL_FRAMEBUFFER_SRGB) に相当するものを見ました。

4

1 に答える 1