小编Ros*_*ner的帖子

为什么我的GLSL着色器渲染了一个解理?

我正在研究2D中的延迟光照技术,使用帧缓冲器来使用GL_MAX混合方程来累积光源.

这是我在渲染一个光源(几何图形是没有纹理的四边形,我只使用片段着色器进行着色)到缓冲区时得到的结果:

在此输入图像描述

这正是我想要的 - 来自光源的衰减.然而,当两个光源彼此靠近时,当它们重叠时,它们似乎在它们相遇的地方产生较低的RGB值,如下所示:

在此输入图像描述

为什么两者之间有一条较暗的线?我期望通过GL_MAX混合方程,他们可以使用每个位置中片段的最大值平滑地相互融合.

这是FBO的设置(使用LibGDX):

    Gdx.gl.glClearColor(0.14f, 0.14f, 0.19f, 1); 
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    Gdx.gl.glBlendEquation(GLMAX_BLEND_EQUATION);
    Gdx.gl.glBlendFunc(GL20.GL_SRC_COLOR, GL20.GL_DST_COLOR);
    Gdx.gl.glEnable(GL20.GL_BLEND);
Run Code Online (Sandbox Code Playgroud)

我不认为在使用这个等式时实际上需要调用glBlendFunc.GLMAX_BLEND_EQUATION设置为0x8008.

varying vec2 v_texCoords;
varying vec2 v_positionRelativeToLight;
uniform sampler2D u_texture;
uniform vec3 u_lightPosition;
uniform vec3 u_lightColor;

void main() {
    float distanceToLight = length(v_positionRelativeToLight);
    float falloffVarA = 0.1;
    float falloffVarB = 1.0;
    float attenuation = 1.0 / (1.0 + (falloffVarA*distanceToLight) + (falloffVarB*distanceToLight*distanceToLight));
    float minDistanceOrAttenuation = min(attenuation, 1.0-distanceToLight);
    float combined = minDistanceOrAttenuation * attenuation;
    gl_FragColor = vec4(combined, combined, combined, …
Run Code Online (Sandbox Code Playgroud)

opengl glsl fragment-shader libgdx

4
推荐指数
1
解决办法
246
查看次数

如何在java中使用Web Driver等待进度条

操作:如果我单击任何链接,则一旦完全加载页面就会显示进度条,然后隐藏该进度条

怀疑:我们希望自动执行上述操作,如何检查进度操作是否完成

下面是html代码

一旦我点击链接html看起来像这样

<div id ="divProgress" class="progresswindow" style="display: block;"></div>
Run Code Online (Sandbox Code Playgroud)

然后页面加载完成的html看起来像这样

<div id ="divProgress" class="progresswindow" style="display: none;"></div>
Run Code Online (Sandbox Code Playgroud)

那我怎么能检查这个进度条是否已经完成,目前我正在使用Thread.sleep(),但有时候web驱动程序会引发异常

Other element would receive the click: <div id="divProgress" class="progresswindow" style="display: block;">...</div>
Run Code Online (Sandbox Code Playgroud)

请提供一个建议如何处理显式等待

java selenium selenium-webdriver

1
推荐指数
1
解决办法
6785
查看次数