加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Mac上的GLSL Shader Error,但不是Windows:无法从’co

发布时间:2020-12-14 19:23:12 所属栏目:Java 来源:网络整理
导读:我是着色器的新手,我昨天开始和他们中的一些玩弄.它们在我的Windows PC上正常编译,但是当它们在Mac上运行时,两者都有错误: ERROR: 0:14: = : cannot convert from const int to 4-component vector of float 在Android上只有第二个着色器给我一个错误.它有

我是着色器的新手,我昨天开始和他们中的一些玩弄.它们在我的Windows PC上正常编译,但是当它们在Mac上运行时,两者都有错误:

ERROR: 0:14: ‘=’ : cannot convert from ‘const int’ to ‘4-component
vector of float’

在Android上只有第二个着色器给我一个错误.它有一个错误,提到没有匹配的功能点重载.

它们使用相同的顶点着色器:

attribute vec4 a_position;
attribute vec4 a_color;
attribute vec2 a_texCoord0;

uniform mat4 u_projTrans;

varying vec4 vColor;
varying vec2 vTexCoord;

void main() {
    vColor = a_color;
    vTexCoord = a_texCoord0;
    gl_Position =  u_projTrans * a_position;
}

一个片段着色器(Mac上出错):

#ifdef GL_ES
#define LOWP lowp
precision mediump float;
#else
#define LOWP
#endif

varying LOWP vec4 vColor;
varying vec2 vTexCoord; 
uniform sampler2D u_texture;
void main() {
    vec4 texColor = texture2D(u_texture,vTexCoord); 
    texColor.rgb = 1.0 - texColor.rgb;
    gl_FragColor = texColor * vColor;
}

另一个Fragment Shader(mac和android上的错误):

#ifdef GL_ES
#define LOWP lowp
precision mediump float;
#else
#define LOWP
#endif

varying LOWP vec4 vColor;
varying vec2 vTexCoord; 
uniform sampler2D u_texture;            
void main() {
    vec4 texColor = texture2D(u_texture,vTexCoord); 
    vec3 gray = vec3(0.2125,0.7154,0.0721);
    vec4 color = dot(gray,texColor);
    color.a = texColor.a;
    gl_FragColor = color * vColor;
}
最佳答案
在第一个着色器中,此行中有错误 – texColor.rgb = 1.0 – texColor.rgb;你需要写:

texColor.rgb = vec3(1.0) - texColor.rgb;

在第二个着色器中,此行中有错误 – vec4 color = dot(gray,texColor);灰色是vec3,texcolor是vec4.什么是vec3和vec4之间的点积?没有这样的点功能.你可以调用浮点(vec3,vec3)或浮点(vec4,vec4).所以将该行更改为:

vec4 color = vec4(dot(gray,texColor.rgb));

要么

vec4 color = vec4(dot(vec4(gray,???),texColor)); // put in ??? float number you want

(下次请告诉我们在哪一行发生了确切的错误)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读