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

06.11.2012, 21:27

[Xna] Terrain aus hightmap generieren funktioniert nicht so wie es sollte

hi,
ich habe auch seit längerem mal wieder ein Problem. Und zwar versuche ich ein Terrain aus einer Graustufentextur zu laden. Das funktioniert auch alles prima. Wenn ich jetzt aber mit dem Earth sculptor ein Terrain mache kommt nur müll raus. Selbst wenn ich die Heightmap, die funktioniert, im Earth Sculptor importiere und das ganze wieder exportiere, kommt so was bei raus. Ich hab mal die nötigen Bilder in den Anhang gemacht. Und hier noch mein Code

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
31
32
33
34
35
36
37
            Color[] heights = new Color[heightmap.Width * heightmap.Height];
            heightmap.GetData<Color>(heights);

            VertexPositionColor[] vertices = new VertexPositionColor[128 * 128];

            for (int z = 0; z < 128; z++)
            {
                for (int x = 0; x < 128; x++)
                {
                    
                    vertices[z * 128 + x] = new VertexPositionColor(new Vector3(x * 10.0f, heights[z * 128 + x].R, z * 10.0f), Color.Green);
                }
            }

            vertexBuffer = new VertexBuffer(GraphicsDevice, typeof(VertexPositionColor), 128 * 128, BufferUsage.WriteOnly);
            vertexBuffer.SetData<VertexPositionColor>(vertices);

            int[] indices = new int[127 * 127 * 6];
            int index = 0;

            for (int z = 0; z < 127; z++)
            {
                for (int x = 0; x < 127; x++)
                {
                    indices[index + 0] = z * 128 + x;
                    indices[index + 1] = indices[index + 0] + 128 + 1;
                    indices[index + 2] = indices[index + 0] + 128;
                    indices[index + 3] = indices[index + 0];
                    indices[index + 4] = indices[index + 0] + 1;
                    indices[index + 5] = indices[index + 0] + 128 + 1;

                    index += 6;
                }
            }

            indexBuffer = new IndexBuffer(GraphicsDevice, IndexElementSize.ThirtyTwoBits, 128 * 128 * 6, BufferUsage.WriteOnly);
            indexBuffer.SetData<int>(indices);


was mich halt so verwirrt ist, dass es mit der einen "von Hand" gezeichneten Heightmap funktioniert, und mit der exportierten nur Käse raus kommt.

Mfg Tobi

PS: sry das es 2 archive sind, aber eins ist zu groß :thumbdown:
»tobi98« hat folgende Dateien angehängt:

Zitat

Das programm, dass ich eben geschrieben hab ließ sich ohne einen einzigen Fehler kompilieren und und funktioniert so wie es soll. Das macht mir Angst, da ist was Faul

Yannic

unregistriert

2

07.11.2012, 08:13

Kann es sein, dass die importierte Heightmap größer als deine hardgecodeten Werte ist?

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

3

07.11.2012, 08:20

Kann es sein, dass die importierte Heightmap größer als deine hardgecodeten Werte ist?


Richtig, 257x257 Pixel schlägt das Dekodieren im Code, mit erwarteten 128x128 Pixeln, natürlich fehl.
@D13_Dreinig

4

07.11.2012, 16:14

:dash: klar. danke. Wraum fällt einem erst hinterher auf, was man für einen Mist gemacht hat :D

Zitat

Das programm, dass ich eben geschrieben hab ließ sich ohne einen einzigen Fehler kompilieren und und funktioniert so wie es soll. Das macht mir Angst, da ist was Faul

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

5

08.11.2012, 08:41

Und warum findet man sowas nicht in 5 Minuten mit einem Debugger? :pinch:
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

6

08.11.2012, 16:06

Weil ich ein absolutes Brett vorm Kopf hatte und im Moment viel für die Schule machen muss und nicht ganz bei der Sache war ;)

Zitat

Das programm, dass ich eben geschrieben hab ließ sich ohne einen einzigen Fehler kompilieren und und funktioniert so wie es soll. Das macht mir Angst, da ist was Faul

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

7

08.11.2012, 16:17

Hä? ?(

Du hast keine Zeit für den Debugger und lässt es dann lieber uns machen?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

FSA

Community-Fossil

  • Private Nachricht senden

8

08.11.2012, 16:45

Ich glaube er meinte eher, dass er daran nicht gedacht hat ^^

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

9

08.11.2012, 17:03

Wie kann man nicht daran denken? Das sollte immer das erste sein, was man macht, wenn man einen Bug hat. Sonst wird man als Entwickler ja nie eigenständig arbeiten können. Der Debugger ist direkt nach dem Code-Editor und Compiler das wichtigste Werkzeug überhaupt.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

10

08.11.2012, 17:11

Ich arbeite auch extrem viel mit dem Debugger und hab so auch schon viele Bugs in dem Projekt behoben. Ich war einfach nur durch die Schule nicht richtig bei der sache und übermüdet und im nachhinein könnte ich mir in meinen Arsch beißen weil ich nicht an den Debugger gedacht habe.

Zitat

Das programm, dass ich eben geschrieben hab ließ sich ohne einen einzigen Fehler kompilieren und und funktioniert so wie es soll. Das macht mir Angst, da ist was Faul

Werbeanzeige