在OpenGL中绘制虚线我可以使用glLineStipple,但是如何在OpenGL ES 1中实现相同的效果?如何使用OpenGL ES 1绘制虚线?
4
A
回答
8
线条可以纹理化,就像三角形一样。启用alpha测试,应用alpha纹理,设置一些纹理坐标并欣赏。
-5
glPushAttrib(GL_ENABLE_BIT);
# glPushAttrib is done to return everything to normal after drawing
glLineStipple(1, 0xAAAA); # [1]
glEnable(GL_LINE_STIPPLE);
glBegin(GL_LINES);
glVertex3f(-.5,.5,-.5);
glVertex3f(.5,.5,-.5);
glEnd();
glPopAttrib();
+0
OpenGL * ES *不支持大部分代码。 – 2011-03-27 05:05:18
+0
这看起来像是复制粘贴的一段代码,也许来自http://3dengine.org/Drawing_dotted_lines_%28OpenGL%29 – najjarammar 2015-01-28 21:48:24
1
其实我已经实现了点线或使用for循环中的虚线,但它仍然让非必要使用它作为一个线型链接的绘制方法,这里是我的宠爱行的代码和虚线下面行: 点线:
(void)drawVerticalDotedInternalGrid{
float a,b;
int drawCount =0;
GLfloat dotedInternalGrid[1296];
for (a = -0.5f; a <= 0.5f; a +=0.5f) {
for (b = -0.875f; b <=0.925f; b += 0.025f)
{
dotedInternalGrid[drawCount] = b;
drawCount++;
dotedInternalGrid[drawCount] = a;
drawCount++;
};
};
glPointSize(1.0f);
glColor4f(0.863f,0.863f,0.863f,0.8f); //line color
glVertexPointer(2, GL_FLOAT, 0, dotedInternalGrid);
glEnableClientState(GL_VERTEX_ARRAY);
glDrawArrays(GL_POINTS, 0, 648);
glDisableClientState(GL_VERTEX_ARRAY);
}
虚线:
(void)drawVerticalDashedInternalGridH{
GLfloat dashedLine[1296];
float a,b;
int i =0;
//-0.4----0.4 // -0.875----0.900
for (a = -0.4f; a <= 0.4f; a +=0.1f) {
for (b =-0.825f; b <=0.950f; b+=0.025f) {
dashedLine[i] = b;
i++;
dashedLine[i] = a;
i++;
};
};
//glLineWidth(1.0f);
glColor4f(0.863f,0.863f,0.863f,1.f); //line color
glVertexPointer(2, GL_FLOAT, 0, dashedLine);
glEnableClientState(GL_VERTEX_ARRAY);
glDrawArrays(GL_LINES, 0, 648);
glDisableClientState(GL_VERTEX_ARRAY);
}
当然你可以看到代码在某个坐标的矩形区域中绘制,麻烦的事情是如何动态地绘制出这个数组的大小以及绘制方法的用途以及绘制的行数。
相关问题
- 1. 用OpenGL ES绘制点线
- 2. 使用OpenGL-ES绘制点划线
- 3. 如何绘制“发光”线在OpenGL ES
- 4. 如何使用OpenGL ES绘制NURB
- 5. OpenGL ES的iPhone - 绘制反锯齿线
- 6. iOS OpenGL ES绘制网格线框
- 7. 使用OpenGL ES 2.0绘制2D图像
- 8. 使用OpenGL ES绘制纹理
- 9. 如何在Linux中绘制OpenGL ES?
- 10. 如何使用cgcontext iOS绘制虚线?
- 11. 如何使用xml绘制粗虚线?
- 12. OpenGL ES:绘制小物体
- 13. Opengl-es绘制纹理
- 14. OpenGL ES不会绘制
- 15. 绘制与OpenGL ES的
- 16. 在iPhone中使用OpenGL ES绘制直线?
- 17. 如何在OpenGL ES Android中绘制网格线?
- 18. 使用fabric.js绘制虚线
- 19. 使用CGContextSetLineDash绘制虚线
- 20. 绘制虚线
- 21. WinAPI - 如何绘制虚线?
- 22. 如何绘制虚线?
- 23. 如何在iPhone OS上使用OpenGL ES绘制一系列线条?
- 24. 如何使用OpenGL ES 2将纹理绘制为四边形?
- 25. OpenGL-ES:如何使用不同的着色器绘制对象
- 26. 透明点虚线OpenGL ES 2.0
- 27. 用OpenGL ES绘制地球仪
- 28. 混合OpenGL ES 1和OpenGL ES 2
- 29. OpenGL ES 2.0绘制一圈刻度线/线
- 30. 如何使用着色器来绘制用GL_LINES和OpenGL ES 2.0绘制的线条颜色
你可以提供一些相同的代码 – Mayank 2014-04-21 05:12:52