我们在使用Adreno 220 GPU的索尼Xperia S手机上遇到GLSL alpha测试问题.设备正在运行Android 4.0.4.
在Adreno 200,Adreno 205,Adreno 225以及Tegra2,Mali400和PowerVR 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) 这是一个奇怪的问题.如果我尝试将统一颜色传递给片段着色器,则会出现编译错误
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上.
我有点困惑,因为从网上复制和粘贴示例会给我带来错误.
我正在尝试在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) 我有一个带有多个 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) 我需要检测反向横向,以防止用户开始捕获垂直视频。
我在layout-land和layout-port文件夹中实现了 2 个布局,其中包含不同的控件集。问题是 Android 不允许我专门为反向景观创建单独的布局。我需要这个,因为在这种情况下视频是倒置的,尽管 UI 显示正确。
如果我将设备从 0 方向旋转到 180 度,Android 甚至不会调用onCreate()我的活动,但在这种情况下视频会翻转。
有人可以建议一个工作示例如何检测某些设备方向(在我的情况下是反向横向)以为此方向使用另一种布局?
在prettyPhoto中,如何让照片描述来自除了"title"(添加到<a>周围的标签<img>)以外的其他内容?当鼠标悬停在图像上时,它会在我的网站上显示丑陋的html,我只想在它打开时看到并由prettyPhoto显示(因此它包含html),但不是工具提示.
我有一个想法是插入一个事件,但唯一相关的是changepicturecallback,我无法弄清楚如何从中访问当前的照片元素.
也许这是jQuery本身的东西,但我有点迷失在哪里找到它.
任何想法都会有帮助.
谢谢,伊戈尔
我有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
我需要在渲染场景上应用全屏摄影般的晕影效果.显然,我必须使用混合来实现这一目标.我想选择最快的混合模式,因为它将应用于所有屏幕空间.
OpenGL ES中的一些混合模式比另一个更快吗?或者任何混合模式是否以相同的填充率工作?到目前为止,我还没有在互联网上找到任何资源说某些混合模式比另一种更慢或更快,所以我决定在SO上提出这个问题.
这是针对Android应用程序的,所以我理解当然这种行为可能取决于GPU供应商,但是对于更快的混合可能有一些常见的考虑因素?
我在为 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 ×5
opengl-es ×4
glsl ×3
ios ×2
canvas ×1
gradle ×1
java ×1
javascript ×1
jquery ×1
kineticjs ×1
performance ×1
prettyphoto ×1
shader ×1
uniform ×1
varying ×1