Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Estado de los objetos

Iniciado por nsL, 08 de Octubre de 2011, 02:48:19 PM

« anterior - próximo »

nsL

Buenas!

No me acaba de quedar claro, y veo que por ahi la gente cada uno de una manera, y a ver si me podeis sacar de la duda. Voy a ser breve que mis ultimos post han sido minibiblias.

Suponed que tengo un objeto:

class Cuadrado
{
float x;
float y;
.....
}

Y tengo un vertex shader (os pongo la única linea que me interesa de él):
gl_Position = uMVPMatrix * vPosition;

donde uMVPMatrix es la matriz de transformaciones y vPosition las coordenadas del vértice.

¿En algún momento modificais el array de vértices? ¿o siempre trabajais con los vertices iniciales y aplicais las transformaciones a dichos vertices? Quiero decir, ¿en algun momento actualizais el array de vértices?

Es que estoy viendo que tengo 2 opciones.

-Usar siempre los vertices iniciales (los que defino en el momento de construccion), y cada vez que hago un setPosition, pues aplico la matriz de transformacion (glTranslate) a esos vértices.
- Cada vez que haga un setPosition, actualizo mi buffer/array de vertices (que es el que luego le paso a vPosition del shader).

Tengo la impresion de que es mejor la primera (mejor rendimiento), pero entonces siempre tengo que aplicar todas las transformaciones teniendo en cuenta los vértices iniciales.

Vamos, que mi duda es. ¿Actualizais los vertices en local, o mediante transformación de los iniciales en el shader? De ser en el segundo caso, ¿guardais de alguna manera el estado actual del objeto?

Gracias  0:-)

Un saludin!
Yo no muero hasta la muerte -

XÑA

Yo modifico los vértices si cambio el tamaño. La posición sí que viene dada por la matriz.

Es lo que hace todo el mundo. Porqué así la matriz te incluye la rotación y escalado. ;)

nsL

Ok ok tomo nota! duda resuelta

muchas gracias  ^_^
Yo no muero hasta la muerte -






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.