如何优化颜色渐变着色器?
我创建了这个简单的片段着色器来实现垂直颜色渐变效果。 但我发现这对我的移动设备全屏显示很费力。 有什么办法可以优化吗? 这里是代码链接 http://glsl.heroku.com/e#13541.0 ... »
我创建了这个简单的片段着色器来实现垂直颜色渐变效果。 但我发现这对我的移动设备全屏显示很费力。 有什么办法可以优化吗? 这里是代码链接 http://glsl.heroku.com/e#13541.0 ... »
这是我的着色器程序: #version 330 core // Input vertex data, different for all executions of this shader. layout(location = 0) in vec3 vertexPosition_modelspace; layout(location = 1) in vec3 vertexNormal_mode... »
我编写了一个简单的 GL 片段着色器,它对图像执行 RGB 伽玛调整: uniform sampler2D tex; uniform vec3 gamma; void main() { vec3 texel = texture2D(tex, gl_TexCoord[0].st).rgb; texel = pow(texel, gamma); gl_FragColor.r... »
我有一个PointCloud,我用它来可视化一些与时间相关的数据点。对于 PointCloud.Geometry 中的每个顶点,我想分配一个属性,它是一个纪元时间数组。 这些纪元时间是整数,例如:epochTimes = [1432314839, 1432314840, 1432314841]; 自定义属性如下所示: attributes = { epochTimes: { t... »
一些背景知识:这里的图形新手,刚刚用 mrdoob 出色的 three.js 在浏览器中涉足 3D 世界。我打算很快通过http://learningwebgl.com/ 的所有tuts :) 我想知道如何大致重新创建类似于: http://yooouuutuuube.com/v/?width=192&height=120&vm=29755443&flux=0&... »
我有以下统一缓冲区: layout(std140) uniform Light { vec4 AmbientLight; vec4 LightIntensity; vec3 LightPosition; float LightAttenuation; }; 在缓冲数据和需要添加的填充时,我遇到了一些问题。我已经阅读了http://ptgmedia.p... »
我创建了一个纹理用于 2D 采样器,作为镶嵌地形网格的置换贴图。使用传入的顶点坐标,我对后续顶点的补丁角有一个平滑的插值。当使用来自采样器的高度值时,我收到的只是一个平面。当我将该值乘以 100 时,平面的高度增加了大约 100,这让我相信 alpha 值始终是 1。 这是 GLSL 评估着色器和纹理设置。 #version 430 layout(triangles, equal_sp... »
我正在使用 OpenGL 进行我的第一步,目前无法将一些转换发送到我的顶点着色器。当我使用以下着色器程序时,一切正常,我可以看到我的对象(一个简单的三角形): layout (location = 0) in vec3 aPos; void main() { gl_Position = vec4(aPos, 1.0); } 在下一步中,我更改了着色器程序以接受来自外部的转换: lay... »
我正在使用 OpenGL ES 2.0 进行项目。我的网格中的每个顶点都有固定数量的颜色属性(比如说 5 个)。最终的每个顶点颜色计算为两个选定颜色属性之间的插值。 在我的实现中,两种颜色的选择基于两个给定的索引。我知道if 语句可能会对性能造成很大影响,因此选择将所有属性放入一个数组并使用索引来检索想要的颜色。我仍然看到性能显着下降。 attribute vec4 a_position; /... »
我正在使用 Kivent 创建 2d 游戏,我正在关注 this code。但是,在 yourappname.kv 文件的第 26 行,代码加载了一个 glsl 文件。但是我只有一个 tmx 文件 (tiled map editor),所以我可以将我的 tmx 文件转换为这段代码可以读取的内容吗?... »
我有以下片段着色器: #version 330 core layout (location = 0) out vec4 color; uniform vec4 colour; uniform vec2 light_pos; in DATA { vec4 position; vec2 texCoord; float tid; vec4 color; } fs_... »
我一直在尝试实现一个简单的灯光/阴影系统,准确地说是一个没有镜面光的简单 Phong 照明系统。它基本上可以工作,除了它有一些(在我看来)令人讨厌的工件。 我的第一个想法是,这可能是纹理 mipmap 的问题,但禁用它们不起作用。我的下一个最佳猜测是着色器问题,但我似乎找不到错误。 有没有人遇到过类似的问题或想知道如何解决这个问题? Image of the artifacts 顶点着色器... »
我尝试在我的 opengl 应用程序中实现法线映射,但无法正常工作。 This 是漫反射贴图(我添加了棕色),this 是法线贴图。 为了获得切线和双切线(在其他地方称为副法线?)向量,我为网格中的每个三角形运行此函数: void getTangent(const glm::vec3 &v0, const glm::vec3 &v1, const glm::vec3 &... »
我试图弄清楚以下代码中的原子存储功能是如何工作的,它们依赖于GL_KHR_memory_scope_semantics。 uint exclusive_prefix = 0; if (local_ix == 31) { atomicStore(work_buf[my_tile * 4 + 2], total, gl_ScopeDevice, gl_StorageSeman... »
我知道顶点属性位置总是 4 分量,但我不完全确定它是否也适用于 mat2(和其他 mat2 类型)。... »
我目前正在使用着色器 (3.3) 学习 OpenGL。有一件事我似乎无法解决。我已经读过在 OpenGL 3+ 中不推荐使用 gl_Position 和 gl_FragCoords 等内置变量,因此我想使用自己的输出变量。 所以不要这样: #version 330\n layout(location=0) in vec2 i_position; out vec4 o_position; voi... »
我对 GLSL 很陌生,所以请原谅这些问题的基本性质.. 首先,调用: int range[2], precision; glGetShaderPrecisionFormat(GL_FRAGMENT_SHADER, GL_HIGH_FLOAT, range, &precision); 对于我的设备,这将返回 precision = 23 和 range = {127, 127}。在... »
我已经编写了在嵌入式设备上运行的应用程序,但我在显示器上看到的只是填充了我在 glViewPort 中指定的颜色的表面区域。 文字没有出现。 我有 glError 打印来查看是否某些 gl API 调用失败,但没有失败。 我也没有 FT 库错误。 尽管对于我加载的任何字符,我的打印显示 face->glyph->bitmap.width face->glyph->bitmap_left 为... »
我正在尝试在 OpenGL 中制作一个场景来模拟来自太空的地球。我现在有两个球体,一个用于地球,另一个用于云。地球和云球对象有自己的着色器程序来保持简单。地球着色器程序需要 4 个纹理(白天、夜晚、光谱贴图和法线贴图),而云着色器程序需要 2 个纹理(云图和法线贴图)。我有一个具有渲染函数的对象类,在该函数中我使用以下逻辑: //bind the current object's texture... »
我一直在尝试编写一个简单的着色器来添加噪声。但是我无法通过以下设置获取 uv 坐标。 片段着色器: uniform float seed; uniform sampler2D pass; varying vec2 vUv; void main (){ //noise vec2 pos = gl_FragCoord.xy; pos.x *= seed; pos... »