Duda Libreria OpenGL


Objetivo: Duda Libreria OpenGL
Antes que nada quiero aclarar que soy nuevo en gambas asi que talvez estoy confundido.
Estoy intentado hacer (para experimentar, nada serio) alguna aplicacion 3D y me encontre con el problema de que no puedo dibujar en la pantalla texto.
Supuestamente hay 2 metodos, uno dibujando las letras y otro que escribe los caracteres directamente.
El problema es que para usar la sentencia *GLUT.BITMAPSTRING* pero me da error como desconocida.
Necesito la libreria glut pero no puedo encontrarla en ningun lado ni tampoco agregarla al proyecto.
¿No esta disponible para gambas o es que yo estoy equivocado?


Estoy programando en Ubuntu 14.04 que esta instalado en virtual box sobre W7.
Gambas3.6.XX

Cualquier guia sera bien recibida.

Perfil MP  
Objetivo: Re: Duda Libreria OpenGL
francobe:

He visto que en la documentación de gambas3 ( http://gambaswiki.org/wiki/comp ), existe el componente:

http://gambaswiki.org/wiki/comp/gb.opengl.glu

Que tiene una serie de clases para trabajar con el:
Citar:
gb.opengl.glu
The GL Utilities GLU library is a set of routines designed to complement the OpenGL graphics system by providing support for mipmapping, matrix manipulation, polygon tessellation, quadrics, NURBS, and error handling.
More information there:
Frequently Asked Questions
OpenGL GLU Library 1.3 Specification (PDF)
Classes
Glu GluNurb GluQuadric


Seguramente habrá algún método similar al que buscas.

Por otro lado, mirate los ejemplos que trae gambas3 sobre opengl .

Saludos

Julio

Nota:
Citar:
"Estoy programando en Ubuntu 14.04 que esta instalado en virtual box sobre W7.Gambas3.6.XX"

Tenerlo en una maquina virtual,no te tiene que dar ningún problema. Lo que si pues optimizar (para que vaya más fluida la máquina virtual) es la memoria de la tarjeta gráfica que le tengas asignada a la máquina virtual.

Añado:
Un compañero del foro, TercoIde, se hizo un motor 3d para usarlo con gambas3 (en C y luego usando OpenGl), (hizo varias versiones).
Lo puedes ver en : http://foro.gambas-es.org/viewtopic.php?f=5&t=3518&start=20
(leete todos los comentarios, que son bastantes)

última edición por jsbsan el Miercoles, 26 Noviembre 2014, 11:01; editado 1 vez
Objetivo: Re: Duda Libreria OpenGL
Gracias por la intro, Julio.

Basicamente hay que crear una imagen rectangular, meter el texto ahi con Paint, y luego usar esa imagen en OpenGL.

Para ahorrarle trabajo, va esta rutina que deberia funcionar:

' un type importante
Public Struct punto3d
x As Float
Y As Float
z As Float
End Struct


Public Sub txtRendering2D(texto As String, p As Punto3d, Optional Altura As Single = 12, Optional _color As Long = Color.Blue, Optional _BackColor As Long = -1, Optional centradoH As Integer = 0, Optional centradoV As Integer = 0)
' this works in a Orthogonal projection



Dim rectangulo As RectF
Dim imagen As New Image, pR As New Punto3d

imagen.Resize(200, 200) 'so Paint.Begin gives no error
Paint.Begin(imagen)
Paint.Font.Size = Altura
Paint.Brush = Paint.Color(_color)
rectangulo = Paint.TextSize(texto)
Paint.End
rectangulo.Height /= 1.25 ' correct the innecesary extra height

'this can't go into the Paint loop
imagen.resize(rectangulo.Width, rectangulo.Height)
If _backcolor > 0 Then
imagen.Fill(_BackColor)
Else
' until I know how to make it transparente, it goes like this
imagen.Fill(Color.White)

End If

Paint.Begin(imagen)
Paint.Font.Size = Altura
Paint.Brush = Paint.Color(_color)
Paint.Text(texto, 0, rectangulo.Height * 0.85) 'locate the text at the bottom + 15% so it's vertically centered in the box
Paint.Fill
Paint.End
'imagen.Save("imagen.png") ' this is to check the Paint worked (and works!)



' allignment to the 3D point p
If centradoH = 1 Then pr.x -= rectangulo.Width /
If centradoH = 2 Then pr.x -= rectangulo.Width / 2

If centradoV = 1 Then pr.y -= rectangulo.Height
If centradoV = 2 Then pr.y -= rectangulo.Height / 2

Gl.TexImage2D(imagen)
'Glu.Build2DMipmaps(imagen) ' de alguna manera esto da error, y sin esto funciona igual
Gl.TexParameteri(Gl.TEXTURE_2D, Gl.TEXTURE_MIN_FILTER, Gl.NEAREST)
Gl.TexParameteri(Gl.TEXTURE_2D, Gl.TEXTURE_MAG_FILTER, Gl.NEAREST)

gl.BindTexture(gl.TEXTURE_2D, hText[0])
Gl.Begin(Gl.QUADS)
gl.color3f(1, 1, 1)

Gl.TexCoordf(0.0, 1.0) ' Bottom Left OF The Texture AND Quad
Gl.Vertex3f(pr.x, pr.y, pr.z)

Gl.TexCoordf(1.0, 1.0) ' Bottom Right OF The Texture AND Quad
Gl.Vertex3f(pr.x + rectangulo.Width, pr.y, pr.z)

Gl.TexCoordf(1.0, 0.0) ' Top Right OF The Texture AND Quad
Gl.Vertex3f(pr.x + rectangulo.Width , pr.y + rectangulo.Height, pr.z)

Gl.TexCoordf(0.0, 0.0) ' Top Left OF The Texture AND Quad
Gl.Vertex3f(pr.x, pr.y + rectangulo.Height , pr.z)

Gl.End()

End


cualquier duda me consultas por aqui

última edición por tercoIDE el Miercoles, 26 Noviembre 2014, 12:53; editado 1 vez
Perfil MP  
Objetivo: Re: Duda Libreria OpenGL
Gracias por las respuestas, voy a leer los documentos que me recomendaron.

Sobre lo que tercoIDE me recomendó, no creo poder usarlo por lo siguiente:

Lo que estoy intentado hacer un un polígono que cambie de color cuando yo cambie los valores de las variables de RGB, y necesito 3 label en pantalla que me digan cuales son dichos valores.
Estoy haciendo esto para poder sacar los valores de los colores que yo quiero para usarlos en otro proyecto ya que estuve leyendo pero no encontré un método para poder saber cual es el valor de determinado color, por lo que me plantee dicho *programa*.
Encontré los valores en hex.o decimal pero no pude aplicarlo a las sentencia en opengl quye tiene 3 valores float de 0.0 a 1.0

Perfil MP  
Objetivo: Re: Duda Libreria OpenGL
francobe escribió: [Ver mensaje]
Gracias por las respuestas, voy a leer los documentos que me recomendaron.

Sobre lo que tercoIDE me recomendó, no creo poder usarlo por lo siguiente:

Lo que estoy intentado hacer un un polígono que cambie de color cuando yo cambie los valores de las variables de RGB, y necesito 3 label en pantalla que me digan cuales son dichos valores.
Estoy haciendo esto para poder sacar los valores de los colores que yo quiero para usarlos en otro proyecto ya que estuve leyendo pero no encontré un método para poder saber cual es el valor de determinado color, por lo que me plantee dicho *programa*.
Encontré los valores en hex.o decimal pero no pude aplicarlo a las sentencia en opengl quye tiene 3 valores float de 0.0 a 1.0


El color en gambas, al igual que VB es un numero LONG, que se puede descomponer en RGB asi:

r = (Shr( colorRGB, 16) And 255) / 256
g = (Shr( colorRGB, 8) And 255) / 256
b = ( colorRGB And 255) / 256


que van de 0.0 a 1.0, si quieres que vayan de 0 a 255, simplemente elimina el /256 del final de cada linea.

Perfil MP  
Objetivo: Re: Duda Libreria OpenGL
tercoIDE" Gracias por el dato, y por lo anterior también, gracias al proyecto motor3D vi como usar el GLarea y con eso pude arreglármelas.

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.1592s (PHP: -5% SQL: 105%)
Consultas SQL: 26 - Debug off - GZIP Activado