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

13.05.2008, 16:44

Terrain mit Textur

Hallo Forum,

Ich habe es nun endlich geschaft mein Terrain zu belichten, aber nun habe ich das problem der Texturierung. Ich möchte mein terrain Texturieren, habe da nur das problehm, das ich nicht recht meiß wie ich das mache...

Ich habe nun ein Terrain:

1-2-3-4-5-6
7-8-9-a-b-c
d-f-g-h-j-k

Soweit so gut...

nun muss ich ja die positionen für die Texturen setzen, aber wie mache ich das genau, das ich nur diese 4 vertices die ich für eine textr brauche heraus bekomme?

also

1, 2, 7 und 8 ...


EDIT::::::::::

Endschulfigt, ich habe ja schon ein Thema offen wo es um texturierung geht, aber das handelt jaum entwas anderes...
Falls nicht erünscht bitte sagen, dann wirs net mehr vorkommen :)


EDIT:::::::::::::::::.

Achja es würde mir auch sehr helfen wenn ihr mir erklären könntet wie die Indices geordnet werden :)

Sind die so geordnet?

1-2-5-6
3-4-7-8

?

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

13.05.2008, 20:25

Ich habe ein wenig das Gefühl, dass du verwirrt bist.. Mach lieber etwas, wo du weisst, wies geht, anstatt dich darüber zu ärgern, dass es nicht geht und solche wirren Fragen zu stellen. Ich für meinen Teil weiss nicht so genau, was du willst..

Im übrigen solltest du die Grundlagen nochmal lesen.

Die Textur wird automatisch gelegt. Du hast ja in jedem Vertex eine Texturposition. Und wenn du jetzt renderst, wird genau die Texturposition von der aktuell gesetzten Textur genommen. Fertig. Du musst sonst nichts darüber wissen. Wenn, dann im Vornherein.

In Davids Buch wird das doch alles sehr schön, Schritt für Schritt erklärt. Auch wie das aussieht mit den Indices. Falls dir das nicht reicht und nicht glaubst, kannst du ja mal in der Doku nachschauen. Dort steht auch sehr viel über Vertex/Index usw.

EDIT:
Im übrigen hast du ja praktisch das gleiche im anderen Thread gefragt.. Schau bitte ein wenig, was du machst. Wenn man einen schlechten Tag hat, wäre man bestimmt versucht an dir den Frust los zu lassen. ;)

3

13.05.2008, 21:10

Ich möchte ja die Vertices heraus bekommen, weil ich ja die Texturpositionen setzen will, aber das habe ich schon hnbekommen, trotzdem danke!

Beiträge: 774

Beruf: Student

  • Private Nachricht senden

4

13.05.2008, 21:32

Hab jetzt schon ein paar von diesen Threads verfolgt/überfolgen ... ich will dir nicht zu nahe treten und auch nicht den Mund verbieten, aber vieleicht könnest du dich an etwas kleinerem wie z.B an einen Dreieck, dann Viereck und das (danach) jeweils mit Textur versuchen, bevor du dich an so etwas komplexes wie ein Terrain wagst?
Ich selbst mach Terrains seid über einem Jahr und weiß wovon ich spreche, auch ich habe lange davor erstmal klein angefangen ;)

5

15.05.2008, 00:31

Ich bin damit schon durch^^

Das problehm ist, das meine Textur so aussieht, wenn sie auf dem terrain ist:


(Link)


obwohl die textur eigentlch so aussieht:


(Link)


Halt ist die textur vällig verzerrt, ich habe scon alle variationen, wie ich die U und V setzen soll ausprobiert, aber es will mir einfach nicht gelingen :(

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

6

15.05.2008, 09:25

zeig doch ma den fraglichen code, das kann ne kleinigkeit sein!

7

15.05.2008, 17:51

Okay, aber ich wahne euch, der Code ist momentan seeehr unsauber! Ich bin halt gerade noch alles am ausprobieren, ich wollte jetzt nen sauberen Code schreiben, wenn ich das mit der Texturierung hinbekommen habe:

Hier ist der Code:

http://iuploads.iu.ohost.de/cpaste/show.php?code=58

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

8

15.05.2008, 19:34

das sieht so aus als würdest du einfach falsche texturkoordinaten verwenden.

9

15.05.2008, 19:57

Ja, ich weiß, bin schon alle variationen durch gegangen, aber daran liegt es anscheinent nicht. Ich vermute das ich die falschen Vertices nehme ...

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

10

16.05.2008, 11:46

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
for (int i = 0; i < (HEIGHT-1) * (WIDTH-1); i++)
{
    cv_Vertices[s_Indices[run2]].U = 1;
    cv_Vertices[s_Indices[run2]].V = 1;
    cv_Vertices[s_Indices[run2 + 1]].U = 1;
    cv_Vertices[s_Indices[run2 + 1]].V = 0;
    cv_Vertices[s_Indices[run2 + 2]].U = 0;
    cv_Vertices[s_Indices[run2 + 2]].V = 0;
    cv_Vertices[s_Indices[run2 + 3]].U = 0;
    cv_Vertices[s_Indices[run2 + 3]].V = 1;
    run2 = run2 + 4;
}


das prob dabei ist, dass du dabei vertices doppelt nimmst (du gehst über den indexbuffer). du musst das vom vertexbuffer aus amchen, etwa so:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
for(int z = 0; z < HEIGHT-1; z++)
{
    for(int x = 0; x < WIDTH-1; x++)
    {
        cv_Vertices[z * WIDTH + x].tu = 0.0f;
        cv_Vertices[z * WIDTH + x].tv = 0.0f;
        cv_Vertices[z * WIDTH + x+1].tu = 1.0f;
        cv_Vertices[z * WIDTH + x+1].tv = 0.0f;
        cv_Vertices[(z+1) * WIDTH + x].tu = 0.0f;
        cv_Vertices[(z+1) * WIDTH + x].tv = 1.0f;
        cv_Vertices[(z+1) * WIDTH + x+1].tu = 1.0f;
        cv_Vertices[(z+1) * WIDTH + x+1].tv = 1.0f;
    }
}

Werbeanzeige