Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Dudas...dudas...

Iniciado por Sergio, 01 de Enero de 1970, 01:00:00 AM

« anterior - próximo »

Sergio

                                Muy buenas a todos. Queria preguntaros acerca de DX algunas cosillas.
-segun he leido en un tutorial, dicen que hay APIs de sonido mejores que DirectSound. Si lo considerais cierto, cual me recomendais??
-Esta me tiene un poco bloqueado (porque acabo de empezar con DX...), segun los tutoriales que he leido, cuando se crea el VertexBuffer (y con el IndexBuffer pasa lo mismo) se hace con un tamaño en concreto y con unos vertices ya predefinidos, entonces como lo haceis los 'pofesionales' para cargar objetos en tiempo de ejecucion??

espero que me contesteis lo antes posible, por favor. Como ya he dicho estoy "bloqueado" y le doy vueltas y nada de nada.

Venga, un saludete                                
here are only 10 types of people: those who understand binary and those who don't

DraKKaR

                                Holas, soy nuevo en este foro y voy a utilizar mi primer post para responderte por si ayudo en algo.

Sobre de ke hay APIs mejores ke DirectSound, bueno yo solo conozco OpenAL pero para mi gusto estaba bastante reducida. Ademas, creo ke si la plataforma para la ke vayas a desarrollar e Windows DirectSound es el mejor, porque será el único (conjeturo) se iontegre mejor (por eso de  pertenecer a DirectX) y el mejor ke soporte la aceleración por hardware de las tarjetas de sonido. Otra cosa es ke otra API sea mas facil de usar, ke no lo se, pero creo ke la mas adecuada para programar bajo windows seria DirectSound.

Respecto a los Vertex Buffers, pues claro que se cargan los objetos en tiempo de ejecucion, es decir, mientras el juego/programa se esta ejecutando. Es decir, en la ejecucion del juego cargas los vertices de dodne sea por ejemplo  un fichero donde esten todos los datos del modelo, especificas un tamaño para el VertexBuffer, lo rellenas de datos y ya esta preparado para ser utilizado. A continuación, en el bucle del juego lo unico ke tienes ke hacer es renderizar usando ese vertexbuffer.

A muy grandes rasgos el eskema seria algo asi:

- Cargar los datos del modelo
- Rellenar el vertexbuffer con esos datos
- [ BUCLE PRINCIPAL DEL JUEGO ]
 - Renderizar usando ese VertexBuffer
- [ FIN BUCLE ]

Es decir, lo ideal seria tener geometria estatica (ke los vertices no cambien) y asi solo tener ke setupear el vertexbuffer una vez (ya ke eso es costoso y no es plan hacerlo cada frame).


MMmm.. no se si me he explicado bien o te habre servido de mucha ayuda XDDDDDDD                                

Sergio

                                Gracias por contestar. He entendido a que te refieres, pero la duda del VertexBuffer la tengo en que habria que crear un VertexBuffer distinto para cada objeto??

Salu2                                
here are only 10 types of people: those who understand binary and those who don't

Drácula

                                Un VertexBuffer es una lista de vértices. Por tanto, si vas a dibujar muchas veces el mismo objeto en el mismo frame, puedes utilizar sólo un VertexBuffer.                                
ltimas mejoras en Merlín: Multitextura.Control y generación automática de LOD.Importa ASE y X. Frustum Clipping por BB.Render añadido de wireframe y del BB.Animaciones por interpolación.Animaciones de textura...
Actualmente:Octree y jerarquías

Sergio

                                Creo que el que no se explica soy yo xDDDD. Vamos a ver. En la mayoria de los tutoriales (del tipico triangulo), se crea un VertexBuffer con el tamaño justo para este (es decir, que quepan 3 vertices). Si yo quiero meter entonces otro objeto distinto (o crear, un cuadrado, por ejemplo), deberia crear otro VertexBuffer??
Espero que se me entienda ahora, porque yo tambien cuando quiero xDDD... ya me entendeis.
Por cierto, si cargas un objeto (en 3ds, ase, xof o lo que sea) usa el tipo de vertice que tu definas o carga un tipo automaticamente??
Ah!! Otra cosa!! (a ver si acabo de editar el mensaje xDD) Hay alguna diferencia (de funciones y eso) entre la version 8.0 y 8.1 del SDK???

Gracias igualmente por contestar.

Salu2 a to2!!!!!!!!

[ Este Mensaje fue editado por: Sergio el 2002-08-15 19:40 ]

[ Este Mensaje fue editado por: Sergio el 2002-08-15 19:46 ]                                
here are only 10 types of people: those who understand binary and those who don't

DraKKaR

                                Si kieres renderizar mallas de triangulos de "objetos" distintos si ke se deberian tener 2 vertex buffers. A no ser ke ambos "objetos" tengan la mismas "cualidades" (tienen la textura, los 2 usan iluminacion, ...", en este caso lo mas optimo seria meterlo todo dentro de un unico vertex buffer, porke siempre es mejor renderizarlo todo de golpe ke utilizar varias llamadas para renderizar.


P.D.: Porke no pudo iniciar un thraead? me sale un error muy xungo y nome deja.                                

Lord Trancos

                               
Citar
(o crear, un cuadrado, por ejemplo), deberia crear otro VertexBuffer??

Normalmente se recomienda evitar cambiar demasiadas veces de vertex buffer, asi que lo mejor es que no abuses de VertexBuffers y uses los menos posibles.

Citar
Por cierto, si cargas un objeto (en 3ds, ase, xof o lo que sea) usa el tipo de vertice que tu definas o carga un tipo automaticamente??

Que yo sepa no puedes cargar 3DS o ASE si no te lo curras tu mismo; asi que en esos dos casos funcionará conforme tu decidas. En el caso de los archivos X no se si se podra, pero siempre puedes usar ID3DXBaseMesh.CloneMeshFVF

Citar
Ah!! Otra cosa!! (a ver si acabo de editar el mensaje xDD) Hay alguna diferencia (de funciones y eso) entre la version 8.0 y 8.1 del SDK???

No se mucho acerca de los cambios entre las versiones 8.0 y 8.1, yo solo he visto que lleva mas funciones en la libreria D3DX, y mejoras en los pixel shaders; aunque supongo que algo mas habra.

                               
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.






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.