-
Notifications
You must be signed in to change notification settings - Fork 0
DDS
DDSテクスチャの描画
GraphicsDevice.setShader() Shader.link()
ForwardRenderer.renderForward() ForwardRenderer.drawInstance() GraphicsDevice.draw() GraphicsDevice.setTexture() GraphicsDevice.initializeTexture() gl.createTexture(); gl.activeTexture(gl.TEXTURE0 + textureUnit); gl.bindTexture(texture._glTarget, texture._glTextureId); GraphicsDevice.uploadTexture() gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false); gl.compressedTexImage2D(gl.TEXTURE_2D, mipLevel, texture._glInternalFormat, Math.max(texture._width * resMult, 1), Math.max(texture._height * resMult, 1), 0, mipObject); gl.uniform1i(sampler.locationId, textureUnit);
gl.TEXTURE_2D 3553
gl.TEXTURE_CUBE_MAP 34067
pc.PIXELFORMAT_DXT1
texture._glTarget = texture._cubemap ? gl.TEXTURE_CUBE_MAP texture._glFormat = gl.RGB; 6407 texture._glInternalFormat = ext.COMPRESSED_RGB_S3TC_DXT1_EXT; 33776
texture._levels[0] にデータ
https://msdn.microsoft.com/ja-jp/library/dn302429(v=vs.85).aspx → compressedTexImage2D()は対象外らしい
https://github.com/mrdoob/three.js/issues/4316 → 反転したDDSを作成しろと?
http://www.html5gamedevs.com/topic/27362-dds-texture/ → Vを1-Vにする?
https://github.com/pex-gl/pex-examples/tree/master/context.Texture.flip
Application.setSkybox() Scene.setSkybox() Scene.skybox = cubemaps[0]; Scene._skyboxCubeMap = Scene._resetSkyboxModel() Scene._skyboxModel = null; Scene.updateShaders = true; Scene._skyboxLoad() Scene.assets.load() Scene._onSkyboxChange() Scene.setSkybox()
ForwardRenderer.render() Scene.updateShadersFunc() Material.setParameter("texture_cubeMap", this._skyboxCubeMap); pc.createBox() pc.createMesh()
CubeMap width height _compressed _format の設定
setSource() の改造
※sources[index]に設定する構造を変更
src/resources/cubemap.js src/graphics/texture.js //src/graphics/device.js // uploadTexture()には影響がないようにsetSource()でどうにかする
あとは反転問題…
engine/src/graphics/program-lib/chunks/skybox.vert vViewDir.y *= -1.0;
置換するところは、$を使うらしい
で上下反転
PNG, JPEG DXT 上下反転 PVR 〃 ETC1 ??
Cubemap内でcompressとそうではないものの混合は無理(動作確認してみて。仕様上は知らないけどきっとできないんじゃないか)
とりあえずできた 39503a6327611386fad08a7e483bb27c3f58ec7d
https://github.com/playcanvas/engine/pull/928
そもそも全体的(特にeasy texture compression)にDDSでのskyboxを想定できていない作りになっていて、例の彼が反転させないといけないこと自体が想定外らしい。。。 これ以上の局所対応は無理なのでclose