Domingo 22 de Diciembre de 2024, 17:16
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación Específica
»
Programación de Videojuegos
»
OpenGL
(Moderador:
Ruben3d
) »
Transparencia
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Transparencia (Leído 2052 veces)
Perla_kiko
Miembro MUY activo
Mensajes: 114
Transparencia
«
en:
Lunes 11 de Julio de 2005, 13:17 »
0
hola yo creo un cuadrado con el siguiente codigo:
Código: Text
glMaterialfv (GL_FRONT, GL_AMBIENT, VMaterialPre[4].Ambiente);
glMaterialfv (GL_FRONT, GL_DIFFUSE, VMaterialPre[4].Difuso);
glMaterialfv (GL_FRONT, GL_SPECULAR, VMaterialPre[4].Specular);
glMaterialf (GL_FRONT, GL_SHININESS, 100.0f);
int cara=80;
glMaterialf (GL_FRONT, GL_SHININESS, 100.0f);
glBegin(GL_QUADS);
glVertex3f((VVertice[VCaras[cara].A].x/50)-5,(VVertice[VCaras[cara].A].y/50)+5,(VVertice[VCaras[cara].A].z/50)+0.2);
glVertex3f((VVertice[VCaras[cara].A].x/50)+15, (VVertice[VCaras[cara].A].y/50)+5,(VVertice[VCaras[cara].A].z/50)+0.2);
glVertex3f((VVertice[VCaras[cara].A].x/50)+15, (VVertice[VCaras[cara].A].y/50)-5,(VVertice[VCaras[cara].A].z/50)+0.2);
glVertex3f((VVertice[VCaras[cara].A].x/50)-5,(VVertice[VCaras[cara].A].y/50)-5,(VVertice[VCaras[cara].A].z/50)+0.2);
glEnd();
como puedo hacer que sea semitranparente
Tweet
visualcubb
Nuevo Miembro
Mensajes: 10
Re: Transparencia
«
Respuesta #1 en:
Lunes 11 de Julio de 2005, 17:59 »
0
Hola colega, lo primero que tienes que hacer para que sea transparente es habilitar la transparencia, eso se hace de la siguiente forma:
Código: Text
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE);
Para saber que otros métodos de blending existen puedes revisar esta página:
glBlendFunc
Después tienes que agregar la función glColor4ub() o glColor4f() en cada llamada a glVertex3f() para indicarle qué nivel del transparencia quieres para cada vértice.
Los 3 primeros parámetros son el nivel RGB y el 4to es el alpha channel que indica la transparencia.
Tienes que tomar en cuenta de que la luz cuando está activa deshabilita la transparencia.
Un ejemplo de tu código con el cubo semi-transparente sería algo así:
Código: Text
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE);
glColor4f(1.0,1.0,1.0,0.5f);
glBegin(GL_QUADS);
glVertex3f((VVertice[VCaras[cara].A].x/50)-5,(VVertice[VCaras[cara].A].y/50)+5,(VVertice[VCaras[cara].A].z/50)+0.2);
glVertex3f((VVertice[VCaras[cara].A].x/50)+15, (VVertice[VCaras[cara].A].y/50)+5,(VVertice[VCaras[cara].A].z/50)+0.2);
glVertex3f((VVertice[VCaras[cara].A].x/50)+15, (VVertice[VCaras[cara].A].y/50)-5,(VVertice[VCaras[cara].A].z/50)+0.2);
glVertex3f((VVertice[VCaras[cara].A].x/50)-5,(VVertice[VCaras[cara].A].y/50)-5,(VVertice[VCaras[cara].A].z/50)+0.2);
glEnd();
Saludos.
"Y conocereis la verdad y la verdad os hará libres" juan 8:32
http]
[url=http://www.openglubb.info]http]
Perla_kiko
Miembro MUY activo
Mensajes: 114
Re: Transparencia
«
Respuesta #2 en:
Miércoles 13 de Julio de 2005, 13:32 »
0
gracias!
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación Específica
»
Programación de Videojuegos
»
OpenGL
(Moderador:
Ruben3d
) »
Transparencia