抗锯齿GLSL冒名顶替者

抗锯齿GLSL冒名顶替者,glsl,antialiasing,Glsl,Antialiasing,如果使用基于视点替用特效的光线跟踪方法绘制球体,如下面的示例所述 通常,您会绘制一个四边形,然后使用“放弃”跳过距四边形中心的距离大于球体半径的像素 启用抗锯齿时,GLSL将对绘制的基本体的边界(在本例中为四边形)进行抗锯齿,但不会对绘制的像素和丢弃的像素之间的边界进行抗锯齿 我附上了两个屏幕截图,显示球体及其边界的放大图。除了位于四边形边框上的最上面的像素外,显然球体边框没有进行抗锯齿处理 有什么技巧可以让冒名顶替者球体有一个漂亮的抗锯齿边框吗 致以最崇高的敬意 Mads不只是丢弃像素,

如果使用基于视点替用特效的光线跟踪方法绘制球体,如下面的示例所述

通常,您会绘制一个四边形,然后使用“放弃”跳过距四边形中心的距离大于球体半径的像素

启用抗锯齿时,GLSL将对绘制的基本体的边界(在本例中为四边形)进行抗锯齿,但不会对绘制的像素和丢弃的像素之间的边界进行抗锯齿

我附上了两个屏幕截图,显示球体及其边界的放大图。除了位于四边形边框上的最上面的像素外,显然球体边框没有进行抗锯齿处理

有什么技巧可以让冒名顶替者球体有一个漂亮的抗锯齿边框吗

致以最崇高的敬意


Mads

不只是丢弃像素,而是将球体设置为具有内半径和外半径。 内半径内的所有内容都是完全不透明的,外半径外的所有内容都将被丢弃,介于两者之间的任何内容都将在0和1 alpha值之间进行线性插值

float alpha = (position - inner) / (outer - inner);

膝反射的反应是为自己进行多采样:渲染到一个纹理,该纹理是实际输出的四倍,然后确保生成mip贴图并从该纹理渲染回屏幕


或者直接在着色器中这样做,让OpenGL继续担心几何体边缘:每像素采样四条光线,并对它们进行平均

你也会想要混合这个做任何事情。坦白地说,您可能只需要在着色器本身中实现这一点<代码>输出=混合(,alpha)。谢谢。问题是我通常有几个球体,所以我需要和当前的碎片颜色混合。所以只有当我只有一个球体的时候,混合黑色才会起作用。相反,我尝试了混合,但在这种情况下,我需要将所有球体相对于其视图空间Z坐标向后拉。嗯……谢谢。我试试看