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

1

05.07.2010, 17:52

Unterschiede zwischen Blender und meinem Spiel

Hi Leute,

Ich hab mich jetzt schon so einige Zeit mit Blender beschäftigt und programmiere nun eine Art Snake, jedoch wie David Scherfgens Breakanoid nicht in 2D sondern in 3D. Dabei wollte ich erst Mal einen Rahmen für die Spielfläche modellieren, das sieht bei Blender so aus: (s.Anhang)

Wenn ich dieses Modell jetzt nach 3DS exportiere und mit dem TriBase-Model-Converter umwandele, dann sieht das, in meinem Spiel, so aus: (s.Anhang)
Irgendwie erkennt das Spiel meine Textur nicht oder zeigt etwas völlig anderes als Blender. Mit den Texturen kenn ich mich bei Blender nicht so aus, aber ich benutzte diese: (s.Anhang)

Warum macht mein Spiel nicht das was ich will?

Euer 3D-Anfänger
»3D-Anfaenger« hat folgende Bilder angehängt:
  • 0001.jpg
  • wood02.jpg
»3D-Anfaenger« hat folgende Datei angehängt:
  • Screenshot1.bmp (256,06 kB - 212 mal heruntergeladen - zuletzt: Gestern, 19:13)

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

2

05.07.2010, 18:05

ist doch in ordnung. vllt solltest du die szene besser ausleuchten.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

3

05.07.2010, 18:27

Ich finde das nicht in Ordnung. Es soll so aussehen wie bei Blender (das 1.Bild) und nicht so wie das 3.Bild.

4

05.07.2010, 18:35

Hm, das mit der Textur sollte schon besser sein. Für die Beleuchtung brauchste halt Per-Pixel lighting, wenn der Untergrund ein Quad is, und das is bei D3D9 FFP nich drinne.

5

05.07.2010, 18:37

Tschuldigung wenn ich mich nicht so auskenne. Was muss ich jetzt dagegen machen? Und was ist Per-Pixel-Lightning?
Aber wenn ich das richtig verstanden habe sollte es also doch besser aussehen, oder?

6

05.07.2010, 18:54

Die Beleuchtung ist doch erstmal nicht das Problem, sondern dass die Textur nicht da ist (es sind 3 Bilder, nicht 2)
Entweder lädts oder renderst du die Datei falsch, dafür braucht man jetzt mehr Details.
Lieber dumm fragen, als dumm bleiben!

7

05.07.2010, 19:11

So, das ist ja schon mal ein Anfang. Hier ein paar Informationen:

1. mein Effekt, den der TriBase-Model-Converter erstellt:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Dieser Effekt wurde automatisch vom TriBase-Tool ModelConverter generiert.
// Hinweis: um einen Tabulator einzufügen, drücken Sie <Strg+Tab>!

DWORDNumTextures= 1;
STRINGTexture1Filename= "wood02.jpg";
DWORDTexture1Type= 1; // 1: 2D-Textur; 2: Würfel; 3: Volumen
DWORDTexture1ColorKey= 0x00000000;
TEXTURETexture1;

TECHNIQUE T1
{
PASS P1
{
Texture[0]= <Texture1>;

// Es scheint keine Opazitätstextur zu geben!
// Wenn Sie doch eine benutzen, ändern Sie "SelectArg2" in "Modulate" um!
AlphaOp[0]= SelectArg2;
AlphaArg1[0]= Texture;
AlphaArg2[0]= Current;

// Materialeinstellungen
MaterialDiffuse= {0.945f, 0.925f, 0.910f, 0.000f};
MaterialAmbient= {0.471f, 0.463f, 0.455f, 0.000f};
MaterialEmissive= {0.000f, 0.000f, 0.000f, 0.000f};
MaterialSpecular= {0.000f, 0.000f, 0.000f, 0.000f};
MaterialPower= 0.000f;

}
}


2. Die Textur befindet sich in meinem Projektordner, müsste also eigentlich von dem Programm gefunden werden.
3. Hier wird es benutzt:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
// __________________________________________________________________
// Lädt den Spielzustand
tbResult CGame::Load()
{
    // TODO: Hier Modelle laden
    m_pGroundModel = new tbModel;
    if(m_pGroundModel->Init("Data\\SnakeGround.tbm", "Data\\")) TB_ERROR("Fehler beim Laden des Bodens!", TB_ERROR);

    return TB_OK;
}

4. Und hier:

C-/C++-Quelltext

1
2
D3D.SetTransform(D3DTS_WORLD,tbMatrixTranslation(tbVector3(0.0f,0.0f,0.0f)));
    m_pGroundModel->Render();


Es kann auch sein, dass ich bei Blender etwas falsch eingestellt habe, denke aber nicht, dass das der Fall ist. Da kann ich leider nicht alle Einzelheiten nennen...
Hoffe, dass ihr damit was anfangen könnt,

Euer 3D-Anfänger

8

05.07.2010, 19:24

Das Log wäre Interessant.

9

05.07.2010, 19:28

Hier das Log von meinem Spiel. Nichts wirklich auffallendes (für mich):

_________ __ _____
/\___ ___\ /\_\ /\ __\
\/__/\ \__/ _ __\/_/_ \ \ \_\\ ____ _____ __
\ \ \ /\`´__\ /\ \ \ \ __\ /\ __\_ /\ __\ /´__`\
\ \ \ \ \ \/ \ \ \ \ \ \_\\\ \\_\ \\ \____\ /\ __/
\ \_\ \ \_\ \ \_\ \ \____\\ \___\ \ \____\\ \____\
\/_/ \/_/ \/_/ \/____/ \/__/ \/____/ \/____/


INFO: TriBase-Engine wird initialisiert... (tribase.cpp, Zeile 86, Funktion tbInit)
INFO: Initialisierung komplett! (tribase.cpp, Zeile 104, Funktion tbInit)
INFO: Der Konfigurationsdialog wird aufgerufen... (tbconfig.cpp, Zeile 1050, Funktion tbDoConfigDialog)
INFO: Die Direct3D-Komponente wird initialisiert... (tbdirect3d.cpp, Zeile 162, Funktion tbDirect3D::Init)
INFO: Erstellen des Fensters... (tbdirect3d.cpp, Zeile 169, Funktion tbDirect3D::Init)
INFO: Initialisierung von Direct3D... (tbdirect3d.cpp, Zeile 209, Funktion tbDirect3D::Init)
INFO: Die Initialisierung der Direct3D-Komponente ist abgeschlossen! (tbdirect3d.cpp, Zeile 274, Funktion tbDirect3D::Init)
INFO: Texturmanager wurde initialisiert! (tbtexturemanager.cpp, Zeile 43, Funktion tbTextureManager::Init)
INFO: Die DirectInput-Komponente wird initialisiert... (tbdirectinput.cpp, Zeile 702, Funktion tbDirectInput::Init)
INFO: DirectInput-Schnittstelle wird generiert... (tbdirectinput.cpp, Zeile 720, Funktion tbDirectInput::Init)
INFO: Initialisierung der Maus komplett! (tbdirectinput.cpp, Zeile 662, Funktion EnumDevicesCallback)
INFO: Initialisierung der Tastatur komplett! (tbdirectinput.cpp, Zeile 656, Funktion EnumDevicesCallback)
INFO: Die DirectInput-Komponente wurde erfolgreich initialisiert! (tbdirectinput.cpp, Zeile 754, Funktion tbDirectInput::Init)
INFO: Die DirectSound-Komponente wird initialisiert... (tbdirectsound.cpp, Zeile 45, Funktion tbDirectSound::Init)
INFO: DirectSound-Schnittstelle wird generiert... (tbdirectsound.cpp, Zeile 56, Funktion tbDirectSound::Init)
INFO: Generiere primären Soundpuffer... (tbdirectsound.cpp, Zeile 67, Funktion tbDirectSound::Init)
INFO: Initialisierung des 3D-Sounds... (tbdirectsound.cpp, Zeile 106, Funktion tbDirectSound::Init)
INFO: Die DirectSound-Komponente wurde erfolgreich initialisiert! (tbdirectsound.cpp, Zeile 111, Funktion tbDirectSound::Init)
INFO: Nachrichtenschleife wird betreten... (tribase.cpp, Zeile 179, Funktion tbDoMessageLoop)
INFO: Nachrichtenschleife beendet! (tribase.cpp, Zeile 247, Funktion tbDoMessageLoop)
INFO: Die Direct3D-Komponente wurde heruntergefahren. (tbdirect3d.cpp, Zeile 313, Funktion tbDirect3D::Exit)
INFO: Die DirectInput-Komponente wurde heruntergefahren. (tbdirectinput.cpp, Zeile 784, Funktion tbDirectInput::Exit)
INFO: Die DirectSound-Komponente wurde heruntergefahren. (tbdirectsound.cpp, Zeile 128, Funktion tbDirectSound::Exit)
INFO: Der Texturmanager wurde heruntergefahren. (tbtexturemanager.cpp, Zeile 59, Funktion tbTextureManager::Exit)
INFO: TriBase-Engine wird heruntergefahren... (tribase.cpp, Zeile 113, Funktion tbExit)
INFO: Alle Speicherbereiche freigegeben! (tbmemory.cpp, Zeile 116, Funktion tbMemExit)
INFO: Herunterfahren abgeschlossen! (tribase.cpp, Zeile 149, Funktion tbExit)

Und das Log vom TriBase-Model-Converter:

_________ __ _____
/\___ ___\ /\_\ /\ __\
\/__/\ \__/ _ __\/_/_ \ \ \_\\ ____ _____ __
\ \ \ /\`´__\ /\ \ \ \ __\ /\ __\_ /\ __\ /´__`\
\ \ \ \ \ \/ \ \ \ \ \ \_\\\ \\_\ \\ \____\ /\ __/
\ \_\ \ \_\ \ \_\ \ \____\\ \___\ \ \____\\ \____\
\/_/ \/_/ \/_/ \/____/ \/__/ \/____/ \/____/


INFO: TriBase-Engine wird initialisiert... (TriBase.cpp, Zeile 86, Funktion tbInit)
INFO: Initialisierung komplett! (TriBase.cpp, Zeile 104, Funktion tbInit)
INFO: TriBase-Engine wird heruntergefahren... (TriBase.cpp, Zeile 113, Funktion tbExit)
INFO: Alle Speicherbereiche freigegeben! (tbMemory.cpp, Zeile 116, Funktion tbMemExit)
INFO: Herunterfahren abgeschlossen! (TriBase.cpp, Zeile 149, Funktion tbExit)

10

05.07.2010, 19:38

Hm, ich hab auch mal Probleme mitm 3DS Exporter von Blender gehabt. Der Exportiert die Texturen halt meistens nicht. Ich hab damals den Zwischenschritt über Wavefront(.obj) || Lightwave und Wings3D als Modeller gemacht.

Werbeanzeige