私はこの状態の値に応じてobjを回転または翻訳するのに使うこの頂点シェーダを持っています。私が使用して回転するため OpenGLESのバッファを理解するandroid
private final String vertexShader="" +
"attribute vec4 vertex;" +
"attribute vec4 colors;" +
"varying vec4 vcolors;" +
"uniform int x;" +
"uniform vec4 translate;"+
"uniform mat4 rotate;"+
"void main(){" +
"vec4 app_verte=vertex;" +
"if(x==1){" +
"app_verte=vertex+translate;" +
"}else if(x==2){" +
"app_verte=rotate*app_verte;" +
"}" +
"vcolors=colors;" +
"gl_Position=app_verte;" +
"}";
associeted行列を用いたものを、次のようにフロート[16]配列から構築されていることを、マトリックス:私は本当にハードに理解becouse
|cos(angle),-sin(angle),0,0|
|sin(angle), cos(angle),0,0|
|0 , ,0,0|
は、今私は別の質問があります。変換のタイプを変更したい場合は、xの値を設定する必要があります。今度はコンティニュー変換をするために、私は頂点バッファが同じであると仮定し、変換後にバッファの値が変更されます。今度は同じコーディネイトで変形して描くので、何も起こりません。私は最初に座標バッファを置くだけです。 VRAMと同じバッファを毎回入れずに使用する方法があります。また、変更したバッファを変更したバッファを自分のバッファobjにプルする方法がない場合は、配列を使ってポイントを変換せずにバッファに入れてバッファ?? 私の英語のために申し訳ありません、本当にありがとうございます。
:あなたはタッチイベントを処理し、指を上または下に移動したときに、前方または後方左側ながら、右に移動するならば、それはこのようになりますオブジェクトを回転します。質問を簡略化できますか?頂点シェーダーの各頂点をどのように変換するかを尋ねる場合は、uniform xの代わりにもう1つの属性float xを使用してください – Sung