修改全屏着色器的分辨率

时间:2017-02-09 14:31:16

标签: opengl-es shader

我在着色器玩具网站上找到了一个漂亮的阴影:

https://www.shadertoy.com/view/4scGWj

它将动画激光水平渲染到屏幕的中心:

enter image description here

我想知道的是:

。能够指定激光的尺寸(比如屏幕是800 * 600,我希望激光渲染在80 * 60的区域 - 看起来像激光被缩放)

以及更多:

。能够在给定的START POINT和END POINT(比如100,100到400,400)之间渲染激光

我尝试修改着色器但无法完成,任何建议都将不胜感激,谢谢:)

1 个答案:

答案 0 :(得分:0)

ShaderToy上的这些着色器根据fragCoord计算像素值。如果您使用fragCoord的转换版本,则可以缩放,旋转甚至变形图像。 fragCoord上的矩阵变换为您提供了一种简单的旋转和缩放方式。

但是,这不会给你一个起点或终点。为此,您必须了解着色器的工作原理并自行进行更改。

另一种选择是将激光渲染为单个四边形,而不是全屏四边形,并使用纹理坐标而不是fragCoord