glsles

    0热度

    1回答

    我正在使用纹理进行颜色查找以将效果应用于图片。我的查找是使用第一个纹理片段的亮度的梯度图,然后在第二个纹理上查看。第二个纹理是256x256,水平渐变和几个不同的渐变从上到下。所以32个水平条纹每8个像素高。我在x上的查找是亮度,在y上它是一个渐变,我瞄准条纹的中心以避免交叉。 我的片段着色器看起来是这样的: lowp vec4 source = texture2D(u_textureSample

    2热度

    1回答

    我在three.js中构建了一个项目,其中一个想法是让用户编写自己的着色器代码。来自用户的代码将动态加载到GPU,就像在this example中一样。在这样的设置中,用户可以通过某种方式显示由他的代码生成的编译时错误而获益良多。我查看了上面例子中的代码,但这个实例直接与WebGl一起工作。 是否有任何替代方案我可能会考虑利用three.js库来检测编译时着色器错误?

    1热度

    1回答

    我正在为Android编写一个粒子滤波器应用程序。我希望GPU能够并行处理所有粒子。 我在顶点着色器中的代码根据其当前位置更新每个粒子或顶点的位置,但我无法弄清楚如何将更新的位置写回到openGLES,甚至使其可用到着色器在下一次运行中处理相同的顶点。 属性变量具有适当的范围,但只能在顶点着色器中读取。 统一变量有适当的范围,但你不能做阵列(所以这将是难以实现的制服了大量的顶点)。而且它们只能在顶

    0热度

    3回答

    我需要一个没有if-else语句的高效glsl代码。 目前的算法是这样的: lowp float a; if (a > 1.0) a -= 1.0; else if (a < 0.0) a += 1.0; 这是一个浮点运算模运算类似: a = mod(a,1.0); 只有if a == 1,它应该return 1,而不是0。 如何做到这一点没有if-else虽然?

    2热度

    1回答

    使用着色器我想着色一个平面,以便它复制纹理上的像素。纹理是32x32像素,平面的尺寸也是32x32的空间坐标。 有谁知道我会如何检查纹理上的第一个像素,然后用它在飞机上着色第一个方块(1x1)? 生成的纹理例如:(初像素是红色的目的) 该代码使用一个具有坐标VEC2(0,0)作为我预期不起作用。我认为在(0,0)的颜色是红色,但它不是,它是绿色的: vec4 color = texture2D(t

    5热度

    1回答

    我有以下片段着色器: precision highp float; varying highp vec2 vTexCoord; uniform sampler2D uColorTexture; void main() { highp vec4 tmp; tmp = ((texture2D (uColorTexture, vTexCoord) + texture2D (uC

    4热度

    1回答

    我现在开始学习着色器(HLSL,GLSL),我看到很多教程,其中没有创建多个变量,这使得阅读变得更加困难。我想知道是否创建新变量会影响着色器的性能。 因此,例如(在CG): 比这更快的这个 inline float alphaForPos(float4 pos, float4 nearVertex){ return (1.0/_FogMaxRadius)*clamp(_FogRadi

    0热度

    1回答

    我想在iPad2上编写一个简单的GLSL片段着色器,并且我遇到了一个奇怪的问题,OpenGL似乎代表了一个8位“红色”值,作为纹理上传的一部分,像素值已被转换为浮点数。我想要做的是传入一个包含大量8位表索引和实际像素值的32bpp表的纹理。 我的纹理数据看起来是这样的: // Lookup table stored in a texture const uint32_t pixel_l

    0热度

    1回答

    我正在用Shader 2.0进行试验。 作为理解点简单excersise着色好一点,我实现了一个系统,其中一个雪碧类: 我在片段着色器设置spritesheet为统一sampler2D。 2048x 2048(12 x 12像素的128像素方块) 我创建了一个点。 我在该点的顶点着色器中设置uv坐标。 我偏移顶点着色器中的UV坐标作为一个统一变量传入的整数,以在Spritesheet中选择'帧'我

    1热度

    1回答

    在我运行在iPad模拟器上的iOS项目中,我有3个着色器程序,每个着色器程序使用类似但不相同的属性和制服集。前两种着色器编译和工作完美,在编译或绘图过程中任何时候都不会出现gl错误。我现在需要添加第三个着色器,并且这引起了一个问题:现在,其他着色器都不绘制任何东西,并且当我尝试使用glUniform传递制服时,glGetError返回1282(GL_INVALID_OPERATION)。 glGe