Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-04-2017
FENIXadr FENIXadr is offline
Miembro
 
Registrado: may 2010
Ubicación: Córdoba - Cba. - Argentina
Posts: 101
Poder: 14
FENIXadr Va por buen camino
Multiples vistas en OpenGL

Hola gente del foro.. estoy haciendo un componente 3D con OpenGL y una de las caraceteristicas que quiero ponerle es la propiedad de habilitar diferentes vistas, como ser ... de frente .. arriba.. lateral.. entonces quisiera saber si hay alguna forma de hacerlo.. desde ya muchas gracias.
Responder Con Cita
  #2  
Antiguo 07-04-2017
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
No si si eso se incluiría dentro de un componente, porque en realidad el cambio de vista que comentas no es una propiedad de ese componente, sino del layout/escena que lo contiene.
Es decir, conceptualmente tu componente no cambia al cambiar la vista, si no que es otro (posición cámara).

No se si me explico...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.

Última edición por Neftali [Germán.Estévez] fecha: 07-04-2017 a las 09:44:25.
Responder Con Cita
  #3  
Antiguo 07-04-2017
FENIXadr FENIXadr is offline
Miembro
 
Registrado: may 2010
Ubicación: Córdoba - Cba. - Argentina
Posts: 101
Poder: 14
FENIXadr Va por buen camino
hola Neftali gracias por responder... si te entiendo el concepto.. el problema es que no es un componente como un TLabel por ejemplo que se puede repetir varias veces en un Form .. y de esta manera colocarlo 4 veces.. con la cámara puesta en perspectiva en uno.. de frente en otro arriba y lateral en los otros.. porque este componente trabaja directamente con el hardware de la placa de video y se generan conflictos si se pone más de una vez.. osea, en el mismo buffer hay que dibujar las 4 vistas que son de 4 cámaras diferentes... (de ahí que pensé en una propiedad que se activa o desactiva) es lo mismo que se hace con los espejos de los juegos de autos.. el problema es que no se Cómo hacerlo..
Lo que se me ocurre así rápidamente es hacer threads pero no se si se complicaría demaciado el componente..

Última edición por FENIXadr fecha: 07-04-2017 a las 12:12:37.
Responder Con Cita
  #4  
Antiguo 07-04-2017
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Usar threads sí complicaría el componente, y mucho. Es más, no sé si sería posible que un mismo backbuffer OpenGL pueda recibir comandos de diferentes hilos de ejecución. Al menos con Allegro es indispensable que el backbuffer sea creado en el mismo hilo en el que se va a utilizar, y me parece lógico que sea una limitación de OpenGL. Ten en cuenta que los comandos no son ejecutados en el procesador central sino en el procesador gráfico.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #5  
Antiguo 07-04-2017
FENIXadr FENIXadr is offline
Miembro
 
Registrado: may 2010
Ubicación: Córdoba - Cba. - Argentina
Posts: 101
Poder: 14
FENIXadr Va por buen camino
hola Ñuño... si es muy cierto es lógico que haya problemas porque se usa el unico procesador gráfico.. vi algo de threads con OpenGL pero es para juegos y la idea es que los gráficos se hagan en multitarea para poder procesar la información del juego en sí.. no habla en ningún lado de usar mas de un buffer.. si hablan de más de un contexto que creo que por ahí viene la cosa.. de todos modos lo vi muy por encima.. se veía un poco complicado por eso queria saber si se podia dibujar las vistas en el mismo buffer con el mismo contexto..
De todos modos nunca fue la idea que el buffer se escribiera desde diferentes threads.. la idea es tener un solo buffer y dibujarlo con diferentes cámaras en otros contextos.. me explico??

Última edición por FENIXadr fecha: 07-04-2017 a las 21:07:17.
Responder Con Cita
  #6  
Antiguo 10-04-2017
FENIXadr FENIXadr is offline
Miembro
 
Registrado: may 2010
Ubicación: Córdoba - Cba. - Argentina
Posts: 101
Poder: 14
FENIXadr Va por buen camino
Bueno gente.. renegando un poco he podido hacer las vistas múltiples que quería.. y todo parte de que estaba muy equivocado.. ja... por un momento pensé que no se podía poner mas de una vez el componente por conflictos con el micro de la placa de video para mostrar mas de una vista a la vez.. pero viendo una publicación de un Japones en donde activaba el contexto.. luego dibujaba y lo volvia a desactivar me llamó la atención .. hice unas pruebas y voalaaa..

Código Delphi [-]
 
  wglMakeCurrent(DC, RC);
  Draw;
  wglMakeCurrent(DC, 0);

el secreto está ahí.. Ahora puedo colocar la cantidad de componentes que desee en el mismo TForm porque el micro de la placa de video procesa un contexto y luego lo desconectamos para que procese el próximo .. aunque ahora que uno ya lo sabe parece una estupidez y lo más lógico del mundo.. en su momento no lo fue.. ja.. de todos modos no voy a desmerecer la ayuda de este señor del otro lado del planeta.. Aquí les dejo un link a su página y aunque pueden traducir lo que dice.. lo más interesante es el código en delphi que aporta..

https://tokoik.github.io/opengl/delphi.html

En mi caso, y siguiendo el concepto de Neftali, puse una propiedad "Vista" de tipo "TVista" que puede ser "viPerspectiva, viFrontal, viLateral, viSuperior" y según esta propiedad la cámara estará limitada para mostrar solamente esa vista..
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Agregar múltiples Campo de una tabla a múltiples TEdit y TdbEdit novato_erick Varios 21 21-08-2011 02:18:58
como generar ventas multiples (seleccionar multiples items) userdelphi Varios 4 30-12-2010 03:52:21
Opengl jose_2057111 Gráficos 0 14-12-2004 05:06:48
openGL ¿?¿?¿? perudelphi Gráficos 0 11-12-2004 18:10:41
OpenGL soul6301 Varios 2 01-09-2004 19:10:47


La franja horaria es GMT +2. Ahora son las 11:43:20.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi