opengles吧 关注:82贴子:119
  • 1回复贴,共1

OPENGL_ES问题

只看楼主收藏回复

关于一个多边形的渲染,如何用一个别的模型的光把遮住多边形的渲染:(遮住 if(color.r >= 1.6){ 到jk=1.5;
}的部分),顺便求大神解答一下各函数的意思。
uniform vec2 VIEWPORT_DIMENSION;
uniform sampler2D TEXTURE_0;
uniform sampler2D TEXTURE_1;
varying vec2 uv0;
varying vec2 uv1;
varying vec4 color;
varying vec4 skyColor;
varying float time;
#ifdef FOG
varying vec4 fogColor;
#endif
const lowp float spos = 0.90625;
float map(float x, float min, float max, float newMin, float newMax) {
return newMin + (newMax - newMin) * ((x - min) / (max - min));
}
void main() {
vec4 diffuse = texture2D(TEXTURE_0, uv0);
vec4 light = texture2D(TEXTURE_1, uv1);
#ifdef ALPHA_TEST
if(diffuse.a < 0.5)
discard;
#endif
float jk = 1.5;
if(color.r == color.g && color.g == color.b){
if(color.r >= 1.6){
jk = 1.7;
}else if(color.r <= 0.49){
jk = 0.4;
}else if(color.r <= 0.55){
jk = 0.45;
}else if(color.r <= 0.6){
jk = 0.5;
}else if(color.r <= 0.615){
jk = 0.92;
}else if(color.r == 0.9){
jk = 2.5;
}else if(color.r <= 0.7){
jk = 1.5;
}
}
float vf = map(min((uv1.x+uv1.y)/2.0, 0.2), 0.2, 0.8, 0.4, 1.0);
vec2 cond = 1.0 - abs(sign(vec2(color.r - color.g, color.g - color.b)));
float c0 = cond.x * cond.y;
diffuse *= color * light*1.05*jk;
diffuse.rgb *= clamp(max(1.0 - sign(uv1.y - spos), 0.0) * 0.10 + (1.2 - max(1.35 - sign(uv1.y - spos), 0.0)), 0.6, 1.3);
diffuse.rgb *= vec3(1.0,1.1,0.78);
#ifdef FOG
diffuse.rgb = mix( diffuse.rgb, fogColor.rgb, fogColor.a );
#endif
gl_FragColor = diffuse;
}


来自Android客户端1楼2015-01-13 17:29回复
    请问有没有认识的在武汉的会opengles软件开发的大牛,求推荐


    IP属地:湖北2楼2016-06-03 16:10
    回复