多重采样似乎不适用于片段着色器生成的片段.在下面的示例中,片段着色器用于生成检查板程序纹理.正方形的外边缘是适当抗锯齿的,但程序纹理的内边缘不是.
片段着色器是否仅针对每个像素进行评估?或者给定像素的每个片段的纹理坐标是否相同?
下面是代码,图像显示其输出(请注意,白色和灰色方块之间的程序边缘不是抗锯齿的,而几何边缘 - 黑色和白色/灰色之间 - 是:)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# imports ####################################################################
import sys
from OpenGL.GLUT import *
from OpenGL.GL import *
# display ####################################################################
def reshape(width, height):
"""window reshape callback."""
glViewport(0, 0, width, height)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
r = float(min(width, height))
w, h = 2*width/r, 2*height/r
glOrtho(-w, w, -h, h, -1, 1)
glMatrixMode(GL_MODELVIEW)
glLoadIdentity()
glRotate(45, 0, 0, 1)
def display():
"""window redisplay callback."""
glClear(GL_COLOR_BUFFER_BIT)
glBegin(GL_TRIANGLE_STRIP)
for x in [-1, 1]:
for y in …Run Code Online (Sandbox Code Playgroud)