我知道如何使用固定管道绘制圆点.但是我需要使用现代OpenGL来做同样的事情.是可能的,还是应该使用点精灵和纹理?
对于感兴趣的人.这是如何使用固定管道完成的:
glEnable(GL_ALPHA_TEST);
glAlphaFunc(GL_NOTEQUAL, 0);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable( GL_POINT_SMOOTH );
glPointSize( 8.0 );
glMatrixMode(GL_PROJECTION);
glLoadMatrixf(myMatrix);
glMatrixMode(GL_MODELVIEW);
glLoadMatrixf(myAnotherMatrix);
glBegin(GL_POINTS);
glColor3f(1,1,1);
glVertex3fv(position);
glEnd();
glDisable(GL_POINT_SMOOTH);
glBlendFunc(GL_NONE, GL_NONE);
glDisable(GL_BLEND);
Run Code Online (Sandbox Code Playgroud) 我在OpenGL ES中绘制行星,并遇到一些有趣的性能问题.一般的问题是:如何最好地在球体上渲染"非常详细"的纹理?
(球体有保证;我对球体特定的优化感兴趣)
基本情况:
限制:
问题:
......目前,我认为唯一可行的想法是:
......但似乎应该有更简单的方法/更好的选择?
我一直在尝试用OpenGL ES创建自己的球体,我按照这里描述的数学运算http://www.math.montana.edu/frankw/ccp/multiworld/multipleIVP/spherical/learn.htm
然而,当我绘制球体(只是顶点)时,只绘制了一半球体.你能指点一下我在下面给出的代码中的确切问题:
public class Sphere {
static private FloatBuffer sphereVertex;
static private FloatBuffer sphereNormal;
static float sphere_parms[]=new float[3];
double mRaduis;
double mStep;
float mVertices[];
private static double DEG = Math.PI/180;
int mPoints;
/**
* The value of step will define the size of each facet as well as the number of facets
*
* @param radius
* @param step
*/
public Sphere( float radius, double step) {
this.mRaduis = radius;
this.mStep = step;
sphereVertex = FloatBuffer.allocate(40000);
mPoints = …Run Code Online (Sandbox Code Playgroud) 我正在使用这个简单的功能在面向相机的3D空间中绘制四边形.现在,我想使用片段着色器来绘制内部球体的错觉.但是,问题是我是OpenGL ES的新手,所以我不知道怎么做?
void draw_sphere(view_t view) {
set_gl_options(COURSE);
glPushMatrix();
{
glTranslatef(view.plyr_pos.x, view.plyr_pos.y, view.plyr_pos.z - 1.9);
#ifdef __APPLE__
#undef glEnableClientState
#undef glDisableClientState
#undef glVertexPointer
#undef glTexCoordPointer
#undef glDrawArrays
static const GLfloat vertices []=
{
0, 0, 0,
1, 0, 0,
1, 1, 0,
0, 1, 0,
0, 0, 0,
1, 1, 0
};
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, vertices);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 6);
glDisableClientState(GL_VERTEX_ARRAY);
#else
#endif
}
glPopMatrix();
}
Run Code Online (Sandbox Code Playgroud)
更准确地说,我想实现这个目标:

可能重复:
在OpenGL ES中绘制球体
我已经浏览了很长一段时间了,还没有找到合适的答案.我开始学习Opengl es 2.0(因为我需要参加大学的项目)并且最近完成了绘制圆圈.WOOPIE!
我看了很多类似的问题,但它要么已经过时,要么我太复杂了,无法掌握.任何人都可以指出我如何在iOS上用opengl ES 2.0绘制实心球体的正确方向?