用OpenGL ES 2.0 / cocos2d 2.0绘制圆圈的最佳方法是什么?

时间:2011-12-15 21:06:24

标签: ios cocos2d-iphone glsl opengl-es-2.0 shader

使用OpenGL ES 2.0绘制圆圈的最佳方法是什么?

我正在使用cocos2d 2.0(目前为测试版)开发iPad / iPhone项目,该项目使用OpenGL ES 2.0和着色器而不是OpenGL ES 1.0。

在我以前的项目中,我使用了SneakyInput包中包含的方便的类ColoredCircleSprite。但是现在使用OpenGL ES 2.0,代码不再起作用了,说实话,我从头开始编写自己的解决方案时有点迷失。我需要一个绘制光滑圆圈的CCSprite子类。 (也许带有一点阴影着色器......)

我应该在顶点着色器中构建一个矩形形状,然后丢弃片段着色器中圆半径外的每个像素吗?或者我应该在顶点着色器内构建圆顶点?

网上有关于此主题的任何好的教程吗?作为OpenGL-n00b,我会感激各种帮助!

1 个答案:

答案 0 :(得分:2)

使用ccDrawCircle

ccDrawCircle(CGPoint center, float radius, float angle, 
             NSUInteger segments, BOOL drawLineToCenter);

增加细分数量以使圆圈更平滑。如果您想从代码中学习,请查看CCDrawingPrimitives.h中ccDrawCircle的实现。