0
我試圖用OpenGL畫線,從屏幕的一邊到另一邊(在Android手機上)。它應該通過讀取加速度傳感器來上下移動。 我的問題是,線只在終點上下移動。在中間它保持在0,0(屏幕中間)。因此,行有信五OpenGL的線在屏幕中間相遇而不是直線的
這裏是我的代碼的形式:
@Override
public void onDrawFrame(GL10 gl) {
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
gl.glClearColor(0f, 0f, 0f, 0f);
float vertices[] = {
0-width/2,-accel,0,
width/2,-accel,0
};
ByteBuffer vbb = ByteBuffer.allocateDirect(vertices.length * 4);
vbb.order(ByteOrder.nativeOrder());
FloatBuffer vertexBuffer = vbb.asFloatBuffer();
vertexBuffer.put(vertices);
vertexBuffer.position(0);
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer);
short[] indices = { 0, 1, 2, 0, 2, 3 };
ByteBuffer ibb = ByteBuffer.allocateDirect(indices.length * 2);
ibb.order(ByteOrder.nativeOrder());
ShortBuffer indexBuffer = ibb.asShortBuffer();
indexBuffer.put(indices);
indexBuffer.position(0);
gl.glFrontFace(GL10.GL_CCW);
gl.glEnable(GL10.GL_CULL_FACE);
gl.glCullFace(GL10.GL_BACK);
gl.glDrawElements(GL10.GL_LINE_LOOP, indices.length,
GL10.GL_UNSIGNED_SHORT, ibb);
gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
}
感謝您的幫助! – Ferdinand
我會盡力解決這個問題,聽起來合乎邏輯! – Ferdinand