有了这个功能,我可以在Android系统的OpenGL ES 1.0中创建一个球体:
public Ball(GL10 gl, float radius)
{
ByteBuffer bb = ByteBuffer.allocateDirect(40000);
bb.order(ByteOrder.nativeOrder());
sphereVertex = bb.asFloatBuffer();
points = build();
}
private int build()
{
double dTheta = STEP * Math.PI / 180;
double dPhi = dTheta;
int points = 0;
for(double phi = -(Math.PI/2); phi <= Math.PI/2; phi+=dPhi)
{
for(double theta = 0.0; theta <= (Math.PI * 2); theta+=dTheta)
{
sphereVertex.put((float) (raduis * Math.sin(phi) * Math.cos(theta)));
sphereVertex.put((float) (raduis * Math.sin(phi) * Math.sin(theta)));
sphereVertex.put((float) (raduis * Math.cos(phi)));
points++;
}
}
sphereVertex.position(0);
return points;
}
public void draw()
{
texture.bind();
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, sphereVertex);
gl.glDrawArrays(GL10.GL_TRIANGLE_FAN, 0, points);
gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
}
我现在的问题是,我想在球体上使用这个纹理,但是只创建了一个黑色的球(当然,因为右上角是黑色的)。我使用这个纹理坐标是因为我想使用整个纹理:
0|0 0|1 1|1 1|0
要正确使用纹理,我需要做什么?
只需下载并使用代码,您就可以用所需的图像更改图像
https://docs.google.com/file/d/0By5c3cOVKbFpVTFpUlFlV2pGVWM/edit?pli=1
您需要为球体上与您提供的纹理匹配的每个点设置UV(纹理线)。以下是有关UV贴图的一些信息的链接。
UV映射球体
我有一个OpenGL程序,我想用地球的位图对球体进行纹理处理。我在搅拌器中准备了网格,并将其导出到OBJ文件。该程序加载适当的网格数据(顶点、uv和法线)和正确的位图-我已经用骨骼位图检查了它的纹理立方体。 我的程序是纹理球体,但不正确(或以我不期望的方式)。这个球体的每个三角形都包括这个位图的变形副本。我检查了位图,uv似乎没问题。我尝试了多种尺寸的位图(2的幂,2的倍数等)。 纹理是这样的:
我已经创建了两个球体,目前正在尝试对它们进行纹理处理。然而,纹理坐标似乎有点偏离。 纹理应用于两个球体的结果(你可以忽略不在正方形周围的黑线,这只是相机-是的,这是AR应用程序): 现在,我使用perl脚本导出球体,我发现它将obj文件转换为顶点和纹理代码列表OBJ2OPENGL。obj文件已转换为2160顶点。 当我渲染球体时:
我能够使用javascript和three.js库创建一个球体。然而,我有一个图像,我想覆盖在球体的顶部,每当我这样做,球体变成一个黑色的球体,没有图像投射在上面。下面是我如何实现它:var渲染器=new THREE. WebGL渲染器();renderer.set大小(window.inner宽度,window.inner高度);document.body.append(renderer.dom
我一直致力于渲染一个球体使用三角形条在OpenGL ES 2.0为Android。我有一个问题,当球体旋转时,它似乎自己重叠了。 我创建顶点列表的代码是 我的渲染代码将多个查看矩阵和透视矩阵相乘,然后执行以下操作: 显然,渲染过程中涉及到很多不同的部分。然而,我认为问题在于顶点生成。
我想画一个球体并对它进行纹理,我用三角形来画它,当我试图对它进行纹理时,有些三角形没有被覆盖 我用这个函数来生成坐标
我正试图在Android上创建一个360视频球体(就像纸板上的那个)。我在OpenGL ES1中绘制了一个球体,并用一张照片完成了这项工作。0,然后将纹理附加到它。之后,我可以使用传感器值来旋转球体。 然而,我不知道如何将图片更改为视频。我尝试过使用texSubImage2D()逐帧渲染,但速度非常慢。我的视频可能会达到4k左右的密度,因为我需要一个好的质量,即使只显示了一小部分。 我读过一些关于