因为项目需要,需要做个画板的功能,调查了半天,发现 DrawNode 加上 RenderTexture 基本上可以实现我的功能,但有如下问题:
- 不管是DrawNode 还是 DrawPrimitives ,锯齿都非常严重,根本没法入眼,网上找了半天资料,都说是open gl 默认就是这样,有方法可以抗锯齿,都是类似于以下方法,
glEnable(GL_POINT_SMOOTH);
glEnable(GL_LINE_SMOOTH);
我试了下,对点好像有点效果,但画线,没有任何作用(项目主要用于ios平台,android 平台后续会考虑),网上搜了半天,搜到以下连接,
http://cocokele.com/cocos2dx-anti-aliasing/?replytocom=12 ,真是非常感谢此位老大,按照他的方法,我修改cocos2dx 源码后,锯齿好了很多,起了作用。
测试代码如下:
auto p2 = DrawNode::create();
this ->addChild(p2,4);
p2->drawSegment(Vec2(0,0), Vec2(500,500), 10, Color4F::BLACK);
本来以为解决了问题,正在高兴之余,发现一个问题,我加上RenderTexture 后,锯齿又回来了,我测试代码如下:
_target = RenderTexture::create(s.width, s.height, Texture2D::PixelFormat::RGBA8888);
_target->begin();
p2->drawSegment(Vec2(0,0), Vec2(500,500), 10, Color4F::BLACK);
p2->visit();
_target->end();
本人是新手,cocos2dx ,才玩了一个月,跪求高手指点,还有关于cocos2dx ,做画图功能,有没有别的方式,官方的demo (RenderTextureSave)中的使用图片的方式画图,好像效果也不怎么好,求指点,谢谢!