opengl - 在 glsl 中创建 2d 阴影的更快方法?

标签 opengl 2d glsl shadow

我正在尝试使用 glsl 创建 2d 阴影滤镜。

我现在要做的是首先将像素渲染为纹理,然后对其应用高斯模糊滤镜,然后使用着色颜色将其绘制到主帧缓冲区,然后在顶部绘制实际像素。

结果相当不错,但性能相当低。那么有没有一种更简单的方法来使用 glsl 创建阴影,因为阴影不需要实际像素的所有颜色分量,只需要 alpha 值?

最佳答案

如果形状不变,您可以预先计算阴影。如果没有,那么只需提高模糊着色器的效率即可。网上有很多这方面的信息,比如Rideout's article ( archived ) 或 ivankuckir's article (archived)。

诀窍是最大限度地减少Texture2D 调用量并使用线性插值等内置功能。

另请参阅 Fastest Gaussian blur implementation

关于opengl - 在 glsl 中创建 2d 阴影的更快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37407561/

相关文章:

javascript - 将带有缓冲区的着色器程序从 shadertoy 移植到 three.js

c++ - OpenGL - 如果是 alpha,不要写深度

java - JOGL 中 glDrawPixels() 的数据格式

Java/Android 子弹对象流程

c++ - 指向二维数组和分配的指针

android - 如何在 android Activity 中绘制温度计?

python - 如何创建一个 numpy 数组来描述三角形的顶点?

objective-c - Mac OSX 绘图应用程序的一般方法(使用 obj-c)

opengl - 终止 glfw 并关闭任何打开的窗口是否会破坏使用所述窗口的任何 opengl 上下文?

c++ - 如何将文件同时作为字符串和代码包含在 cpp 中?