shader相关内容
gl_FragCoord.xy的范围是多少?我知道gl_FragCoord是屏幕坐标,但实际范围是多少?( 0, width - 1 )还是( 1, width )?当我进行基于碎片coord的计算时,如果我做了类似gl_FragCoord.x - 5的操作,GLSL编译器会生成什么类型的错误(如果有的话)? PS:我不需要规范化。 推荐答案 gl_FragCoord坐标从0开始
..
我一直在尝试使用ShaderTool的鱼眼着色器。 我添加了自己的帧分辨率,并更改了一些关键字(texture->texture2D,fragColor->gl_FragColor),但仅此而已。 我真的不知道为什么它不能工作,也不知道如何调试它。 结果,我得到了一张单色的灰色图像。 以下是我的片段着色器的代码: precision mediump float; uniform ve
..
所以我有一些原始图像. 我需要使用特定蒙版获取并显示此图像的某些部分.掩码不是矩形或形状.它包含不同的多边形和形状. 是否有任何方法或教程如何实现它?或者从哪里开始做这个?我应该写一些小的着色器或比较图像的适当像素或类似的东西吗? 很高兴收到任何建议. 谢谢 解决方案 你可以把你的图片放在一个 UIImageView 中,然后给那个图片视图添加一个掩码,比如 my
..
我看到有一个 a Bezier 的示例实现QML 中的曲线,但我正在寻找如何实现虚线或虚线贝塞尔曲线的提示.据我所知,贝塞尔曲线示例的作者正在使用 QSGGeometryNode 来存储 QSGGeometry 并在其上应用 QSGFlatColorMaterial 材料.然后他们只需创建点列表并在它们之间绘制线段. 是否可以编写一个 shader 并将其应用到 QSGFlatColorMa
..
在以下代码中: gl_FragColor = vColor * texture2D(u_Texture, v_TexCoordinate); 我注意到如果 u_Texture 未绑定,则 texture2D 返回的默认值是白色 (1,1,1,1). 我的着色器基于这个事实是否安全? 解决方案 我没想到. 我见过默认值为黑色的其他实例.如果采样器使用的内存是一段未初始化的视频
..
我目前正在尝试统一编写一个着色器,如果两个国家不属于同一个玩家,则该着色器会在风险风格的游戏中围绕国家绘制三角形图案(视觉辅助来查看您的边界). 现在,我在让着色器正确设置国家/地区时遇到问题. 它总是将国家 0 设置在左侧,国家 1 设置在右侧 - 国家 0 和 1 是通过程序设置的. 线,一个边界,可以在 0 到 359 度之间. 我如何找到国家 0 和 1 是我在线中
..
我尝试使用 LibGDX 实现法线映射.因此,当我在顶点着色器中计算漫反射和镜面反射颜色时,我得到了一些积极的结果(至少我是这么认为的). 顶点着色器: 属性 vec4 a_position;属性 vec2 a_texCoord0;属性 vec3 a_normal;变化 vec2 v_texCoord;可变浮点 v_diffuse;变化 vec3 v_specular;变化 vec3 v_
..
我正在尝试让网格法线和灯光在 LibGDX 项目中工作. 我已经有从高度图纹理像素生成的纹理网格. 问题是我无法正确点亮法线.我也不是 100% 确定我在 TerrainChunk 类中正确设置了正常顶点. 以下是主类代码: 包com.me.terrain;导入 com.badlogic.gdx.Game;导入 com.badlogic.gdx.Gdx;导入 com.badlo
..
我正在尝试与金属 swift 并行计算大型数组的总和. 有没有大神的方法? 我的平面是将我的数组划分为子数组,并行计算一个子数组的总和,然后在并行计算完成后计算子总和的总和. 例如,如果我有 array = [a0,....an] 我将数组划分为子数组: array_1 = [a_0,...a_i],数组_2 = [a_i+1,...a_2i],……array_n/i =
..
我正在努力让下一个简单算法在三星 Galaxy SIII 中运行 float rand(vec2 co){返回分数(sin(点(co.xy,vec2(12.9898,78.233)))* 43758.5453);}……vec3 颜色 = texture2D(u_texture, v_texcoord);gl_FragColor.rgb = 颜色 + vec3(rand(gl_FragCoord.
..
我正在尝试查找如何为 OpenGL ES 1.x(特别是 iPhone)实现简单着色器的示例.我以前从未使用过着色器,但我确实了解它们的用途.我认为一旦我能够在模拟器中加载一个简单的着色器,我就可以从那里获取它并做我需要做的事情.谢谢您的帮助,~埃里克 解决方案 iPhone目前使用OpenGL ES 1.1 不支持可编程管道.不过,OpenGL ES 2.0 似乎确实有它们,并且与 1.
..
我制作了一个包含 4 个三角形的三角形列表,中间点的颜色不同.然后旨在组合三角形以获得漂亮的渐变.但是三角形的边缘会产生不需要的线条,我不希望这些线条一直平滑.我怎样才能得到想要的结果? 图片: 着色器代码: //简单的直通顶点着色器//属性 vec3 in_Position;//(x,y,z)属性 vec4 in_Colour;//(r,g,b,a)属性 vec2 in_Textu
..
我有一个顶点着色器,我在其中进行纹理查找以确定 gl_Position.我将其用作 GPU 粒子模拟系统的一部分,其中粒子位置存储在纹理中. 似乎: vec4 textureValue = texture2D(dataTexture, vec2(1.0, 1.0)); 在模拟器上的行为与在 iPad 设备上的行为不同.在模拟器上,纹理查找成功(该位置的值是 0.5、0.5)并且我的粒子出现在
..
iPhone SDK 有一个使用 ES 2.0 和一组(顶点和片段)GLSL 着色器来渲染不同颜色的框的示例.是否有关于如何使用此 API 呈现简单纹理的示例?我基本上想取一个四边形,并在其上绘制纹理. 旧的 ES 1.1 API 根本不再工作,所以我需要一些帮助才能开始.大多数着色器参考主要讨论高级着色主题,但我真的不确定如何告诉着色器使用绑定的纹理,以及如何引用 UV. 解决方案
..
在 cocos2d-x 中,我需要实现快速高斯模糊,它应该是这样的(我刚刚在 App Store 上发现了一些游戏已经完成了这种模糊,统一): 所以,当用户暂停游戏时,fadeIn-fadeOut 模糊效果很好. GPUImage 已经有我需要的快速模糊,但是我找不到 cocos2d-x 的解决方案. v1 代码(GPUImage v1) 目标C v2 代码何时是现在斯威夫
..
我学习 WebGL.下一个着色器工作正常: //vertex.shader//精度 mediump float;属性 vec4 a_Position;属性浮动a_PointSize;无效的主要(){gl_Position = a_Position;gl_PointSize = a_PointSize;} 和 //fragment.shader精度 mediump 浮点数;统一 vec4 u_
..
我需要在 OpenGL ES 2.0 中的一个剪切平面下剪切数百个对象,我会感谢对这个 OpenGL 子集更有经验的人的想法. 在 OpenGL ES 1.x 中有 glClipPlane.在桌面上,您的着色器中有 glClipPlane 或 gl_ClipDistance.这两个在 OpenGL ES 2.0 中都不可用.似乎这种功能在 2.0 中完全消失了. 似乎唯一的方法是 A)
..
..
我正在阅读 这篇文章,作者写道: 以下是如何通过两个简单的步骤在每个平台上编写高性能应用程序: [...] 遵循最佳实践.对于 Android 和 OpenGL,这包括诸如“批量绘制调用"、“不要在片段着色器中使用丢弃"等内容. 我以前从未听说过丢弃会对性能等产生不良影响,并且一直在使用它来避免在不需要详细的 alpha 时进行混合. 有人可以解释一下为什么以及何时使用丢弃可
..
我注意到 THREE.js 在内部使用着色器来创建核心材质“例如 MeshLambertMaterial",因此我决定将 Lambert 着色器从 Three.js 代码复制到一个新的着色器中并在其上构建. 这是我得到的代码(忠实地从 Three.js r66 复制) THREE.MyShader = {制服:THREE.UniformsUtils.merge([三.UniformsLib
..