GLKit で OpenGL を使用して、アプリケーションのビューにいくつかのオブジェクトを描画しています。描画しているオブジェクトの 1 つにストロークを追加しようとしていますが、それを行う良い方法がわかりません。テクスチャを使用するか、オブジェクト上に線を描画することでストロークを追加することもできますが、それらは良い/スマートな方法とは思えません。ストロークでオブジェクトを描く通常の方法は何ですか?
これは私が現在使用しているコードです(modelViewMatrix
他vertices
の場所で定義されています):
GLKBaseEffect *effect = [[GLKBaseEffect alloc] init];
effect.useConstantColor = YES;
effect.constantColor = kPlayerColor;
effect.transform.projectionMatrix = modelViewMatrix;
[effect prepareToDraw];
glEnableVertexAttribArray(GLKVertexAttribPosition);
glVertexAttribPointer(GLKVertexAttribPosition, 2, GL_FLOAT, GL_FALSE, 0, vertices);
glDrawArrays(GL_TRIANGLE_STRIP, 0, sizeof(vertices) / sizeof(vertices[0]));
glDisableVertexAttribArray(GLKVertexAttribPosition);
次の図では、現在描いているもの (左側) と描きたいもの (右側) を確認できます。
したがって、基本的には、オブジェクトにストローク (この場合は黒) を追加するだけです。すべてのオブジェクトがこの例のように単純であるとは限りません。
私の質問を要約すると、 OpenGL を使用してストロークでオブジェクトを描画するにはどうすればよいですか?