Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





[Dudas] Para todo usuario nuevo o casi nuevo

Iniciado por Pilton88, 16 de Mayo de 2007, 11:27:13 PM

« anterior - próximo »

Pilton88

Como andan?
La intención de este post (si es que los admins deciden aprobarlo), es que quede como referencia para principiantes en tema graficos/Juegos, es decir, como Sticky o algo asi.

Obvio, que depaso me saco las dudas (La mayoria de las cosas que dire aca, son pequeñas cosas que no las tengo bien claras =))

La intencion es que gente mas experta, como EX3, Robihim (que veo que estan muy familiarizados con este tema), puedan responder enumerada mente las preguntas.

Bueno, aca comienza la lista:
1-Se suele hablar mucho de los FPS (Frames por segundo).
  Pero, ¿A que se le llama Frame o cuadro?
2-"TripleBuffer" ¿Que es?
3- Public Property Get VSync ( ) As Boolean
   Boolean -  Devuelve Verdadero si la espera de refresco vertical del monitor esta activada.
   ¿Que es la espera de refresco vertical del monitor? ¿Para que se utiliza?
4-¿Que es, y para que se usa la "Profundidad de color del modo de video"?. (Parametro Bpp por default 16, de la funcion Init del objeto DX_GFX_CLASS)
5-"RefreshRate: Refresco del modo de video en hertzios. Si se pasa como valor 0 se usa el valor por defecto del sistema."
   ¿Que es, y para que sirve el refresco de modo de video?

6-Superficie:
Citar"Una superficie es un recurso similar a un mapa de bits que contiene la información de una imagen y sus propiedades en memoria.
Las superficies son recursos que se pueden utilizar para montar una nueva imagen a partir de otras superficies o secciones de ellas (al igual que con los gráficos, solo que estos trabajan internamente con dimensiones de potencia 2), como mapas de durezas a los que leer o escribir la información de sus píxeles, guardar en disco una imagen e incluso realizar capturas de la pantalla."

Pero, ¿Pero, en que ejemplo practico de un juego lo podriamos utilizar?

7-Render Target:
Citar"Un Render Target es recurso que apunta hacia un grafico como un buffer de dibujo secundario al back buffer. Los Render Target se comportan de igual manera que el back buffer a la hora de dibujar sobre ellos ya que se usan exactamente las mismas rutinas de dibujo pudiendo aplicar los mismos efectos gráficos: transparencias, rotaciones, etc...
Un uso interesante de este sistema podría ser pintar textos mediante DRAW_Text, ya que como se explica en dicha función esta consume muchos recursos y rebaja severamente el rendimiento del programa."

¿En que otro ejemplo practico en la programacion de un juego se puede usar los Render Targets? (Me eh fijado en los tutoriales, su uso, pero quiero tener una idea de un ejemplo practico).

Ahora nos metemos en Audio y Musica:
8-
CitarInit
Inicializa el sistema de audio y música.

Public Function Init(
     hwnd As Long,
     Optional Channels As Long = 16,
     Optional Driver As Long) As Boolean
Channels
Optional. Long. Numero de canales para efectos de sonido. Por defecto esta establecido a 16. Se pueden establecer un máximo de 64 y un mínimo de 8 canales. Los canales de efectos de sonido son independientes de los dos canales disponibles para música.
Default: 16

¿Que es, y para que se usa los Channels (canales)?

No mas... esto me va a sacar la mayoria de las dudas, tanto a mi, como a cualquiera que pueda leer esto, por eso me gustaria que lo pongan como Sticky (en los posts principales).
No mas que decir, y espero opiniones.
Un abrazo, Seba.

[EX3]

No esta mal la idea, me lo apunto para engordar la seccion Apendice de la documentacion en la proxima release, aunque una cosa queria aclarar, muchas dudas que se estan planteando en este subforo son mas sobre programacion o desarrollo de juegos en general que sobre la propia libreria, agradeceria que dichas dudas se hiciesen en el foro general y no en este, mas que nada por que estan a la vista de mas gente que os podrian dar solucion a dichas dudas. Estas cuestiones que preguntas aqui seria interesante plantearlas en el foro general, por un lado por que no son cosas exclusivas de mi libreria y por que habra gente que sabra explicarlo mejor que yo (mis explicaciones a veces confunden mas :P)

Al tema:

1. FPS o cuadros por segundo. Volviendo al ejemplo de una pelicula de cine, en este un fotograma seria la unidad de imagen o paso que compone la secuencia visual que se reproduce. En un juego seria cada ciclo que ejecuta el bucle principal. Por lo tanto, la tasa de cuadros por segundo seria el numero de ciclos que se completan en un segundo.

2. Triple Buffer. (Explicacion de la Wikipedia) Generalmente cuando se trabaja programando con graficos se trabaja con dos zonas de memoria o bufferes que se van intercambiando en cada volcado de informacion a la pantalla. Mientras vuelcas la informacion del primer buffer en pantalla en la otra estas pintando. Esta tecnica se realiza para evitar el parpadeo que sucede cuando se trabaja con un solo buffer (esto lo puedes comprobar moviendo imagenes con las funciones de Visual Basic por ejemplo). El Triple Buffer es simplemente una opcion que permite el uso de 3 bufferes, lo que permite una actualizacion mas limpia pero a costa de consumir mas memoria.

3. VSync o sincronizacion vertical. Los monitores actualizan realizando barridos verticales. A la hora de volcar la informacion de la memoria en pantalla puedes o bien hacerlo directamente sin esperas (tan pronto como la memoria este lista) lo que provoca en algunos casos que se pinten algunas secciones de la pantalla antes que otras, o bien puedes realizar la espera del refresco del monitor, haciendo que la presentacion sea mas coherente y evitar que se seccione la presentacion final. Esto hara que la tasa de cuadros por segundo no sea superior a la frecuencia de actualizacion.

4. BPP (Bits por pixel) o profundidad de color. Segun el formato de color un pixel puede tener 8, 16, 24 o 32 bits de color, mientras mas bits mas informacion, lo que significa mas precision, lo que viene a ser mas calidad. (Nota: dx_lib32 siempre procesa las imagenes en memoria con un formato de 32 bits de color y de ser necesario las convierte a dicho formato)

5. Ver punto 3.

6. Superficies:
Cita de: "Piton88"Pero, ¿Pero, en que ejemplo practico de un juego lo podriamos utilizar?
En cualquier caso donde una textura no te sirva por que el tamaño no sea potencia de 2 y necesites trabajar una imagen en su tamaño real, por ejemplo, para una captura de pantalla.

7. Render Targets:
Cita de: "Piton88"¿En que otro ejemplo practico en la programacion de un juego se puede usar los Render Targets? (Me eh fijado en los tutoriales, su uso, pero quiero tener una idea de un ejemplo practico).
Un conjunto de tiles, unos creditos, etc...

8. Canales:
Cita de: "Piton88"¿Que es
Son bufferes donde se reproduce un sonido. Un buffer solo puede reproducir un sonido al mismo tiempo.
Cita de: "Piton88", y para que se usa los Channels (canales)?
Piensa, ¿como reproduces varios sonidos simultaneamente, y que podrian ser el mismo sonido inclusive (un disparo por ejemplo), usando un solo canal para reproducir? ;) El que se pueda especificar un canal es una opcion cuando no necesitas que un sonido se reproduzca repetidas veces o simultaneamente, la voz de un personaje en un dialogo por ejemplo.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Pilton88

CitarNo esta mal la idea, me lo apunto para engordar la seccion Apendice de la documentacion en la proxima release, aunque una cosa queria aclarar, muchas dudas que se estan planteando en este subforo son mas sobre programacion o desarrollo de juegos en general que sobre la propia libreria, agradeceria que dichas dudas se hiciesen en el foro general y no en este, mas que nada por que estan a la vista de mas gente que os podrian dar solucion a dichas dudas. Estas cuestiones que preguntas aqui seria interesante plantearlas en el foro general, por un lado por que no son cosas exclusivas de mi libreria y por que habra gente que sabra explicarlo mejor que yo (mis explicaciones a veces confunden mas :P)

Disculpar si soy pesado a veces. Yo ni enterado que habia un subforo para programacion en general... pero bueno, ahora lo se, y ahi arrojare dudas como esas.
Agradezco la buena onda de todos, en especial a EX3 y Robihim.
Un abrazo.
<<Sebastian>>






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.