Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Motor Común En C#:atributos

Iniciado por Haddd, 20 de Septiembre de 2004, 01:15:45 PM

« anterior - próximo »

Haddd

 Bien, este el post para discutir el tema de los atributos. Como sabreis un mesh se compone de vértices, índices y atributos. Estos atributos están formados por materiales y texturas, actualmente.

Las clases del motor por ahora son las siguientes:

Malla -> Mesh -> mesh de D3DX.

Yo planteo utilizar una clase nueva llamada AtributosMalla(si alguien se le ocurre un nombre mejor...):


class AtributosMalla {
int NumAtributos;
Material[] materiales;
Textura[] texturas;
}


este objeto colgaría directamente de Malla, para que un mismo mesh pueda tener diferentes atributos. Aunque también he pensado que cuelgue también de Mesh, de forma que "por defecto" este objeto tenga estos atributos...

El problema está por ejemplo, en los meshes con información per pixel. Estos meshes necesitan un canal más de texturas(el mapa de normales). Podría resolverse modificando un poco:


class AtributosMalla {
int NumAtributos;
Material[] materiales;
Textura[] diffuse;
Textura[] normales;
}


Bien, esa es una aproximación, pero hay muchas. Es el momento de exponer y comentar.

Gracias a todos... (ole)  

Vicente

 Hola,

estoy en el curro esta noche miro tu rar con mas calma y te paso una cosa. Una duda así al vuelo: porque no usas colecciones tipadas en vez de arrays? Un saludo,

Vicente

CoLSoN2

 Haddd no es por molestar pero, ¿vas a crear un thread cada dos días para algún aspecto del motor? ¿no es mejor ponerlo todo en uno? O ya directamente que os creen un foro.
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

Grugnorr

 Si no vas a cambiar los elementos en ejecución, mejor un array. Si vas a leer por ejemplo de un fichero la cantidad de elementos que añadir, creas el array de ese tamaño.

Como no ando muy fresco en las meshes de D3DX, no tengo muy claro qué representa NumAtributos, si es la longitud de los arrays que tienes de Materiales y Texturas... ahorraría espacio con una propiedad que retornara la longitud de unos de esos arrays. Si no es eso...pues no sé

Volviendo a C#....aparte de mejor si lo llamas numAtributos, sabes que has declarado los 3 campos como internal?(modificador de acceso por defecto). Puede tener su sentido, por otro lado, si son públicos dentro del assembly(dll de rendering por ejemplo)y privados fuera, pero no sé.

PD: Para lo bueno y lo malo... un Atributo en C# es muy distinto que un atributo en POO y muy distinto de los atributos de las meshes  :P

PD: Si te piensas un poco el diseño, seguramente puedas tener una clase de Atributos de malla con información por pixel y otros que no, aunque en realidad sólo malgastas 32bits en una referencia nula si tratas todos como por pixel.
hat the hells!






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.