11

Three.jsシェーダーで拡張機能を有効にするにはどうすればよいですか?

これまでの私のコード:

拡張機能の取得:

var domElement = document.createElement( 'canvas' );
var gl = domElement.getContext('webgl') || domElement.getContext('experimental-webgl');
gl.getExtension('OES_standard_derivatives');

私のシェーダーで:

fragmentShader: [
    "#extension GL_OES_standard_derivatives : enable",
    "code..."
]...

コンソール出力:
警告:0:26:拡張機能「GL_OES_standard_derivatives」はサポートされていません
エラー:0:32:「dFdx」:一致するオーバーロードされた関数が見つかりません
エラー:0:32:「=」:「constmediumpfloat」から変換できません「floatの2成分ベクトル」
エラー:0:33:「dFdy」:一致するオーバーロードされた関数が見つかりません
エラー:0:33:「=」:「constmediumpfloat」から「floatの2成分ベクトル」に変換できません'

githubでこの問題を読んだ後、次の例を試しました。http: //jsfiddle.net/VJca4/からこれらのエラーが発生します

警告:0:27:拡張機能「GL_OES_standard_derivatives」はサポートされていません
エラー:0:30:「=」:「constmediumpfloat」から「floatの2成分ベクトル」に変換できません
エラー:0:31:「dFdx」:一致するオーバーロードされた関数が見つかりません
エラー:0:31:'=':'constmediumpfloat'から'floatの2成分ベクトル'に変換できません

4

2 に答える 2

9

これもできるはずです:

renderer.context.getExtension('OES_standard_derivatives');
于 2012-06-17T20:43:43.557 に答える
2

エラーが見つかりました。レンダラーのdom要素を使用する必要があります。

var gl = renderer.domElement.getContext('webgl') ||
            renderer.domElement.getContext('experimental-webgl');
gl.getExtension('OES_standard_derivatives');
于 2012-06-17T14:32:02.327 に答える