Я рисую треугольник в OpenGL, как:Преобразование пиксельных координат для нормированных координат во время жеребьевки в OpenGL 3.0
MyGLRenderer()
{
fSampleVertices = ByteBuffer.allocateDirect(fSampleVerticesData.length * 4)
.order (ByteOrder.nativeOrder()).asFloatBuffer();
fSampleVertices.put(fSampleVerticesData).position (0);
Log.d(TAG, "MyGLRender()");
}
private FloatBuffer fSampleVertices;
private final float[] fSampleVerticesData =
{ .8f, .8f, 0.0f, -.8f, .8f, 0.0f, -.8f, -.8f, 0.0f };
public void onDrawFrame(GL10 unused)
{
GLES30.glViewport (0, 0, mWidth, mHeight);
GLES30.glClear (GLES30.GL_COLOR_BUFFER_BIT);
GLES30.glUseProgram (dProgramObject1);
GLES30.glVertexAttribPointer (0, 3, GLES30.GL_FLOAT, false, 0, fSampleVertices);
GLES30.glEnableVertexAttribArray (0);
GLES30.glDrawArrays(GLES30.GL_TRIANGLES, 0, 3);
//Log.d(TAG, "onDrawFrame()");
}
Так, так как я экспериментировал с координатами не принимают чтобы выяснить, что видимая область экрана находится между -1,1. Итак, треугольник занимает 80% экрана. Также я определил, что размеры пикселей моего GLSurfaceView имеют ширину 2560 и 1600 дюймов.
Итак дан треугольник с этими пикселями на основе координат (fBoardOuter):
1112.0f
800.0f
0.0f
-1280.0f
800.0f
0.0f
-1280.0f
-800.0f
0.0f
я должен либо преобразовать эти пиксельные координаты к чему-то между -1,1 и выяснить путь к имеют gl конвертировать эти координаты в момент их рисования? Поскольку я очень новичок в OpenGL, я ищу некоторые рекомендации для этого?
Моих вершинные шейдеры, как:
String sVertexShader1 =
"#version 300 es \n"
+ "in vec4 vPosition; \n"
+ "void main() \n"
+ "{ \n"
+ " gl_Position = vPosition; \n"
+ "} \n";
Я бы быть правильно, то сказать, что через пиксели системы на основе можно было бы назвать мир координату? То, что я пытаюсь сделать прямо сейчас, - это всего лишь 2D-чертеж для настольной игры.
Я обнаружил, что Android имеет эту функцию:
orthoM(float[] m, int mOffset, float left, float right, float bottom, float top, float near, float far)
Однако нет ничего в документации, я прочитал, что до сих пор объяснить использование матрицы, как поплавок [] с координатами пикселей могут быть преобразованы в нормализованные координаты с этой матрицей в GLES30.
Я также нашел документацию здесь:
http://developer.android.com/guide/topics/graphics/opengl.html
Основе документацию я попытался создать пример:
В Pastebin например fSampleVertices я думал было бы намного меньше и в центре экрана, но это не тот почти весь экран, и fBoardOuter просто показывает мне черный экран, если я попытаюсь вставить его в gl DrawArray.