Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Black-Panther

Alter Hase

  • »Black-Panther« ist der Autor dieses Themas

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

1

16.06.2006, 11:56

ms3d Specs

Hi!

Ich bin gerade dabei einen Loader für ms3d zu schreiben... Nur bin ich jetzt auf ein Problem gestoßen... Ich find die Texture-Coordinaten nicht! Welche sind es!?
Außerdem kann es sein, dass es keine Bone-Weights gibt?! Habe nämlich nur den BoneIndex gefunden!

Nach diesen Problem hab ich ein Weilchen im Inet herumgescuht (nach ms3d-Format-Specs), und auch viel gefunden... doch alle unterscheiden sich, und ich weiß jetzt nicht, welche die richtigen bzw. die aktuellen sind (datum steht nicht dabei!).
Wisst ihr, wo ich einen guten Loader downloadn kann, oder wo ich die aktuellen Format-Specs herbekomme?
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

big_muff

Alter Hase

Beiträge: 460

Wohnort: Schweiz

Beruf: Informatikstudent (4. Semester)

  • Private Nachricht senden

2

16.06.2006, 12:02

du hast doch sicher das MilkShape SDK.
Dann geh in das Verzeichnis in das du das SDK installiert hast, dann in den Ordner 'msLib' und öffne dann die 'msLib.h'. Da stehen afaik alle Funktionen und so drin. Bei mir steht da zum Beispiel:

C-/C++-Quelltext

1
2
MSLIB_API void msVertex_SetTexCoords (msVertex* pVertex, msVec2 st);
MSLIB_API void msVertex_GetTexCoords (msVertex* pVertex, msVec2 st);

oder

C-/C++-Quelltext

1
2
MSLIB_API int msVertexEx_SetBoneWeights (msVertexEx* pVertex, int nIndex, int nWeight);
MSLIB_API int msVertexEx_GetBoneWeights (msVertexEx* pVertex, int nIndex);

;)

EDIT: Hm, ich glaube ich habe dich falsch verstanden. Ich dachte du willst ein Format in das Programm MilkShape 3D laden, aber ich glaube jetzt du willst ein ms3d-Dateiformat in dein Programm laden. In diesem Falle lad dir das MilkShape-SDK runter, da ist ein Ordner (ms3dsdk/specs/) drauf wo alles drinstehen sollte was du zu wissen brauchst.
Nur Idioten halten Ordnung, ein Genie beherrscht das Chaos.[size=7]

[/size]HardFate - Ein Start, Ein Ziel, Viele Wege[size=7]

[/size]Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.

Black-Panther

Alter Hase

  • »Black-Panther« ist der Autor dieses Themas

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

3

16.06.2006, 14:41

Super danke!
Das hat mir jetzt echt geholfen! :D
BoneWeight usw hab ich gefunden...

Leider aber nicht die Texture-Koordinaten...
und außerdem hab ich noch nicht verstanden was dieser s und t Vektor sein soll:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
typedef struct
{
    word    flags;                                      // SELECTED | SELECTED2 | HIDDEN

    word    vertexIndices[3];                           //

    float   vertexNormals[3][3];                        //

    float   s[3];                                       // << DIESE DA!

    float   t[3];                                       //

    byte    smoothingGroup;                             // 1 - 32

    byte    groupIndex;                                 //

} ms3d_triangle_t;


Sind das in irgendeiner Form Tex-Coords?
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

big_muff

Alter Hase

Beiträge: 460

Wohnort: Schweiz

Beruf: Informatikstudent (4. Semester)

  • Private Nachricht senden

4

16.06.2006, 14:58

Ich habe die Textur-Koordinaten auch nirgens gefunden.
Vielleicht sind s und t die Texturkoordinaten.
Versuch doch mal ein kleines Modell zu speichern und dann diese Werte per MessageBox auszugeben, dann wirst du schnell sehen, ob das die Texturkoordinaten sind...
Nur Idioten halten Ordnung, ein Genie beherrscht das Chaos.[size=7]

[/size]HardFate - Ein Start, Ein Ziel, Viele Wege[size=7]

[/size]Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

16.06.2006, 15:10

ms3d speichert die texturkoordinaten nicht per vertex sonder per triangle.

s und t entsprechen den u und v koordinaten der vertices 0, 1, 2 des dreiecks.

Black-Panther

Alter Hase

  • »Black-Panther« ist der Autor dieses Themas

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

6

16.06.2006, 17:41

hmmm... Demnach sind 3 2D-Vektoren in 2 3D-Vektoren gespeichert?
Also

s = (u0, v0, u1);
t = (v1, u2, v2);

Richtig so?
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

big_muff

Alter Hase

Beiträge: 460

Wohnort: Schweiz

Beruf: Informatikstudent (4. Semester)

  • Private Nachricht senden

7

16.06.2006, 17:54

eher

s = (u0, u1, u2)
t = (v1, v2, v3)
Nur Idioten halten Ordnung, ein Genie beherrscht das Chaos.[size=7]

[/size]HardFate - Ein Start, Ein Ziel, Viele Wege[size=7]

[/size]Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

18.06.2006, 18:08

richtig.

z.b. in opengl kreisen ist es üblich anstatt u und v s und t zu verwenden (wobei die opengl t koordinate afaik von links unten nach oben zeigt, also anders rum als u in d3d)

die ms3d s und t koordinaten stimmen aber so wie sie sind mit den d3d u und v koordinaten überein...

Werbeanzeige