
[英]Random / noise functions for GLSL
由于 GPU 驱动程序供应商通常不会费心在 GLSL 中实现noiseX ,因此我正在寻找“图形随机化瑞士军刀”实用功能集,最好优化以在 GPU 着色器中使用。 我更喜欢 GLSL,但任何语言都可以为我编写代码,我可以自己将其翻译成 GLSL。 具体来说,我希望: a)伪随机函数- N 维,在 ...
[英]Random / noise functions for GLSL
由于 GPU 驱动程序供应商通常不会费心在 GLSL 中实现noiseX ,因此我正在寻找“图形随机化瑞士军刀”实用功能集,最好优化以在 GPU 着色器中使用。 我更喜欢 GLSL,但任何语言都可以为我编写代码,我可以自己将其翻译成 GLSL。 具体来说,我希望: a)伪随机函数- N 维,在 ...
[英]What's the origin of this GLSL rand() one-liner?
我已经看到这个伪随机数生成器用于网络上到处提到的着色器: 它被称为“规范”或“我在网上某处找到的单行”。 这个功能的起源是什么? 常数值是否像它们看起来那样随意,或者它们的选择有一些技巧? 有没有讨论这个功能的优点? 编辑:我遇到的关于此功能的最早参考资料是2008 年 2 月的存档,原始页面现在 ...
[英]Do conditional statements slow down shaders?
我想知道着色器(顶点/片段/像素......)中的“if-statements”是否真的减慢了着色器的性能。 例如: 使用这个更好吗: 而不是使用这个: in another forum there was a talk about that (2013): http://answers.uni ...
[英]Explicit vs Automatic attribute location binding for OpenGL shaders
为OpenGL着色器程序设置属性位置时,您将面临两个选项: 链接之前的glBindAttribLocation()以显式定义属性位置。 要么 链接后的glGetAttribLocation()以获取自动分配的属性位置。 使用一个而不是另一个有什么用? 在实践中哪一个 ...
[英]Getting the true z value from the depth buffer
正如预期的那样,从着色器中的深度缓冲区进行采样会返回 0 到 1 之间的值。 给定相机的近剪裁平面和远剪裁平面,我如何计算此时的真实 z 值,即与相机的距离? ...
[英]Creating a GLSL Arrays of Uniforms?
我想留下OpenGL的灯光,然后自己做。 我希望我的着色器允许可变数量的灯光。 我们可以在GLSL着色器中声明一组制服吗? 如果是这样,我们如何设定这些制服的价值? ...
[英]WebGL/GLSL - How does a ShaderToy work?
最近,我一直在访问 Shadertoy - https://www.shadertoy.com/ - 特别是为了了解有关 OpenGL 和 GLSL 的更多信息。 据我目前所知,OpenGL 用户首先必须准备所有要使用的几何图形并配置 OpenGL 服务器(允许的灯光数量、纹理存储等)。 完成后, ...
[英]OpenGL ES 2.0 Multiple Programs or Multiple Shaders or what? How does it work?
问题(TL; DR) 从根本上说,我的问题是我不知道OpenGL ES 2.0希望我如何编写和使用多个着色器; 或者如果一个人会这样做甚至是可取的/预期的。 这里的基本问题是:如果我有一个苹果,一块发光的岩石和一个模糊的网格,都在同一个3D世界中,最好用不同的着色器程序绘制但是使用 ...
[英]When transforming textures (drawn as flat 3D objects) to mimic depth, black lines appear randomly
我们正在使用XNA开发一个自上而下的RPG。 最近我们在编写显示地图的代码时陷入了挫折。 在绘制地图时,使用正常变换矩阵的自上而下视图,一切似乎都很好。 当使用非平面变换矩阵时,例如挤压顶部或底部以模拟深度,当相机改变位置时,出现黑线(顶部或底部的行,当向左或向右挤压时的列)。 移动和放 ...
[英]What can cause glDrawArrays to generate a GL_INVALID_OPERATION error?
我一直在尝试使用OpenGL和GLSL编写Marching Cubes算法的两遍GPU实现,类似于GPU Gems 3第一章中详述的算法。 但是,在第一次传递中对glDrawArrays的调用始终因GL_INVALID_OPERATION失败。 我查找了所有可以找到的文档,并找到了glD ...
[英]Why does my OpenGL Phong shader behave like a flat shader?
过去几周我一直在学习OpenGL,并且在实现Phong着色器时遇到了一些麻烦。 尽管我使用了smooth限定符,但似乎在顶点之间没有插值。 我在这里错过了什么吗? 为了给予信用到期的信用,顶点和片段着色器的代码严重影响了OpenGL SuperBible第五版。 我强烈推荐这本书! ...
[英]How to calculate Tangent and Binormal?
在 OpenGL 着色语言 (GLSL) 中谈论凹凸贴图、镜面高光和这些东西 我有: 顶点数组(例如 {0.2,0.5,0.1, 0.2,0.4,0.5, ...}) 法线数组(例如 {0.0,0.0,1.0, 0.0,1.0,0.0, ...}) 点光源在世界空间中的位置(例如 {0 ...
[英]How to get a “Glow” shader effect in OpenGL ES 2.0?
我正在为 iOS 编写 3D 应用程序。 我是 OpenGL ES 2.0 的新手,所以我仍然在编写基本的着色器。 我真的需要根据纹理在我的一些模型上实现“发光”效果。 这是一个示例: . 我正在寻找 OpenGL ES 2.0 的代码示例。 我在互联网上找到的大多数代码都是用于桌面 Op ...
[英]In OpenGL is there a way to get a list of all uniforms & attribs used by a shader program?
我想得到一个着色器程序对象使用的所有制服和属性的列表。 glGetAttribLocation()和glGetUniformLocation()可以用来将字符串映射到一个位置,但我真正想要的是字符串列表而不必解析glsl代码。 注意:在OpenGL中2.0 glGetObjectPara ...
[英]OpenGL bool uniform?
我正在尝试向 OpenGL glsl 着色器发送一个布尔值。 目前我在着色器中有这个: 我用它来设置它: 似乎没有glUniform1b ,所以我将它设置为整数。 这似乎工作正常。 这种方法有什么问题吗? 它是便携式的,还是会在其他显卡/驱动程序上损坏? 我目前正在使用 OpenGL 4 ...
[英]Learning modern OpenGL
我知道这几年也有类似的问题,但做了一些研究后,我仍然无法决定从哪里学习,我应该学习什么。 我还想看看您当前对现代 OpenGL 编程的实际看法,以及更多的 C++ OOP 和着色器方法。 并确保我对某些事情的实际理解是有效的。 所以......目前我们有 OpenGL 4.2,正如我在某处读到的那 ...
[英]GLSL multiple shaderprogram VS uniforms switches
我正在研究着色器管理器架构,我有几个问题要问更高级的人。 我目前的选择反对两种设计: 1. 每个材质着色器程序 => 为程序中使用的每种材质创建一个着色器程序。 潜在的缺点: 考虑到每个 object 可能都有自己的材料,它涉及到很多 glUseProgram 调用。 意味着创建了很多着色程 ...
[英]Efficiency of branching in shaders
我知道这个问题可能看起来有点没有根据,但如果有人知道任何理论/有关于这个主题的实践经验 ,那么如果你分享它会很棒。 我正在尝试优化我的一个旧着色器,它使用了大量的纹理查找。 我有三个可能的映射平面中的每一个的漫反射,普通,高光贴图 ,对于一些靠近用户的面,我还必须应用贴图技术,这也带 ...
[英]Organizing GLSL shaders in OpenGL engine
哪个更好 ? 要使一个着色器程序具有大量指定要使用的灯光或要进行映射的制服 (例如,我需要对一个网格进行视差映射,而对另一个进行视差/镜面映射)。 我会为惰性传输创建一个统一的缓存列表,如果需要,只需为每个下一个网格更改几个统一即可。 对于每种需要的情况, 要有很多着色器程序 ...