頂点配列として保存したいくつかの輪郭を描画しようとしています。
typedef struct
{
float* vertices;
int nrPoints;
}VertexCurve;
list<VertexCurve> CurveList;
私はopengles2.0の本からいくつかのサンプルを使用しています:http://opengles-book.com/
描画方法は次のようになります。
void Draw ( ESContext *esContext )
{
UserData *userData = (UserData*)esContext->userData;
// Set the viewport
glViewport ( 0, 0, esContext->width, esContext->height );
// Clear the color buffer
glClear ( GL_COLOR_BUFFER_BIT );
// Use the program object
glUseProgram ( userData->programObject );
//glEnable(GL_SAMPLE_ALPHA_TO_COVERAGE);
//glEnable(GL_SAMPLE_COVERAGE);
//glSampleCoverage(0.5, GL_FALSE);
glEnableVertexAttribArray ( 0 );
//glLineWidth(1);
for (list<VertexCurve>::iterator it = CurveList.begin();
it != CurveList.end(); it++)
{
// Load the vertex data
glVertexAttribPointer ( 0, 3, GL_FLOAT, GL_FALSE, 0, (*it).vertices );
glDrawArrays ( GL_LINE_LOOP, 0, (*it).nrPoints );
}
eglSwapBuffers ( esContext->eglDisplay, esContext->eglSurface );
}
また、図面の結果は次のとおりです。
私が必要としているのは、マルチサンプリングで実行できるOpenGL ES 2で、より滑らかな線(アンチエイリアス処理)と私が読んだものを用意することです。この手法に固有のいくつかの方法を使用してみたが、それらの使用法を完全に理解できず、悪い結果が得られたことがコードからわかります。
アンチエイリアス処理された線を取得して輪郭を滑らかにする方法を誰かに説明していただければ、非常にありがたいです。