Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

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.

Mostrar Mensajes Menu

Mensajes - KILE

#31
Programación gráfica / Formato de vertices - Iluminacion
01 de Enero de 1970, 01:00:00 AM
                                if( Emotion->Create( Engine ) == ERROR )
Emotion->Disappear();

X'DDDDDDDDDDDDDDD juasjuasjuas
no me habia fijado ::PPP
mu bueno nelo
X'DD
                               
#32
Programación gráfica / Sobre el formato del quake 3
01 de Enero de 1970, 01:00:00 AM
                                No es eso a lo que me refería, el formato si lo conozco bien lo que no sabía era ya internamente como almacenaba el q3radiant por ejemplo las caras a la hora de lanzarlas pero gracias de todas formas :sonriendo:
Un saludo                                
#33
General Programadores / Memory checker
01 de Enero de 1970, 01:00:00 AM
                                Tambien viene con "La biblia del Visual C++ 6.0" de Anaya :ojo:
Idem de los comentarios del post anterior :ojo:                                
#34
Programación gráfica / Sobre Shaders
01 de Enero de 1970, 01:00:00 AM
                                Hola de nuevo :riendo: pues nada aqui estamos para intentarlo
Saludos :lengua:                                
#35
Programación gráfica / Sobre el formato del quake 3
01 de Enero de 1970, 01:00:00 AM
                                Bueno, a todo esto, si alguien tiene alguna sugerencia a incluir en el formato que haya observado que otros formatos carecen y sería bueno meterla pues que lo comente :riendo:                                
#36
Programación gráfica / Sobre el formato del quake 3
01 de Enero de 1970, 01:00:00 AM
                                Buenas a todos, llevo unos dias en los que he estado haciendo muchas modificaciones en el formato de fichero de las escenas de mi motor, con el fin de poder abarcar todas las características deseables en este tipo de ficheros. Ahora mismo tengo ya una versión "estable" exportada correctamente del max y que difiere mucho de la que ya os postee hace algun tiempo. Aunque he estado mirando el formato del quake3 y tengo una gran duda sobre su estructura interna. Por lo que he podido ver, y no comprobar aun puesto q no tengo ningun editor de niveles q3, parece ser que la geometría la almacena contiguamente sin hacer reutilización de vértices O.o y es que me he quedado un poco rallado pero por lo que he traceado creo que si. Es decir si tenemos un rectangulo (formado por dos tri) en total tendríamos 4 vértices y 2 caras.
Pues bien lo óptimo sería poner:
0-----------3
|      ____/|
| ____/     |
1/__________2

ListaVertices (4 elementos): 0,1,2,3
ListaCaras (2 elementos):
  Cara1.PrimerVertice=0
  Cara1.PrimerIndice=0
  Cara2.PrimerVertice=0
  Cara2.PrimerIndice=3
ListaIndices (6 elementos): 1,3,0, 1,2,3
                           -C1--  -C2--

Pero al parecer lo que hace el quake es recorrer cada cara y por cada cara ir llenando el buffer de vértices que correspondan a esa cara, estén o no repetidos ya. Al estilo de lo siguiente:

ListaVertices (6 elementos): 1,3,0,1,2,3
ListaCaras (2 elementos):
  Cara1.PrimerVertice=0
  Cara1.PrimerIndice=0
  Cara2.PrimerVertice=3       Cara2.PrimerIndice=3
ListaIndices (6 elementos): 1,3,0, 1,2,3
                           -C1--  -C2--

Pues algo mas o menos así sería, y vamos despues de darle algunas vueltas a la chota la única idea que se me ha ocurrido es que de esta manera luego no tienes que transformarlos para meterlos en vertex buffer cuando renderices partes de la geometría de la escena ya que no tienes que recorrer la lista de vertices solamente tienes que copiar secuencias de 3 a partir del vertice inicial y secuencias tambien de 3 a partir del indice inicial.
  Si alguien sabe mas concretamente como organiza esta geometría del bsp le agradecería que me dijera si es como yo la expongo y si alguien tiene algun editor del q3 y sabe manejarlo :sonriendo:
 Pues nada un saludillo a todos y thanks :lengua:                                
#37
                                Bueno este tema no tiene nada que ver con programación pero vamos lo pongo por si alguien me puede ayudar :sonriendo:
La cuestion es que hace un tiempo me compré un placa base Asus A7V133 (Chipset via kt133) 256Mb de SDRAM PC133 y un K7 1'2Gz. Total que todo me iva bien hasta que se me jodio el micro y me lo cambie por un XP1700. Me bajé los ultimos drivers de la bios de la placa que ponia soporte para XP y los meti ynada sin problemas me lo pillaba y muy bien. Pero cuando iniciaba Windows se me reiniciaba cada dos por tres. Esto era con la configuración de multiplicador x11 y el bus a 133Mhz, sin embargo si ponia el multiplicador a x11 y el bus a 100Mhz (O sea, que fuera a 1100Gz) pues me furulaba bien. Incluso cuando pasaba el test Memtest86 (www.memtest86.com) con el bus a 100 me furulaba bien pero con el bus a 133 no. Me gustaría saber si alguien sabe que puede ser o al menos si alguien tiene este tipo de placa para ver si le daba algun tipo de fallo.
Muichas thanks :lengua:                                
#38
                                Pues nada ya me ha funcionado, :sonriendo: cogi lo borre todo y empecé desde el principio y nada ya furula :riendo: jejej si es que soy mu cutre depurando X'DD                                
#39
                                No sync no linko la .lib de ahi que sea DLL dinámica y no estática (Vamos yo llamo DLL dinámica a las que cargas en runtime y DLL estática a la que incluyes el .lib) y para hacer este tipo de cosas, interfaces de renders, plugins, etc... no se suele poner la .lib como es logico :ojo:

Un saludo                                
#40
                                En el main principal se lo paso por referencia a la dll y me lo llena bien, y luego en las libs lo pillo con extern de todas formas lo he traceado y no cambia su valor sigue siendo el mismo :triste:                                
#41
                                Perdon por la expresion X'DDD                                
#42
                                Joder pero es que no creo que sea tan dificil no?, es que no se ya si el problema es por llamar desde la librería K3DEngine a la DLL que he cargo dinamicamente o por usar un extern que al fin y al cabo es un puntero a la interfaz de render :___(
vaya mierda gorda                                
#43
                                No a ver, si desde el programa principal llamoa KSysWin32 o a K3DEngine va todo bien, SIEMPRE Y CUANDO ninguna funcion de las que llame use llamadas a la DLL que he cargado.
Por ponerte un ejemplo.
Si en el main inicializo dinamicamente la librería KRENDOGL.DLL y lleno una variable global llamada IRender *pRender que es la que implementa las funcion del render (BeginFrame, EndFrame, Draw...) el problema viene cuando desde las otras dos librería, concretamente desde la K3DEngine hago una llamada a pRender->BeginFrame() (Estando pRender declarado en esa librería como extern IRender *pRender). Si hago una llamada a K3DEngine sin que use el pRender va todo bien y si hago una llamada desde el main a pRender tambien, el problema es al llamar a la variable global pRender desde otra librería que no sea el main. Un poco lioso no? :ojo:                                
#44
                                Me cierran la academia así q os posteo lo mismo q puse en flipcode, si alguien no lo entiende lo posteo luego en español. Sorry :riendo:

Hi all, I have some problem working with static/dynamic libraries. First of all, I'm develop an engine which consist
in three different modules:

- KSysWin32: Static library that implement System dependent functions (File access, memory allocate,...)
- K3DEngine: Static library used for 3D stuff like octrees, bsp, geometry, models, ...
- KRendOGL: Dynamic Library (DLL but without generating .lib, for runtime load). That implement a render interface.

The problem is that in my first program I link this one with KSysWin32.lib K3DEngine.lib and then in runtime I load
the KRendOGL.DLL. I have one "IRender *Render" defined in main.cpp that point to the class implements in KRendOGL.dll.
And then in my K3DEngine.lib I also used this interface (Writing "extern IRender *Render"). The problem cames when I
make a call (from my main program) to a function implemented in KSysWin32.lib that use Render. For example

(main)
  Octree->Render();

(KSysWin32)
Octree::Render()
{
   Render->DrawFaces();
}


(KRendOGL.DLL)
Render::DrawFaces()
{
...
}


Appears the following error message:
"The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared
with one calling convention with a funtion pointer declared with a different calling convention"


Ah, by note, if I make the following, this run oks.

(main)
   Render->DrawFaces();

(KRendOGL.DLL)
Render::DrawFaces()
{
...
}


So the problem is to use an extern pointer to the Render interface. How I can make this one? :_(
Thanks to all                                
#45
Programación gráfica / Sobre Octrees
01 de Enero de 1970, 01:00:00 AM
                                Dracula: Si mal no me equivoco tu supones que la geometría del nivel es estática no?. Y sobre lo de crear la lista para enviarsela a la tarjeta, la creas cada vez que actualices la cámara y cambie el número de hojas visibles no? las coges la metes en un paquete y palante no?. Y luego sobre lo que comenté de que si tienes objetos moviles y kieres ordenar por cara, puede salirte más rentable hacer las transformaciones poer software tu mismo (Usando x ejemplo 3DNow2) y copiarlas al buffer de materiales correspondiente y enviandoselo todo junto no?
:sonriendo: un saludo


B3rs3rk3r: A ver si te veo por el irc que me ha pasao un colegilla un visor del quake3 que se te van a quitar las ganas de codear X'D, ponme en el notify                                





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.