- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
嗯,很确定问题很简单,但我没有看到问题,调试器也没有帮助我。无论如何,我正在尝试绘制一架飞机,但我得到的只是黑色。老实说,我不确定它是否在绘制它,但它太小了,看不到。
int index[][3] = {{0,1,4}, {0,3,4}, {1,2,5}, {1,4,5}};
double VertexA[][3] = {{0.0 , 0.0 , -.0415}, {0.5, 0.0, .6543}, {1.0,0,-.0415},
{0.0, 0.5, .093}, {0.5, 0.5, -.070}, {1.0, 0.5 , .093},
{0.0,1.0, -.0415}, {0.5, 1.0, .6543}, {1.0,1.0,-.0415}}
void display() {
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_DOUBLE, 24, VertexA);
glDrawElements(GL_TRIANGLES, 4, GL_UNSIGNED_INT, index);
glDisableClientState(GL_VERTEX_ARRAY);
glutSwapBuffers();
}
void reshape(int w, int h) {
if (w <= h) {
glViewport(0,(h-w)/2, w,w);
}
else {
glViewport((w-h)/2,0,h,h);
}
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(30.0, w/h, 10.0, 100.0);
glMatrixMode(GL_MODELVIEW);
}
这是我使用定义的 VertexA/Index 数组修改的代码片段。我很确定索引/vertexArray 是正确获取的,它是绘图的一部分,是我遇到问题的地方。我猜我滥用了 glDrawElement 或 gluPerspective。老实说,我不确定。我需要一个 ColorArray 吗?如果我一开始不定义颜色,它应该是白色的,对吗?任何问题或者你想要更多的片段都可以问,但我觉得问题在片段中。
最佳答案
您的对象完全不在视锥体范围内。您正在使用单位矩阵作为 ModelView,并将 gluPrespective
与 near=10
和 far=100
作为投影。结果, View 体积将从 z=-10 到 z=-100,而您的对象位于 z=-0.1 到 z=0.1,因此它们被近平面裁剪。
关于c - opengl glDrawElements 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36388899/
我上周开始使用 OpenGL 3.3+,在尝试让索引绘图工作时遇到了这个问题。现在,我只是尝试使用 IBO 绘制一个三角形。 索引缓冲区和indexHandle: int[] tIndices = {
我的问题是我可以在不使用着色器的情况下使用 glDrawElements 吗? 我像下面这样生成我的 vbo: glGenBuffers(1, &vertexId_); glBindB
我正在尝试 Vertex Arrays 的东西,但由于某种原因 glDrawElements 命令没有为我绘制任何东西。我可以使用 glBegin/glEnd 和 glDrawElements 进行绘
在 iPhone 3G(设备,而不是模拟器)上使用 OpenGLES 1.1,我可以享受正常的绘图乐趣。但在应用程序运行期间的某些时候,我会遇到巨大的内存峰值,经过大量使用仪器的挖掘后,我发现是 gl
我对 VBO、VAO 和指数还很陌生。我能够渲染单个立方体,现在我尝试渲染一大块立方体。我的目标是慢慢制作一个体素引擎。我的 block 类有问题。由于某种原因它不显示任何内容。任何人都可以快速浏览一
我需要帮助来了解它们之间的权衡。 在我看来,glDrawElements() 需要获取“实时”索引数据作为参数。 另一方面,如果我使用 VAO,那么在启动期间我会缓冲数据,驱动程序可能会决定将其放在
如果我调用 glDrawElements 并将绘制目标作为后台缓冲区,然后调用 glReadPixels,是否可以保证我会读取绘制的内容? 换句话说,glDrawElements 是阻塞调用吗? 注意
我正在尝试将模型加载到我的项目中,但在 glDrawElements 处出现异常。我读取模型文件 (.nfg),并将顶点和索引保留到 vector 中,然后使用顶点缓冲区对象来绑定(bind)我的模型
我正在使用 c/c++ (NDK) for android 在 opengl es 2.0 中编程。我正在使用 GLM 库! 到目前为止,我可以使用 glDrawArrays 在黑色背景上绘制一个白色
我让 glDrawElements 始终如一地工作,最初使用一个简单的盒子,然后使用由大量顶点组成的更复杂的形状。然后它就停止绘制网格。我已经将代码恢复到最基本的状态,只需绘制 2 个三角形来制作一个
我使用以下代码创建缓冲区: //generate buffers glGenVertexArrays(1, &VAO); //glGenBuffers(1, &EBO); glGenBuffers(1
首先,我使用 OpenGL 渲染点云。 // The object pointCloud wraps some raw data in different buffers. // At this po
有两个 OpenGL 文档页面对 glDrawElements 函数的“索引”参数的描述略有不同。在 www.opengl.org/sdk/docs/man4/上它说: indices Spe
我正在使用 glDrawElements 绘制索引网格: voi d init() { //allocate vbo, copy actual data (m_indices,m_vertic
我读到 glDrawElements 的第一个参数是模式: http://www.opengl.org/sdk/docs/man3/xhtml/glDrawElements.xml Symbolic
我不明白这是怎么回事!我有这个网格加载器,当我用它加载小网格时,我的程序工作正常,绘制了整个网格。但是现在我用一个大网格(超过 100,000 个顶点)测试了程序,它只绘制了它的一小部分!是不是我的显
我正在尝试将一些顶点渲染到 Open GL ES 窗口。我的程序在执行 GLDrawElements 命令时不断崩溃。我正在尝试为 GLFloat 类型的顶点“bindPosition”、“bindN
给定一组面,每个面包含顶点数和指向 vector std::Vector 中的顶点的指针,我想遍历所有面并使用 glDrawElements 绘制每个面: 编辑:我刚刚注意到我忘了激活 vertex_
在我的 OpenGL 程序中,我有两个着色器。一个渲染纹理,另一个渲染纯色。编译和链接着色器后,我根据天气启用纹理坐标顶点属性数组,着色器是否包含该属性。 //This code is called
我对此感到很沮丧。我正在尝试使用 Vertex Buffer Objects 渲染立方体并且我正在学习 Projection 所以我正在尝试制作立方体的框架。但是,此代码不起作用。当我在 Code::
我是一名优秀的程序员,十分优秀!