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

15.11.2005, 10:11

Problem mit Texturen und Volumentexturen

Hi,

ich wollte einfach nur eine Volumentextur PDIRECT3DVOLUMETEXTURE9 darstellen.
Das Laden ist nicht das Problem.
Nur die Darstellung.
Falls ich nicht davor eine normale PDIRECT3DTEXTURE9 verwende, wird das Rechteck in gelb dargestellt und nicht mit dem Inhalt der dds-Datei.

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
aVertex[0].vPosition = tbVector3(-1.0f, -1.0f, 0.0f);
    aVertex[1].vPosition = tbVector3(-1.0f,  1.0f, 0.0f);
    aVertex[2].vPosition = tbVector3( 1.0f, -1.0f, 0.0f);
    aVertex[3].vPosition = tbVector3( 1.0f,  1.0f, 0.0f);
    aVertex[0].vTexture = tbVector3(0.0f, 1.0f, this->passedTime * 0.25f);
    aVertex[1].vTexture = tbVector3(0.0f, 0.0f, this->passedTime * 0.25f);
    aVertex[2].vTexture = tbVector3(1.0f, 1.0f, this->passedTime * 0.25f);
    aVertex[3].vTexture = tbVector3(1.0f, 0.0f, this->passedTime * 0.25f);


    D3D.SetFVF(SVertex::dwFVF);

    D3D.SetRS(D3DRS_LIGHTING, FALSE);
    D3D.SetRS(D3DRS_ZENABLE, TRUE);
    D3D.SetRS(D3DRS_ZWRITEENABLE, FALSE);
    D3D.SetRS(D3DRS_DITHERENABLE, TRUE);
    

    D3D.SetTexture(0, this->testTexture); // falls auskommentiert wird es nicht korrekt angezeigt

    D3D.SetTexture(0, this->texture);

    D3D->DrawPrimitiveUP(
        D3DPT_TRIANGLESTRIP,
        2,
        aVertex,
        sizeof(SVertex));


Das Vertexformat

C-/C++-Quelltext

1
2
3
4
5
6
7
8
struct SVertex
{
    tbVector3           vPosition;  // Position des Vertex

    tbVector3           vTexture;   // Texturkoordinaten

    static const DWORD  dwFVF;      // Vertexformat

};

const DWORD SVertex::dwFVF = D3DFVF_XYZ | D3DFVF_TEX1 | D3DFVF_TEXCOORDSIZE3(0);


Vielen Dank im voraus

Lemming

Alter Hase

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

2

15.11.2005, 18:29

Zitat von »""«

C-/C++-Quelltext

1
2
    D3D.SetTexture(0, this->testTexture); // falls auskommentiert wird es nicht korrekt angezeigt

    D3D.SetTexture(0, this->texture);
seh ich das richtig...
du setzt zweimal textur '0';
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

3

15.11.2005, 18:58

Du siehst das richtig. Ich will es ja nicht. Nur wenn ich die obere Zeile anwende funktioniert das - und ich weiss nicht warum

Lemming

Alter Hase

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

4

15.11.2005, 19:06

jetzt versteh ich das problem...
mir ist nur ehrlich gestanden nicht ganz klar, wie es entsteht...

EDIT: biste schonma im debugger durchgegangen? guck ma nach, bei was für koordinaten der zeichnen will (falls die komplizierter aussehen als oben gezeigt). und überprüf mal rückgabe werte...
ich kann mir nich vorstellen, wie dieser fehler zu stande kommt... ergibt für mich keinen sinn
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

5

15.11.2005, 22:14

ist der Zeiger texture bei Laufzeit gültig?
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Werbeanzeige