webgl:頂点シェーダーのテクスチャアクセス?
-
30-09-2019 - |
質問
テクスチャーから読むことは可能ですか バーテックス webglのシェーダー?
私は書いた webglページ (試してみるために)Chrome 7を使用してテストしました。 Chrome 8にアップグレードするとすぐに、動作が停止しました。 WebGLが有効になっていることを再確認しました。エラーは次のとおりです。
「Texture2D」:一致する過負荷機能は見つかりません
Technture2Dへの呼び出しを定数に置き換えると、機能します。同じテクスチャを使用したフラグメントシェーダーのテクスチャアクセスも機能します。
誰かがアイデアを持っていますか? Chromeをアップグレードすると壊れたという事実に特に投げられています。
アップデート: Firefox 4ベータで動作します。 Chrome -Issue 65340を使用したバグを報告しました
更新2: 現在、FirefoxとChromeで動作します
解決
Chromeの「バグ」ではありません。
頂点テクスチャアクセスは、WebGL仕様の基礎であるOpen GL ES 2の必要な機能ではありません。何が起こっているのかは、根底にあるGLドライバーが頂点テクスチャアクセスをサポートしているが、使用角度を使用してChromeに切り替えて、頂点のテクスチャアクセスを利用可能に報告していないことだと思われます。
Sutcher Ulrich'sを使用して、FFとChromeバージョンを比較できます
http://webgl-bench.appspot.com/
これにはmax_vertex_texture_image_unitsパラメーターがあります(端近く)クロム/角度は常に0.tを報告します
確認するもう1つのことは、正しいTexture2D構文を使用していることです。仕様が変更されており、FFが古い構文をサポートしている可能性があります。
他のヒント
コメントしたいのですが、評判はありません。
Alanatmechが言ったように、それはすべてのGL呼び出しをDirectXに転送する角度に関連している可能性があります。そのため、OpenGLドライバーなしでWindowsマシンでWebGLをサポートすることは、機能のドロップではなく、利点があります。
"-use-gl = desktop"でChromeを実行してみることができます。したがって、Angleの代わりにOpenGLレンダリングバックエンドを使用します。あなたのサイトはどちらよりもChrome 8.0.552.215ベータ版で私のために機能していませんが、あなたが言及したエラーを与えません。これは、旗なしで、そして地雷原でChrome 9.0.597.10 Canary Buildで取得します。