小编kea*_*ine的帖子

Adreno 220 GLSL错误

我们在使用Adreno 220 GPU的索尼Xperia S手机上遇到GLSL alpha测试问题.设备正在运行Android 4.0.4.

Adreno 200,Adreno 205,Adreno 225以及Tegra2,Mali400PowerVR GPU上它运行良好.

着色器代码:

// vertex
            uniform highp mat4 uMVPMatrix;
            attribute highp vec4 aPosition;
            attribute highp vec2 aTextureCoord;
            varying mediump vec2 vTextureCoord;
            void main() {
              gl_Position = uMVPMatrix * aPosition;
              vTextureCoord = aTextureCoord;
            } 

// fragment
            precision mediump float;
            varying mediump vec2 vTextureCoord;
            uniform sampler2D sTexture;
            uniform sampler2D sAlpha;
            uniform vec4 uBlendColor;
            void main() {
             vec4 base = texture2D(sTexture, vTextureCoord);
             if(texture2D(sAlpha, vTextureCoord).r …
Run Code Online (Sandbox Code Playgroud)

android opengl-es glsl opengl-es-2.0

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

将统一颜色传递给片段着色器(openGL ES 2.0)

这是一个奇怪的问题.如果我尝试将统一颜色传递给片段着色器,则会出现编译错误

uniform vec4 uniformColor;

void main(){
   gl_FragColor = uniformColor;
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我将相同的均匀颜色传递给顶点着色器,然后通过变化将其传递给片段着色器,那么它可以正常工作.

    attribute vec4 position;
    uniform mat4 matrix;
    uniform vec4 uniformColor;
    varying vec4 fragmentColor; 
    void main()
    {
        gl_Position = matrix * position;
        fragmentColor = uniformColor;
    }
Run Code Online (Sandbox Code Playgroud)

varying lowp vec4 fragmentColor;
void main()
{
  gl_FragColor = fragmentColor;
}
Run Code Online (Sandbox Code Playgroud)

这是在iOS上.

我有点困惑,因为从网上复制和粘贴示例会给我带来错误.

glsl uniform varying ios opengl-es-2.0

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

在着色器中使用alpha测试的OpenGL ES 2.0透明度

我正在尝试在OpenGL ES 2.0中制作透明对象.我正在设置GL w /以下参数:

    GLES20.glEnable(GLES20.GL_DEPTH_TEST);
    GLES20.glDepthFunc(GLES20.GL_LESS);
    GLES20.glDisable(GLES20.GL_BLEND);
    GLES20.glClearDepthf(1.0f);
Run Code Online (Sandbox Code Playgroud)

以下是着色器的代码:

private final String mVertexShader = "uniform mat4 uMVPMatrix;\n" +
        "attribute vec4 aPosition;\n" +
        "attribute vec2 aTextureCoord;\n" +
        "varying vec2 vTextureCoord;\n" +
        "void main() {\n" +
        "  gl_Position = uMVPMatrix * aPosition;\n" +
        "  vTextureCoord = aTextureCoord;\n" +
        "}\n";

private final String mFragmentShader = "precision mediump float;\n" +
        "varying vec2 vTextureCoord;\n" +
        "uniform sampler2D sTexture;\n" +
        "void main() {\n" +
        "  vec4 base = texture2D(sTexture, vTextureCoord);\n" +
        "  if(base.a < 0.5){ …
Run Code Online (Sandbox Code Playgroud)

java android opengl-es glsl opengl-es-2.0

4
推荐指数
2
解决办法
5931
查看次数

在多个 OpenGL-ES 上下文之间共享一个 glProgram?

我有一个带有多个 OpenGL-ES 视图的 iPad 应用程序,这些视图使用 OpenGL ES 2.0 和一个自定义片段着色器。目前,着色器会针对每个单独的 OpenGL 视图进行编译和链接。我想编译和链接一次着色器,并为每个视图重新使用它们。从理论上讲,这应该只是调用的问题

gluseProgram(gProgramHandle);

在我的 render() 方法中,在渲染之前,并加载 gProgramHandle 一次,对吗?但这不起作用。当我切换到使用单个 gProgramHandle(在初始化时设置为 -1)时,只有一个 OpenGL 视图有效,其他视图显示为深绿色矩形。我究竟做错了什么?

- (void)loadShaders
{
   if (gProgramHandle == -1)
{
    NSLog(@"Compiling shaders...");

    GLuint vertexShader = [self compileShader:@"AIMGsiVertexShader" withType:GL_VERTEX_SHADER];
    GLuint fragmentShader = [self compileShader:@"AIMGsiFragmentShader" withType:GL_FRAGMENT_SHADER];

    gProgramHandle = glCreateProgram();
    glAttachShader(gProgramHandle, vertexShader);
    glAttachShader(gProgramHandle, fragmentShader);
    glLinkProgram(gProgramHandle);

    GLint linkSuccess;
    glGetProgramiv(gProgramHandle, GL_LINK_STATUS, &linkSuccess);
    if (linkSuccess == GL_FALSE)
    {
            // If there was an error when compiling the gsls shaders, report the compile error and quit.
        GLchar messages[256]; …
Run Code Online (Sandbox Code Playgroud)

shader opengl-es ios opengl-es-2.0

4
推荐指数
2
解决办法
2877
查看次数

Android - 检测反向横向

我需要检测反向横向,以防止用户开始捕获垂直视频。

我在layout-landlayout-port文件夹中实现了 2 个布局,其中包含不同的控件集。问题是 Android 不允许我专门为反向景观创建单独的布局。我需要这个,因为在这种情况下视频是倒置的,尽管 UI 显示正确。

如果我将设备从 0 方向旋转到 180 度,Android 甚至不会调用onCreate()我的活动,但在这种情况下视频会翻转。

有人可以建议一个工作示例如何检测某些设备方向(在我的情况下是反向横向)以为此方向使用另一种布局?

android screen-orientation android-layout android-camera

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

prettyPhoto,"标题"和工具提示

在prettyPhoto中,如何让照片描述来自除了"title"(添加到<a>周围的标签<img>)以外的其他内容?当鼠标悬停在图像上时,它会在我的网站上显示丑陋的html,我只想在它打开时看到并由prettyPhoto显示(因此它包含html),但不是工具提示.

我有一个想法是插入一个事件,但唯一相关的是changepicturecallback,我无法弄清楚如何从中访问当前的照片元素.

也许这是jQuery本身的东西,但我有点迷失在哪里找到它.

任何想法都会有帮助.

谢谢,伊戈尔

jquery prettyphoto

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

kineticjs rect fillText

我有KineticJS矩形已填充'蓝色',我想在这个矩形框上显示文字.但是我的下面代码没有显示任何内容 此外,我需要在按钮单击时分配此标签文本,相同的代码也在下面.

drawShape = new Kinetic.Rect({
            id: shapeId,
            name: shapeName,
            x: 0,
            y: 0,
            width: 150,
            height: 40,
            fill: "#00D2FF",
            stroke: "black",
            strokeWidth: 3,
            fillText: "Step" + stepNumber            
        });

function OnApplyPropertiesClick(){
drawShape.fillText(document.getElementById("txtLabel").value);  
}
Run Code Online (Sandbox Code Playgroud)

对此有何帮助?请.

谢谢Biru

javascript canvas kineticjs

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

OpenGL ES性能不同的混合模式

我需要在渲染场景上应用全屏摄影般的晕影效果.显然,我必须使用混合来实现这一目标.我想选择最快的混合模式,因为它将应用于所有屏幕空间.

OpenGL ES中的一些混合模式比另一个更快吗?或者任何混合模式是否以相同的填充率工作?到目前为止,我还没有在互联网上找到任何资源说某些混合模式比另一种更慢或更快,所以我决定在SO上提出这个问题.

这是针对Android应用程序的,所以我理解当然这种行为可能取决于GPU供应商,但是对于更快的混合可能有一些常见的考虑因素?

performance android opengl-es opengl-es-2.0

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

Android:生成主 dex 列表时出错

我在为 paypal 添加另一个包后收到此错误,但我已删除此错误,但仍然收到相同的错误,我已针对此问题检查了多个解决方案,但尚未解决。gradle 代码已附在下面。

Execution failed for task ':app:transformClassesWithMultidexlistForDebug'.
Run Code Online (Sandbox Code Playgroud)

com.android.build.api.transform.TransformException:生成主 dex 列表时出错。

apply plugin: 'com.android.application'


android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "mainproject.mainroject.story"
        minSdkVersion 16
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    aaptOptions
            {
                cruncherEnabled = false
            }

}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.android.support:design:26.1.0'
    implementation 'com.android.support:support-v4:26.1.0'
    //noinspection GradleCompatible
    implementation 'com.google.firebase:firebase-config:11.0.4'
    implementation 'com.google.firebase:firebase-database:11.0.4'
    implementation 'com.google.firebase:firebase-auth:11.0.4' …
Run Code Online (Sandbox Code Playgroud)

android gradle android-studio android-multidex

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