问题标签 [glsl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
opengl - OpenGL 着色语言向后兼容性
我注意到当 GLSL 版本低于 130 时,我的 GLSL 着色器无法编译。
拥有向后兼容的着色器源最关键的元素是什么?我不想完全向后兼容,但我想了解在 GLSL 低于 130 的 GPU 上运行简单(向前兼容)着色器的主要准则。
当然这个问题可以用预处理器解决
但我可能忽略了很多问题。
c++ - 使用 GLSL 的多个着色器加载多个纹理时出现问题
我试图在同一个场景中使用多个纹理,但无论我尝试什么,都会为每个对象加载相同的纹理。所以这就是我目前正在做的事情,我初始化每个着色器:
SendShaders 中的代码是:
然后在主循环中:
UseShader 中的代码:
void GraphicsObject::UseShader(char textureName []){
}
最后,纹理加载方法:
int GraphicsObject::LoadGLTexture(const char fileName []){
}
AUX_RGBImageRec* GraphicsObject::LoadBMP(const char fileName[], int arraySize){
}
最后初始化的着色器是用于两个对象的纹理。感谢您的宝贵时间,感谢您的任何评论。
opengl - 在 OpenGL 顶点着色器中,gl_Position 不会被同质化
我期待 gl_Position 自动得到均质化(除以 w),但它似乎不起作用..为什么以下会产生不同的结果?
1) void main() { vec4 p; ...省略... gl_Position = projectionMatrix * p; }
2) ... 同上 ... p = projectionMatrix * p; gl_Position = p / pw;
我认为这两者应该产生相同的结果,但似乎并非如此。1 不工作,而 2 按预期工作。这可能是精度问题吗?我错过了什么吗?这让我几乎发疯了..需要帮助。提前谢谢了!
opengl - OpenGL/GLSL 检查着色器是否在英特尔卡上编译良好
我正在使用这段代码来检查我的 glsl 着色器是否编译得很好。
在 nvidia 和 ATI 卡上返回字符串的长度为空,但在 intel 卡上返回字符串“无错误”。
如果真的没有错误,现在找出最好的方法是什么?我应该只检查这个字符串吗?或者这个函数 glGetInfoLogARB 应该返回什么约定?
glsl - OpenGL中的填充动物
我见过 OpenGL 的金属/塑料/水/火/...着色器。
但是,可以在 OpenGL 中渲染类似毛皮的东西,比如毛绒动物/泰迪熊(我知道渲染器/光线追踪器可以做到这一点,但我想在 OpenGL 中做到这一点)。
如果您对此有指向 GLSL 着色器的指针,请指出我正确的方向。
谢谢!
[我猜答案是否定的,因为皮草需要的不仅仅是着色器——它几乎需要动态创建几何体——但我很想被证明是错误的)]
opengl - Fragment Shader Eye-Space 未缩放的深度坐标
我正在尝试在 GLSL 片段着色器中使用与场景中对象的未缩放(从前剪裁平面的真实距离)距离。gl_FragCoord.z 值比我预期的要小。在我的顶点着色器中,我只是使用 ftransform() 来设置 gl_Position。当我预计它们在 15 到 20 之间时,我看到的值在 2 到 3 之间。
如何获得真实的眼空间深度?谢谢!
c++ - 如何将着色器应用于特定对象
我的场景中有几个对象。我只想将我的着色器应用于其中一个。环境:OpenGL 2.0、C++、GLUT、GLEW。
ipad - Does the iPad support GLSL?
Does the iPad support GLSL?
glsl - NPR GLSL 教程
任何人都有关于使用 GLSL 进行非照片真实感渲染的教程列表吗?我看过关于 GLSL 的书籍和 NPR 的书籍,但很少有关于使用 GLSL 进行 NPR 的书籍/教程。(我想用 GLSL 来做,因为我想要实时)。
谢谢!
c - 如何对纹理执行 HSL 变换?
如果我有一个 OpenGL 纹理,并且我需要在渲染纹理之前对其执行 HSL 修改,据我所知,我需要一个着色器。问题是,我对着色器一无所知。有谁知道我需要看哪里?
我想编写一个函数,我可以在其中传递纹理和三个值,度数的色调偏移,以及介于 0 和 2 之间的饱和度和亮度乘数,然后让它调用一个着色器,将这些变换应用于之前的纹理呈现。界面看起来像这样:
procedure HSLTransform(texture: GLuint; hShift: integer; sMult, lMult: GLfloat);
不过,我不知道例行程序中应该包含什么。我了解 HSL/RGB 转换所涉及的基本数学,但我不知道如何编写着色器或如何应用它。有人可以指出我正确的方向吗?首选 Delphi 示例,但如果必须,我也可以阅读 C。