草庐IT

Antialiasing

全部标签

java - 如何在 Java 中绘制平滑的缓冲图像?

我们正在用Java制作一个简单的2D游戏。每次我们绘制图像时,它们都是锯齿状的,看起来很糟糕。我们可以对文本进行抗锯齿处理,但是我们的图像是非vector格式的,所以我们不能对它们应用抗锯齿处理。我们想要平滑我们的.JPG图像(它们是在Photoshop中以最高质量创建的):有没有办法以编程方式实现这一点?BufferedImagegoplaybut=ImageIO.read(getClass().getResourceAsStream("/gameover/goplaybut.jpg"));g.drawImage();Graphics2Dg2d=(Graphics2D)g;g2d.s

Java2D 图形抗锯齿

我是Java的新手,正在尝试使用Java2DGraphics创建图像。但是输出是抗锯齿的。我尝试了很多方法来纠正它,但没有用。字符变得扭曲或参差不齐。publicBufferedImagecreateNameOnButton(Stringlabel){intmessageWidth=0;Fontfont=newFont("Arial",Font.PLAIN,11);BufferedImagebi=newBufferedImage(10,10,BufferedImage.TYPE_INT_RGB);Graphics2Dg2d=(Graphics2D)bi.getGraphics();g2

java - Java 可以使用子像素 AA 渲染半透明文本吗?

我发现虽然在Java中渲染不透明文本(最新版本6u23)使用亚像素AA就很好,但渲染半透明文本则不然。亚像素抗锯齿:仅颜色从0xFFFFFFFF更改为0xBFFFFFFF的相同文本:如您所见,半透明文本显然是标准的AA,而不是干净的半透明渲染,它具有90年代可怕的“蜘蛛侠”外观。这是由于一般子像素AA的技术限制,还是Java中的错误,或者只是因为Java甚至不尝试半透明文本,还是我错过了什么?图形初始化dbGraphics=(Graphics2D)dbImage.getGraphics();if(dctRoot.properties.getBoolean("Antialias",tru

Java 字体渲染

我一直在尝试增强我用Java编写的GUI系统以使用子像素抗锯齿并且取得了成功,除了两个剩余的异常。这是我的otherquestionfromafewweeksago的后续.第一个问题是将渲染提示KEY_ANTIALIASING设置为VALUE_ANTIALIAS_ON会导致KEY_TEXT_ANTIALIASING设置为LCD(子像素)时被忽略A值。任何人都可以阐明这一点吗?目前,我被迫在渲染文本之前VALUE_ANTIALIAS_OFF并在渲染文本之后将其重新打开(以便其他绘画,如圆圈等,是AA'd)。下面的独立测试程序证明了这个问题。第二个问题是我找不到查询AA的底层O/S设置的方

c++ - 没有 OpenGL 的 SDL 抗锯齿?

我正在尝试使用SDL在C++中制作游戏。我想在图形中实现抗锯齿功能,但我在网上搜索到的有关该主题的所有内容都建议使用外部库或也涉及OpenGL的解决方案。有没有办法在没有OpenGL的情况下进行抗锯齿处理(例如事先修改图形,或者可能是我没有找到的某些功能)?如果不是,将用SDL编写的游戏转换为也使用OpenGL有多难(我以前没有使用过OpenGL...)? 最佳答案 一个老问题,但我有同样的问题。让我解决未回答的部分。"Isthereawaytodoanti-aliaswithoutOpenGL(suchasmodifyingthe

c++ - Xiaolin Wu 圆算法渲染圆里面有洞

我从这里实现了XiaolinWu圆算法:https://create.stephan-brumme.com/antialiased-circle/在C++中:floatradiusX=endRadius;floatradiusY=endRadius;floatradiusX2=radiusX*radiusX;floatradiusY2=radiusY*radiusY;floatmaxTransparency=127;floatquarter=roundf(radiusX2/sqrtf(radiusX2+radiusY2));for(float_x=0;_xx,y为圆心坐标。在我看来它看

c++ - 如何使用 CheckMultisampleQualityLevels 并启用多重采样

我正在学习directx11并尝试设置多重采样。出于某种原因,互联网上的每个教程都禁用多重采样,并且从不讨论如何启用它。首先:我四处搜索,找不到任何有关如何使用CheckMultisampleQualityLevels的示例。看起来您需要创建一个设备,调用该函数,找出可用级别,然后销毁该设备并使用您想要的设置创建一个新设备。这是正确的方法吗?或者有更好的方法吗?其次,如何启用多重采样?由于我不确定如何让CheckMultisampleQualityLevels工作,我尝试为DXGI_SWAP_CHAIN_DESC.SampleDesc.Count和DXGI_SWAP_CHAIN_DES

c++ - 抗锯齿算法?

我有我正在创建的纹理并且想要对它们进行抗锯齿处理。我可以访问每个像素的颜色,鉴于此我如何对整个纹理进行抗锯齿处理?谢谢 最佳答案 对不起,但真正的抗锯齿并不在于像上面评论的那样从邻居那里获取平均颜色。这无疑会柔化边缘,但它不是抗锯齿而是模糊。真正的抗锯齿无法在位图上正确完成,因为它必须在绘制时进行计算,以判断哪些像素和/或边缘必须“软化”,哪些不能。例如:假设您画了一条水平线,它的厚度必须恰好为1个像素(例如“高”),并且必须恰好放置在一个整数屏幕行坐标上。显然,您会希望它不柔和,适当的抗锯齿算法会做到这一点,将您的线条画成一排完美

c++ - OpenGL GL_POLYGON_SMOOTH 二维抗锯齿从四边形创建三边形

更新:我在安装NVIDIAControlPanel时找到了它,如果我卸载它它会正常工作。当您在OpenGL中旋转四边形时,边缘会变得参差不齐。如果我调用glEnable(GL_POLYGON_SMOOTH),边缘会变得平滑,但OpenGL然后会在我的所有图像中绘制一条白色对角线,就好像它正在创建我的四边形的三元组一样。它是这样的:有没有办法禁用那条线,或者我可以用另一种简单的方法获得抗锯齿功能吗?我尝试了GL_MULTISAMPLE,但没有任何反应。在我的代码中还有:glShadeModel(GL_SMOOTH);glMatrixMode(GL_PROJECTION);glLoadId

ios - OpenGL ES 再次抗锯齿

我用这样的图元绘制3d场景:glLoadIdentity();glColor4f(model[i][8],model[i][9],model[i][10],1.0);glTranslatef(current_x,current_y,current_z);glVertexPointer(3,GL_FLOAT,0,&squareVertices[0]);glEnableClientState(GL_VERTEX_ARRAY);glShadeModel(GL_FLAT);glDrawArrays(GL_TRIANGLE_STRIP,0,4);当然没有抗锯齿。我已经阅读并尝试了很多建议(包括s