osx-lion - GLSL 1.2 几何着色器在 vec4 中变化是非法的?

标签 osx-lion glsl

我试图弄清楚我的显卡驱动程序或代码中是否有问题。以下行为是否违法?

#version 120 
#extension GL_EXT_gpu_shader4 : enable
#extension GL_EXT_geometry_shader4 : enable

varying in vec4 something; // <------- this

void main() 
{ 
    for(int i = 0; i < gl_VerticesIn; ++i) 
    { 

        gl_Position = gl_PositionIn[i]; 

        EmitVertex(); 
    }
    EndPrimitive();
}

它在我的 OSX 10.7 (NVIDIA 9400m/9600m) 笔记本电脑上崩溃,我很好奇 A) 这在 GLSL 1.2 中实际上是非法的还是这只是我的实现?是否有某种标志可以将 vec4 传递给 GLSL 1.2 中的几何着色器?

郑重声明:是的,我知道这在 1.3+ 中要容易得多,但目前我仍坚持使用 1.2。谢谢!

最佳答案

几何着色器的输入是数组,而不是单个值。这是因为 GS 接受一个图元,它可以由多个顶点组成。就像 gl_PositionIn 是一个数组一样,您的用户定义输入也应该是一个数组。

关于osx-lion - GLSL 1.2 几何着色器在 vec4 中变化是非法的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8732022/

相关文章:

cocoa - 非基于文档的 Cocoa 应用程序中的多个窗口

cocoa - 如何实现狮子风格的滑动和滑走动画

java - 骨骼动画: bind pose

c++ - 奇怪的体素锥体追踪结果

osx-lion - 如何使用加速框架进行矩阵求逆运算?

cocoa - NSPoover 自定义动画

postgresql - 为什么我在 Mac OS Lion 中遇到 postgres 无法连接到服务器错误?

opengl - 绘制抗锯齿粗镶嵌曲线

c++ - 帧缓冲区纹理显示为白色(片段着色器不影响它)

opengl - 在 GLSL 中的图像单元上设置只读/只写对性能的影响