opengl - 接口块数组可以从顶点着色器转移到片段着色器吗
问题描述
我想将一个结构数组从顶点着色器传递到片段着色器,所以我尝试使用 glsl 接口块来执行此操作。
( 我曾经在片段着色器中直接定义结构数组以避免这种情况,但不幸的是由于某些原因我现在必须这样做 )
OpenGL 版本:3.3
在顶点着色器中,我使用了:
out PointLightBlock{
vec3 position;
vec3 ambient;
vec3 diffuse;
vec3 specular;
float constant;
float linear;
float quadratic;
vec3 flux;
}pointLightBlock[MAX];
在片段着色器中,我使用了:
in PointLightBlock{
vec3 position;
vec3 ambient;
vec3 diffuse;
vec3 specular;
float constant;
float linear;
float quadratic;
vec3 flux;
}pointLightBlock[MAX]; // MAX is a constant defined both in vertex shader and fragment shader.
但它不起作用。
解决方案
推荐阅读
- xcode - MTKView,为什么从 CAMetalLayer 到截图的颜色不同?
- tensorflow2.0 - 访问 TF2 keras 张量图的中间张量
- sql - 相互引用的列
- c# - 如何在c#中比较两个字典的元组值
- mysql - microsoft.ace.oledb.12.0 提供程序未注册 windows 8.1 office 2016 vb .net
- haskell - 传递类型以在haskell中解码json
- python - conda uninstall pandas 删除的内容多于 conda install pandas 添加的内容
- java - 如何四舍五入到合理的值java
- ios - Swift - SKSprite Kit - 从 FileBrowser Closure 更改 Gamescene 变量
- r - 使用 sprintf() 简洁