1

GLSL-Unitを使用して、フラグメント シェーダーを縮小したいだけです。しかし、このコマンドを実行すると:

sunbox$ glsl-compiler --input=/Users/sunbox/Sites/bessa-app/xyz.fshader

次のエラー メッセージが表示されます。

/usr/local/bin/glsl-compiler: line 1: syntax error near unexpected token `b'
/usr/local/bin/glsl-compiler: line 1: `var COMPILED=true,goog=goog||{};goog.global=this;goog.DEBUG=true;goog.LOCALE="en";goog.provide=function(b){if(!COMPILED){if(goog.isProvided_(b))throw Error('Namespace "'+b+'" already declared.');delete goog.implicitNamespaces_[b];for(var f=b;f=f.substring(0,f.lastIndexOf("."));){if(goog.getObjectByName(f))break;goog.implicitNamespaces_[f]=true}}goog.exportPath_(b)};'

では、フラグメント シェーダーを簡単に縮小するにはどうすればよいでしょうか。

4

1 に答える 1

3

私はついにそれを働かせました。:D

興味のある方は、次のファイルが必要です: http://code.google.com/p/glsl-unit/source/browse/bin/template_glsl_compiler.js

...そしてNodeJSがインストールされました。次に、シェーダー ファイルに簡単なコメントを追加します。

//! FRAGMENT

precision lowp float;
uniform sampler2D image;
varying vec2 src_position;
void main() {
    gl_FragColor = texture2D(image, src_position);
}

...そして厄介なことに、.glsl ファイル拡張子を使用する必要があります! :( これで、次のコマンドを実行できます。

sunbox$ node /Volumes/template_glsl_compiler.js  --input=/Volumes/test.glsl --variable_renaming=INTERNAL --output=/Volumes/test.fshader.min

以上です。コンパイルされた出力は次のようになります。

//! VERTEX

//! FRAGMENT
precision lowp float;uniform sampler2D image;varying vec2 a;void main(){gl_FragColor=texture2D(image,a);}

すごくいい!:)

于 2013-11-06T19:39:56.707 に答える