[英]OpenGL shader effect
我需要一个高效的openGL管道来实现线段形状的特定外观。
我的目标是:
( https://www.shadertoy.com/view/XdX3WN )
这是我的程序中已有的原始元素(螺旋形):
在这张图片的gl_FragColor内部,我正在输出片段到相机的距离。 用于此的管道是通常的VBO-> VAO->顶点着色器->片段着色器路径。
shadertoy着色器计算到屏幕每个片段中3个点的距离,并据此输出颜色。 但是在我的示例中,我需要相反的方法。 计算周围的碎片的颜色,以获得螺旋的任何碎片(在这种情况下)。 是否有必要使用FBO将场景渲染为纹理,还是有捷径?
对于少量的行
使用覆盖该区域或屏幕的单个四边形作为几何体,并将线点坐标和颜色作为一维纹理或uniform
发送到着色器。 然后,您可以一次在每行所有像素的片段着色器中进行计算。 较高的行数会大大降低速度。
对于更多的行
您需要将几何形状从直线转换为覆盖直线周围环境的矩形:
使用透明度正确地合并线并从距线的垂直距离计算颜色。 从端点到端点的距离添加点(可以用纹理代替着色器完成)。
您的图像表明光线会影响整个屏幕,因此在这种情况下,您需要调用Quad以每行覆盖整个屏幕,而不是矩形覆盖范围
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.