|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - Ruben3d
Páginas: 1 [2] 3 4 ... 30
26
« en: Lunes 10 de Abril de 2006, 01:17 »
Hola, conio.h aparece por compatibilidad con código antiguo desarrollado en Builder y no ha de ser empleada. Para el manejo de la consola el Platform SDK de Microsoft ofrece su propia colección de funciones: MSDN: Console FunctionsUn saludo, Ruben3d
27
« en: Lunes 10 de Abril de 2006, 01:06 »
Yo creo que si quiero usar programas de Microsoft uso Windows. Yo solía pensar así pero me di cuenta de que, al menos en el ámbito empresarial, éso no es posible. Puedes tener en tu máquina un Linux pero el estándar de documentos es el de Microsoft, guste o no, y no siempre pueden abrirse con KOffice u OpenOffice.org. Un ejemplo claro es la gestión de proyectos, donde se emplea por lo general MS Project y no existe una alternativa libre que lo pueda sustituir (y creeme que he probado las que se encuentran en un estado más avanzado de madurez). Un saludo, Ruben3d
28
« en: Lunes 10 de Abril de 2006, 00:56 »
alguien sabe como hacer lo mismo pero con Directx Deberías realizar esa pregunta en el foro de DirectX y, a modo de ampliación/aclaración, enlazar esta discusión. Un saludo, Ruben3d
29
« en: Lunes 10 de Abril de 2006, 00:55 »
Estoy programando con Builder y resulta que incluyo la cabecera glext.h, pero a la hora del linkado, el apañao de builder me dice que no puede enlazar con la "EXTERNAL REFERENCE". Como se soluciona eso para que compile y linke bien? Es normal. Esas funciones no están definidas en las librerías que usa Builder o cualquier otro linkador. Has de declarar un puntero a ellas y obtenerlas con la función adecuada, que te retornará un puntero a la función (todo en tiempo de ejecución, no en tiempo de compilación/enlazado). Cómo hacerlo lo tienes en el primer link que te pasé: Información básica sobre extensiones y cómo cargarlas: http://www.opengl.org/resources/faq/technical/extensions.htm
Un saludo, Ruben3d
30
« en: Viernes 31 de Marzo de 2006, 00:43 »
Hola, Esa función que mencionas no está en gl.h sino que es una extensión. Las extensiones están definidas en glext.h, cuya última versión puede descargarse de la web de SGI, y permiten usar funcionalidades ampliadas que se implementaron en los drivers tras la especificación de la versión que tengas (la que acompaña a Windows es OpenGL 1.1, ya un tanto antigua). Algunos links que te ayudarán: Información básica sobre extensiones y cómo cargarlas: http://www.opengl.org/resources/faq/technical/extensions.htmEspecificación de la extensión que quieres emplear, GL_EXT_pixel_buffer_object, con algunos ejemplos al final: http://www.nvidia.com/dev_content/nvopengl...ffer_object.txtUn saludo, Ruben3d
31
« en: Jueves 16 de Marzo de 2006, 01:20 »
Hola, Tal vez tengas algún error en el código, pero eso sería cuestión de poder verlo. De todas formas te pongo el link a una aplicación que emplea esas funciones para aplicar una serie de filtros simples a una escena 3D: OpenGL Demo 1 with Realtime/FX. Un saludo, Ruben3d
32
« en: Jueves 16 de Marzo de 2006, 01:14 »
Hola, Como bien dice Perla_kiko el formato ASE es ASCII y muy sencillito. De todas formas, si andas apurado de tiempo o simplemente no te quieres complicar mucho, tienes un cargador en Java aqui: http://home.no.net/tabusd/main.php. No tienes más que portar el código al lenguaje que emplees (o dejarlo en Java si es el que utilizas). Un saludo, Ruben3d
33
« en: Jueves 16 de Marzo de 2006, 01:05 »
Hola.
Las unidades de 3D Studio MAX exportadas en ASE, al igual que las internas de OpenGL, carecen de unidad de medida. Son, simplemente, unidades. Es deber del usuario decidir si van a representar metros, centímetros, kilómetros o lo que se quiera, y escalar los modelos en función a ésto.
Un saludo,
Ruben3d
34
« en: Lunes 6 de Marzo de 2006, 00:42 »
Creo que decir "Alguna vez" es decir poco Mi época más prolífica en cuanto a juegos terminados fue cuando programaba en Basic en mi Spectrum, donde tendré un par de docenas de juegos/aplicaciones terminadas (me forzaba a acabarlas, pues como se grababan en cinta una a continuación de otra no podía dejar los proyectos para más tarde y empezar otros). Por otro lado, ya en épocas más recientes, terminé un jueguecillo de encontrar diferencias entre parejas de fotos en VB5, una recreación del juego Asteroids con OpenGL y un juego de acción/rpg isométrico para PocketPC. Fuera de éso todo lo que tengo son proyectos a medias, o aplicaciones relacionadas con gráficos que no son juegos (tengo varias que surgieron de engines inacabados para juegos específicos). No lo veo mal, soy de los que disfrutan diseñando la arquitectura y las piezas grandes y conectando todo entre sí, así que pierdo el interés cuando de lo que se trata es de emplear el framework/engine que he realizado para realizar un juego concreto (en el juego isométrico que he mencionado me encargué exclusivamente del código del engine, del juego en sí y de los compiladores de definiciones y mapas, dejando los gráficos, los sonidos y la realización de los mapas a un amigo. Además, el tiempo en el que tuve que desarrollarlo fue tan escaso que no me dió tiempo a aburrirme ). Un saludo, Ruben3d
35
« en: Lunes 27 de Febrero de 2006, 23:15 »
36
« en: Jueves 23 de Febrero de 2006, 00:23 »
Hola. Intuitivamente diría que no restaurando la matriz entre el dibujado del planeta y de la luna debería solucionar el problema, es decir, eliminando estas dos líneas: glPopMatrix(); glPushMatrix(); //fijamos la matriz
Un saludo, Ruben3d
37
« en: Viernes 10 de Febrero de 2006, 00:16 »
Un pequeño inciso fuera de tema, para hacer una pequeña aclaración. Longhorn ya lo quitaron, lo cambiaron por "Vienna". Windows Codename Longhorn era (y es) el nombre interno de Windows 6.0, ó Windows Vista (nombre comercial), al igual que Windows Chicago era el nombre de Windows 4.0, ó más conocido comercialmente por Windows 95, y así con Cairo (NT 4.0), Memphis (98), Whistler (XP) y un sin fin más. Se pueden encontrar la mayoría en http://en.wikipedia.org/wiki/Microsoft_codenames. Un saludo, Ruben3d
38
« en: Martes 7 de Febrero de 2006, 02:29 »
Igual repito que no hay ningun compilador tan util para Windows como VC++ que tambien esta disponible para Windows CE y Windows XP Embedded. Ademas de ser gratuito no como los que nombras sirve para cualquier proyecto de Windows, logicamente por ser del mismo fabricante que el Sistema Operativo. Para cualquier proyecto de Windows sirve también, por ejemplo, MinGW (código libre), pues está acompañado de las liberías en formato .a de win32 (con las mismas funciones que las que vienen con VC++). Adicionalmente, cumple mejor el estándar y facilita que el código sea multiplataforma (exceptuando la parte dependiente). Desarrollo sitemas que han de ejecutarse sobre MS Windows y uLinux y muchas veces me he encontrado con problemas de compilación en gcc, debido a que escribí el código en VC++ y me permitió cometer errores que no pasa por alto gcc. Y al revés, he tenido problemas a la hora de compilar códigos enrevesados (sintácticamente hablando) en VC++ que no he tenido en gcc, asegurandome que el código era correcto según el libro de Stroustrup, y verme obligado a realizar rodeos para poder compilar la versión para Windows. Por otro lado, si mal no recuerdo, el VC++ sólo permite código nativo para win32 y .NET, que también vale para embebidos (PocketPC [WCE] y demás de la familia). Si quieres desarrollar código nativo para un PocketPC has de descargar otro diferente, el eMbedded Visual C++ 4. Sinceramente, es un maldito infierno (lo digo con conocimiento de causa, tras tener que desarrollar una aplicación en tiempo real para PocketPC en un tiempo récord, en el que más de la mitad se gastó por culpa de fallos del entorno, las librerías y la documentación). Ahora bien, que del IDE VC++ no me puedo quejar: para Windows es el mejor que hay para C++. Además, si tengo que realizar una aplicación .NET no dudo en emplearlo (ofrece una excelente integración entre estas tecnologías). Adicionalmente, lo he empleado con el compilador cruzado para Symbian, aunque al final me decanté por Eclipse Platform (para crear aplicaciones que no requieran editor de formularios es lo mejor que hay en Java, y con plugins se puede ampliar a C++ con MinGW ó GCC, aunque el soporte ya no es tan bueno te ofrece una buena integración con CVS). Como última reflexión sobre ese tema concreto: ¿existe algún IDE gratuito que permita emplear el compilador de MS por separado (la versión que se puede descargar gratuitamente)? No lo he conseguido hacer funcionar ni con Eclipse ni con Dev-C++, principalmente por diferencias en los parámetros del compilador y la sintaxis de sus Make. Veo que soporta export desde 2003, cinco años despues del lanzamiento del standard, mientras que otros como GCC o VC++ no lo hacen y probablemente jamas lo hagan, tal vez eso tenga una razon de ser ... En GCC está proyectado darle soporte, aunque no entraba en su roadmap para la rama 4.x, que está centrada en la optimización y reducción del código. Tal vez en 5.0, aunque su implementación no es trivial. En VC++ no creo que lo hagan ni ahora ni nunca, simplemente porque: </li>- 1. Aunque sea parte del estándar, ya sabemos lo que eso le importa a Microsoft (sin ánimo de calentar los ánimos, a las pruebas me remito: doc vs. OpenDocument Format, IE7 sin cumplir CSS 2, añaden extensiones propias a cualquier estándar y lo rompen, etc).
</li> - 2. Microsoft quiere dejar de lado los antiguos lenguajes sin recolección de memoria automática, y promocionar su plataforma .NET (en especial C#, porque es la única posibilidad que tiene de que Java no le coma terreno por velocidad de desarrollo y robustez de aplicaciones).
</li> El otro compilador que nombras realmente no lo escuche nombrar JAMAS Poco me dice eso: A día de hoy conozco a gente en el sector de la informática (en concreto, desarrolladores) que no te sabrían decir qué son términos como WebLogic ó Struts (desarrolladores web), dynamic_cast (me ha pasado con un desarrollador de C++), Eclipse Platform (con varios desarrolladores de Java!). Suele ser gente que se centra en lo que sabe y no sale de ahí. Los casos más graves los he visto en desarrolladores de aplicacioens de gestión con VS (principalmente VB), donde están obcecados con su visión lineal de tecnologías Microsoft, y de ahí no salen (Microsoft ha inventado las ventanas, el internet, se podría decir que los ordenadores, IM=MSN Messenger, explorador=IExplorer, correo=Hotmail, etc). Disclaimer: No todos los desarrolladores de VB son así, simplemente me estoy refiriendo a unos casos concretos que me he encontrado, pero que ha coincidido con que están concentrados en ese campo. No existe mejor compilador, cada cual tiene objetivos bien definidos y no es difícil saber cual es el que necesitas. Ésto es una verdad como un templo y no podría estar más de acuerdo. Vaya, parece que me he esplayado bien. La idea general que he querido transmitir es lo que dice la cita de Amilius: cada uno destaca en un campo. Y, en concreto, que la solución de Microsoft, a pesar de su IDE dicharachero, no es la panacea de los compiladores en cuanto te sales de sus tecnologías .NET, pero difícil será cambiar la opinión de la gente mientras la idea general sea que IDE y compilador son sinónimos. Un saludo, Ruben3d
39
« en: Sábado 4 de Febrero de 2006, 14:11 »
Hola. Asumiendo que hablamos sólo del compilador, no del IDE, y restringiendo a Windows, los mejores son, sin lugar a dudas, el Intel C++ Compiler y el Comeau C/C++ compiler. ¿Por qué dos? Porque cada uno destaca en un campo. El primero de ellos, de Intel, ofrece la mejor optimización del código, muy por delante de los compiladores de Borland o Microsoft. Adicionalmente, está disponible para Windows CE y Linux. El segundo de ellos, de Comeau Computing, lo podría calificar como El Compilador de C++. Es el único que cumple con los últimos estándares de C++ por completo, sin dejarse nada en el tintero. Microsoft, por ejemplo, está muy por detrás en este aspecto (es fácil de probar: no hay más que intentar definir la implementación de un template fuera del fichero de cabecera, en un cpp, usando la palabra reservada export, y se comprobará el fallo del compilador, incluso hasta en el último VS2005). Adicionalmente, este compilador se encuentra disponible para numerosas plataformas diferentes. Los otros que se han mencionado en las anteriores respuestas no están mal, pero no superan a los aquí descritos. Sin embargo, tienen el valor añadido de disponer de un buen IDE que hace que la gente descuide informarse sobre la calidad del compilador en favor de la calidad del IDE (la idea equivocada que tiene mucha gente de que la calidad del compilador es directamente proporcional a la calidad del IDE o, incluso, no son capaces de diferenciar entre estos dos elementos y piensan que van ligados: Dev-C++ no es un compilador, es un IDE que compila con MinGW). Espero que te sirva de orientación. Un saludo, Ruben3d
40
« en: Sábado 4 de Febrero de 2006, 13:38 »
Hola. Aquí puedes encontrar mucha información sobre la especificación del formato de los archivos 3ds: http://www.wotsit.org/search.asp?s=3dSi bien muchas veces esos documentos están acompañados de ejemplos en C el tener la especificación y comprenderla bien debería ser suficiente para que pudieras programar un cargador en cualquier lenguaje. Si lo que buscas es el código ya hecho de otra persona que lo haga por ti en VB de manera que no tengas por qué saber la estructura interna de un 3ds lo vas a tener más difícil. Un saludo, Ruben3d PD: Esta duda nada tiene que ver con OpenGL. Trata de la especificación y carga de un formato gráfico 3d. La muevo a Programación de Videojuegos.
42
« en: Martes 31 de Enero de 2006, 00:33 »
Los archivos de script de Windows no ofrecen tantas posibilidades como los de Linux/Unix. Se pueden suplir estas carencias instalando Cygwin y añadiendo su directorio bin al path, para poder disfrutar de todos los comandos que de otra manera sólo serían accesibles desde Linux.
Un saludo,
Ruben3d
43
« en: Lunes 30 de Enero de 2006, 21:01 »
Hola.
A mi, a priori, se me ocurren tres métodos para manejar eventos, que pueden combinarse entre ellos.
El primero sería siguiendo puramente el MVC (que viene a ser el que has mencionado). Se tiene una clase que hace de controlador entre los eventos generados por el sistema operativo (vista) y las clases que necesitan ser notificadas mediante listeners para realizar las acciones pertinentes (modelo). Yo particularmente hago un wrapper de la parte dependiente del sistema que genera eventos independientes del sistema que son pasados al controlador de eventos de entrada (otro tipo de eventos pueden ser pasados a otras clases). Éste, a su vez, los notifica a los listeners que tenga registrados.
Por otro lado, puedes emular un sistema de recogida de eventos por polling de mensajes al estilo Windows o X11, en el que tu clase controladora pasa a encolar los eventos recibidos del sistema de manera abstracta, y las clases que quieren manipular esos eventos piden los que existan encolados.
También existe la posibilidad de mantener un vector con el estado de cada tecla y los últimos datos con respecto al ratón, y acceder desde cualquier parte para consultar su estado. Viene bien para comprobar el estado de algunas teclas como Shift, aunque puede ser sustituido igualmente por el primer caso y un buen diseño.
Particularmente prefiero el primer método, aunque una combinación con el segundo es muy útil en ciertos casos: cuando se quieren conocer eventos asíncronos de manera síncrona. Por ejemplo, cuando se recibe una señal, otro proceso envía un mensaje, un hilo notifica alguna acción, etc. En estos casos, en vez de interrumpir el flujo del programa, se encolan para poder ser leídos cuando corresponda. Una variación sería llamar a listeners para notificar los eventos que se hayan acumulado en la cola durante el último ciclo, para poder mantener un esquema de funcionamiento reactivo uniforme.
Lo más importante es mantener un nivel de abstracción por encima del sistema operativo subyacente, de manera que todo el código que se construya por encima sea independiente de plataforma, ya se estén manejando los eventos por DirectInput, Platform SDK, X11 o lo que sea.
Espero que te haya aclarado algo esta cuestión.
Un saludo,
Ruben3d
editado: Para el manejo genérico de eventos de cualquier tipo he desarrollado una serie de clases reutilizables que se pueden aplicar a casi cualquier contexto, aunque su diseño está íntimamente ligado a características del lenguaje en el que están implementadas. Si desarrollas en C++ te las dejo aqui.
44
« en: Lunes 30 de Enero de 2006, 20:42 »
Hola. Según parece estás utilizando la versión utf-16 de las funciones, y le estás pasando una cadena de texto normal y corriente. Prueba a utilizar la misma función pero quitandole la W del final (supongo que debería de existir, pero no lo recuerdo), o bien convirtiendo la cadena de texto que le pasas a unicode. Aqui tienes un par de funciones que hice hace tiempo para PocketPC que te deberían valer: #include <windows.h> wchar_t *char2wchar(const char *string) { static wchar_t buffer[256]; memset(buffer, '\0', 256 * sizeof(wchar_t)); mbstowcs(buffer, string, (strlen(string) > 255) ? 255 : strlen(string)); return buffer; } char *wchar2char(const wchar_t *string) { static char buffer[256]; memset(buffer, '\0', 256 * sizeof(char)); wcstombs(buffer, string, (wcslen(string) > 255) ? 255 : wcslen(string)); return buffer; }
Un saludo, Ruben3d
45
« en: Martes 24 de Enero de 2006, 23:09 »
Se me acaba de ocurrir: Si Newton está en C puede ser que el error de enlazado sea debido a que enlazas como C++. Comprueba esa posibilidad.
Un saludo,
Ruben3d
46
« en: Martes 24 de Enero de 2006, 00:14 »
Hola. Por los errores da la impresión de que no estás enlazando todas las librerías necesarias, aunque parece que sí que lo haces según describes. No he tenido ninguna experiencia con Newton, pero he probado ODE y han compilado tanto la librería como los ejemplos sin problemas en win32. Un saludo, Ruben3d
47
« en: Domingo 22 de Enero de 2006, 21:45 »
Prueba a plantear también tus dudas sobre Kylix en los foros de Delphi y de Linux, para maximizar las posibilidades de una respuesta.
Un saludo,
Ruben3d
48
« en: Jueves 19 de Enero de 2006, 20:47 »
pero no es de código totalmente abierto, ya que utiliza algunas librerias que no son Open Source Creo que te estás refiriendo a la librería de Widgets, Qt de Trolltech. Esta librería SÍ es de código abierto. Ahora bien, la licencia es, por lo general, comercial. Sin embargo, si se trata de un proyecto bajo licencia GNU/GPL sin ánimo comercial se puede aplicar esta misma licencia a Qt. De hecho, si accedes al SVN de KDE podrás encontrar el módulo qt-copy que no es nada más y nada menos que los fuentes de la versión de Qt que se está empleando para esa versión de KDE. El que Qt se haya de licenciar para aplicaciones comerciales (por ejemplo Skype e IntelliJ) hace que la compañía que la respalda invierta mucho tiempo y dinero en su desarrollo, obteniendose un producto de gran calidad. En cambio GTK, la librería de Widgets de Gnome, sigue un desarrollo llevado por la comunidad, lo que conlleva que no ofrezca todas las posibilidades de su principal competidora por no poder seguir un ciclo de vida tan rápido (no hay más que echarle un vistazo a la documentación de una y otra). Un saludo, Ruben3d
49
« en: Miércoles 18 de Enero de 2006, 22:20 »
KDE es más para principiantes, Gnome no. <sarcasmo>Sí, por eso Ubuntu viene con Gnome.</sarcasmo>
Páginas: 1 [2] 3 4 ... 30
|
|
|