首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓OpenGL ES中逐顶点数据交错偏移量

安卓OpenGL ES中逐顶点数据交错偏移量
EN

Stack Overflow用户
提问于 2010-09-26 01:00:24
回答 1查看 1.7K关注 0票数 6

在Android上的OpenGL ES中是否可以使用逐顶点数据交错?

我无法获得normalcolor成员的正确偏移量指针。

在C++中,我会这样做:

代码语言:javascript
复制
struct ColoredVertexData3D{
    Vertex3D    vertex;
    Vector3D    normal;
    ColorRGBA   color;
};

const ColoredVertexData3D vertexData[] =
{
    {
        {0.0f, 0.5f, 0.8f},       // Vertex |
        {0.0f, 0.4f, 0.6f},       // Normal | Vertex 0
        {1.0f, 0.0f, 0.0f, 1.0f}  // Color  |
    },
    {
        {0.8f, 0.0f, 0.5f},       // Vertex |
        {0.6f, 0.0f, 0.4f},       // Normal | Vertex 1
        {1.0f, 0.5f, 0.0f, 1.0f}  // Color  |
    },
    // ... more vertexes.
};

const int stride = sizeof(ColoredVertexData3D);
glVertexPointer(3, GL_FLOAT, stride, &vertexData[0].vertex);
glColorPointer(4, GL_FLOAT, stride, &vertexData[0].color);
glNormalPointer(GL_FLOAT, stride, &vertexData[0].normal);

同样的事情也可以在Java的Android上实现吗?这是我目前得到的:

代码语言:javascript
复制
ByteBuffer vertexData = ...;
int stride = 40;

gl.glVertexPointer(3, GL10.GL_FLOAT, stride, vertexData);

// This obviously doesn't work. ------------v
gl.glColorPointer(4, GL10.GL_FLOAT, stride, &vertexData[0].color);
gl.glNormalPointer(GL10.GL_FLOAT, stride, &vertexData[0].normal);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-20 23:58:46

基本思想是在ByteBuffer上调用duplicate(),这将创建一个新的ByteBuffer,它共享底层存储,但允许您从不同的位置开始。

以下是对我有效的方法:

代码语言:javascript
复制
FloatBuffer verticesNormals;
// ... code to initialize verticesNormals ...
// verticesNormals contains 6 floats for each vertex. The first three
// define the position and the next three define the normal.

gl.glVertexPointer(3, gl.GL_FLOAT, 24, verticesNormals);

// Create a buffer that points 3 floats past the beginning.
FloatBuffer normalData = mVerticesNormals.duplicate();
normalData.position(3);

gl.glNormalPointer(gl.GL_FLOAT, 24, normalData);
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3794644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档