Como Asigno Color Con Trasparencia ??


Objetivo: Como Asigno Color Con Trasparencia ??
Necesito asignar color a una cara de un volúmen, pero tiene que ser con determinado grado de trasparencia, para que se visualice algo de lo que queda tapado por la cara ese volumen.
En resumen, como especifico un color "X " con un grado de trasparencia"Z" a un cuadrado ?

Gracias.

Perfil MP  
Objetivo: Re: Como Asigno Color Con Trasparencia ??
¿Te refieres al uso del componente de open gl?

Si no especificas más, difícilmente podremos ayudarte. Lee la cabecera de los foros para proporcionar los detalles requeridos.

Saludos

Perfil MP  
Objetivo: Re: Como Asigno Color Con Trasparencia ??
Exactamente, es un componente OpenGl. Tengo un 3D que coloca en el plano X-Y, un rectángulo centrado en un punto (x,y) especificado por un arreglo. El arreglo va creciendo en cada iteración, y la pantalla se va cubriendo con los rectágulos (ó círculos). 1 motivo por el cual necesito trasparencia, es por estética. El Segundo motivo, es que necesito dejar identificado visualmente, las áreas de solapamiento de coordenadas, es decir, lugares donde los cuadrados se solapan entre si.

Gracias

Perfil MP  
Objetivo: Re: Como Asigno Color Con Trasparencia ??
Nunca he usado ese componente, entre otras cosas porque no puedo disponer de aceleración 3D con mi tarjeta gráfica actual (ATI para más señas, siempre peleada con los drivers).

En cuanto a lo que comentas, se me ocurre que podrías situar las figuras en diferentes posiciones del plano Z, es decir, unas delante de otras. De esta manera no necesitas saber el solape ya que no se tocan entre sí. Hasta ahí, supongo que de acuerdo, pero desconozco si hay alguna propiedad para la transparencia, que debería de haberla. En ese caso, desde la perspectiva del observador cuando una figura esté delante de otra, sus colores deberían sumarse (o mezclarse).

Ya digo que hablo sólo por mis conocimientos de 3D con programas de modelado, no porque conozca en absoluto la forma de programar en openGL.

Saludos

Perfil MP  
Objetivo: Re: Como Asigno Color Con Trasparencia ??
Gracias por tu respuesta. Lamentablemente, deben ir todas en el plano Z=0, justamente son marcas de un recorrido realizado por un móvil, con lo cual necesito que sea enel mismo plano X-Y y que la trasparencia permita mostar figuras situadas en Z=0 y pasadas anteriores.

En otros programas para aplicaciones gráficas, las trasparencias se especifican como una opción en el argumento de la función para setear el color. En Matlab se denomina "ALPHA", y toma valores de 0 a 1, donde 1 es completamente trasparente, y 1 es Nada trasparente.

Si alguien puede decirme en que lugar puedo conseguir esta clase de info, les agradecería.

Perfil MP  
Objetivo: Re: Como Asigno Color Con Trasparencia ??
Franco, soy completamente ignorante respecto de OpenGL, pero he encontrado en la ayuda de gambas algo que tal vez te sirva:


STATIC SUB Color4f ( Red AS Float, Green AS Float, Blue AS Float, Alpha AS Float )

STATIC SUB Color4i ( Red AS Integer, Green AS Integer, Blue AS Integer, Alpha AS Integer )

STATIC SUB ColorMask ( Red AS Boolean, Green AS Boolean, Blue AS Boolean, Alpha AS Boolean )

STATIC SUB Colorf ( Red AS Float, Green AS Float, Blue AS Float [ , Alpha AS Float ] )

STATIC SUB Colori ( Red AS Integer, Green AS Integer, Blue AS Integer [ , Alpha AS Integer ] )

Todas estas rutinas son parte de la clase estática GL

Objetivo: Re: Como Asigno Color Con Trasparencia ??
Gracias Fabian. Justamente ese argumento es el que supongo que debería funcionar, pero lamentablemente, aún no logré algún cambio al modificar ALPHA, en la función Color4f.

Gracias

Perfil MP  
Objetivo: Re: Como Asigno Color Con Trasparencia ??
He visto en otros foros que es necesario habilitar la función ALPHA. Probé con Gl.Enable(Gl.GL_ALPHA) y también con Gl.Enable(Gl.GL_4D_Color_Texture) pero ningún cambio se nota en la pantalla al utilizar un alpha = 0.2

Perfil MP  
Objetivo: Re: Como Asigno Color Con Trasparencia ??
Finalmente, encontré información en alguna documentación de foros, sobre la forma de ejecutar esta función. :


AL abrir la ventana OpenGl, se colocan las siguientes funciones:

----------------------------
Gl.Enable(Gl.GL_Alpha)
Gl.Enable(Gl.GL_Blend)
Gl.BlendFunc(Gl.GL_SRC_ALPHA, Gl.GL_ONE_MINUS_SRC_ALPHA)
----------------------------

Luego, deben graficarse en orden, desde los objetos menos transparentes a los más traslúcidos.
El color se asigna con la función:

Gl.Color4f ( Red AS Float, Green AS Float, Blue AS Float, Alpha AS Float ) ó Gl.Color4f ( Red AS Integer, Green AS Integer, Blue AS Integer, Alpha AS Integer )


Es muy importante el orden en el que se grafican los planos, porque si se coloca al final uno sin trasparencia, este plano tapará a todos los anteriores dibujados en las mismas coordenadas X-Y.

Espero que les sirva. Gracias por su ayuda.

Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.1203s (PHP: -41% SQL: 141%)
Consultas SQL: 23 - Debug off - GZIP Activado