相关疑难解决方法(0)

glDrawArrays vs glDrawElements

好的,所以我仍然在努力让这个工作.我的代码的重要部分是:

def __init__(self, vertices, normals, triangles):
    self.bufferVertices = glGenBuffersARB(1)
    glBindBufferARB(GL_ARRAY_BUFFER_ARB, self.bufferVertices)
    glBufferDataARB(GL_ARRAY_BUFFER_ARB, ADT.arrayByteCount(vertices), ADT.voidDataPointer(vertices), GL_STATIC_DRAW_ARB)
    self.vertices = vertices
    self.bufferNormals = glGenBuffersARB(1)
    glBindBufferARB(GL_ARRAY_BUFFER_ARB, self.bufferNormals)
    glBufferDataARB(GL_ARRAY_BUFFER_ARB, ADT.arrayByteCount(normals), ADT.voidDataPointer(normals), GL_STATIC_DRAW_ARB)
    self.normals = normals
    self.bufferTriangles = glGenBuffersARB(1)

    glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, self.bufferTriangles)
    glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, ADT.arrayByteCount(triangles), ADT.voidDataPointer(triangles), GL_STATIC_DRAW_ARB)

    self.triangles = triangles
    glDisableClientState(GL_VERTEX_ARRAY) **(Not sure if any of the following influence in any way)** 
    glDisableClientState(GL_NORMAL_ARRAY)
    glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0)
    glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0)
Run Code Online (Sandbox Code Playgroud)

从目前为止我读到的关于VBO的内容来看,我认为这里没有任何错误.所以现在我有我的顶点,法线(尚未使用)和三角形索引缓冲区.现在进行实际抽奖:

def draw(self, type):
    glDisableClientState(GL_VERTEX_ARRAY)  
    glDisableClientState(GL_NORMAL_ARRAY)
    glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0)
    glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0)
    **Again above line not sure if they have any use.**        
    glEnableClientState(GL_VERTEX_ARRAY) …
Run Code Online (Sandbox Code Playgroud)

opengl pyopengl

8
推荐指数
1
解决办法
1万
查看次数

无法在android上使用OpenGL ES 2.0绘制三角形

我正在按照developer.android.com上关于使用opengl的教程进行编码,由于我遇到了一些错误,我尝试修复它们,但没有成功。我创建了主要活动,其中当您按下按钮时,意图会打开一个 opengl 活动,该活动显示黑屏,但不显示三角形。你能告诉我问题出在哪里吗?

这是我的 MainActivity 类:

package com.eBook.test;

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;

public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final Button button = (Button)findViewById(R.id.button);
    button.setOnClickListener(new OnClickListener() {
        public void onClick(View v){
            Intent intent = new Intent (MainActivity.this,   OpenGLES20Activity.class);                               
            startActivity(intent);
        }
    });


}

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items …
Run Code Online (Sandbox Code Playgroud)

java geometry android opengl-es draw

3
推荐指数
1
解决办法
3293
查看次数

标签 统计

android ×1

draw ×1

geometry ×1

java ×1

opengl ×1

opengl-es ×1

pyopengl ×1