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

Anonymous

unregistriert

1

17.03.2006, 21:10

Würfel mit Textur

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
    // Vertizes für diesen Würfel generieren  pVertices[ 0].vPosition =  tbVector3(-1.0f,  1.0f, -1.0f);

    pVertices[ 1].vPosition =  tbVector3(-1.0f,  1.0f,  1.0f);
    pVertices[ 2].vPosition =  tbVector3( 1.0f,  1.0f,  1.0f);
    pVertices[ 3].vPosition =  tbVector3( 1.0f,  1.0f, -1.0f);
    pVertices[ 4].vPosition =  tbVector3(-1.0f, -1.0f, -1.0f);
    pVertices[ 5].vPosition =  tbVector3(-1.0f, -1.0f,  1.0f);
    pVertices[ 6].vPosition =  tbVector3( 1.0f, -1.0f,  1.0f);
    pVertices[ 7].vPosition =  tbVector3( 1.0f, -1.0f, -1.0f);
    
    // Texturkoordinaten erzeugen

    pVertices[0].vTexture.u = 0.0f;
    pVertices[0].vTexture.v = 1.0f;
    pVertices[1].vTexture.u = 0.0f;
    pVertices[1].vTexture.v = 0.0f;
    pVertices[2].vTexture.u = 1.0f;
    pVertices[2].vTexture.v = 0.0f;
    pVertices[3].vTexture.u = 1.0f;
    pVertices[3].vTexture.v = 1.0f;
    
    pVertices[4].vTexture.u = 0.0f;
    pVertices[4].vTexture.v = 1.0f;
    pVertices[5].vTexture.u = 0.0f;
    pVertices[5].vTexture.v = 0.0f;
    pVertices[6].vTexture.u = 1.0f;
    pVertices[6].vTexture.v = 0.0f;
    pVertices[7].vTexture.u = 1.0f;
    pVertices[7].vTexture.v = 1.0f;

Leider sehe ich nur an 2 Seiten die Textur und an den anderen Seiten teilweise Streifen. Ich arbeite mit Index/Vertex Buffer.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

17.03.2006, 21:17

Du musst für jede Würfelseite 4 separate Vertizes erzeugen. Anders geht es, soweit ich weiß, nicht.

Anonymous

unregistriert

3

17.03.2006, 21:34

:crying:

1) Wie lassen sich die seitlichen Streifen an den restlichen 4 Seiten vermeiden??

2) Sobald ich die Farbe der Vertizes nicht setze und eine Textur drauflege, so wird die Textur nicht angezeigt (oder wenn ich als Farbe schwarz angebe). Wieso ist die Textur abhängig von der Farbgebung bzw. kann man so etwas vermeiden??

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

4

17.03.2006, 22:04

Zitat von »"David Scherfgen"«

Du musst für jede Würfelseite 4 separate Vertizes erzeugen. Anders geht es, soweit ich weiß, nicht.


also 24 Vertizes? Das würde doch Indexbuffer überflüssig machen... Ich will nix falsches sagen, bin mir aber recht sicher, dass das auch mit weniger geht (8 )

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

17.03.2006, 22:26

Mit weniger als 24 Vertizes kannst Du auf jeden Fall nicht beliebig texturieren.
In der Tat wäre der Index-Buffer dann überflüssig.

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

6

17.03.2006, 22:29

aso stimmt, an die textuierung hatte ich nicht gedacht. aber man könnte doch dann einfach ne textur machen, die genau auf den würfel passt, so dass es doch wieder mit 8 geht. is dann halt ne geschmacksfrage wie mans macht oder was dir einfacher erscheint.

7

18.03.2006, 08:32

Zitat von »"shootmaster"«



2) Sobald ich die Farbe der Vertizes nicht setze und eine Textur drauflege, so wird die Textur nicht angezeigt (oder wenn ich als Farbe schwarz angebe). Wieso ist die Textur abhängig von der Farbgebung bzw. kann man so etwas vermeiden??


Mit Texturschicht States.
Ich gebe bei der Arbeit immer 100%

6% Montags
30% Dienstags
35% Mittwochs
25% Donnerstag
4% Freitag

Anonymous

unregistriert

8

20.03.2006, 12:45

Zitat

Mit Texturschicht States
Wo müsste ich die setzen? (Kannst du mir auch sagen welche ??? )

9

20.03.2006, 13:52

Das setzt du so ähnlich wie Render - States.
Du setzt ein Texturschicht - State mit der Methode der Geräteschnittstelle SetTextureStageState. Um die Streufarbe nicht einzubeziehen musst du
flogendes schreiben:

C-/C++-Quelltext

1
2
3
4
5
6
7
g_pD3DDevice->SetTexture (0, g_pTexture1);

g_pD3DDevice->SetTextureStageState (0, D3DTSS_COLORARG1, D3DTA_TEXTURE);

g_pD3DDevice->SetTextureStageState (0, D3DTSS_COLORARG2. D3DTA_CURRENT);

g_pD3DDevice->SetTextureStageState (0, D3DTSS_COLOROP, D3DTOP_MODULATE);


So müsste es eigentlich funktionieren.

Wird auch im Kapitel 2.11 in Davids Buch behandelt.
Ich gebe bei der Arbeit immer 100%

6% Montags
30% Dienstags
35% Mittwochs
25% Donnerstag
4% Freitag

Werbeanzeige