提示コードですがアンチエイリアスが有効にならないのですがこれはなぜなのでしょうか?glEnable();関数を使ってアンチエイリアスを有効にしているはずなのですが何をし忘れているのでしょうか?
参考サイト: http://wisdom.sakura.ne.jp/system/opengl/gl18.html
参考サイト: https://w.atwiki.jp/opengl/pages/77.html
cpp
1 // ##################################### 円 描画 ##################################### 2 void DrawCircle(glm::vec2 pos,unsigned short num,unsigned short width,GLdouble r, glm::vec4 color) 3 { 4 5 6///////////////////////////////////////////////////////////////////////////// 7 glEnable(GL_POLYGON_SMOOTH); 8 glEnable(GL_BLEND); 9 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 10 glHint(GL_POLYGON_SMOOTH_HINT, GL_DONT_CARE); 11//////////////////////////////////////////////////////////////////////////// 12 13 float dx = 1.0f / (FrameWork::getWindowContext()->getSize().x / 2); 14 float dy = 1.0f / (FrameWork::getWindowContext()->getSize().y / 2); 15 16 glColor4f(color.x * RGBA_COLOR, color.y * RGBA_COLOR, color.z * RGBA_COLOR, color.w * RGBA_COLOR); 17 18 glm::vec2 w; 19 w.x = width * dx; 20 w.y = width * dy; 21 22 pos = getWindowPosition(pos); 23 24 glMatrixMode(GL_MODELVIEW); 25 glPushMatrix(); 26 27 glTranslated(pos.x + (w.x / 2.0f), pos.y - (w.y / 2.0f), 0); 28 glRotated(FrameWork::GetAngle(r), 0, 0, 1); 29 30 glBegin(GL_TRIANGLE_FAN); 31 32 float f = (PI * 2.0f) / (float)num; 33 float ff = 0; 34 for (unsigned short i = 0; i < num; i++) 35 { 36 float x = cos(ff) * w.x; 37 float y = sin(ff) * w.y; 38 39 glVertex2f(x,y); 40 41 ff += f; 42 } 43 44 glEnd(); 45 glFinish(); 46 glPopMatrix(); 47/////////////////////////////////////////////////////////// 48 glDisable(GL_POLYGON_SMOOTH); 49 glDisable(GL_BLEND); 50/////////////////////////////////////////////////////////// 51 52 } 53
あなたの回答
tips
プレビュー