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

Shark_3D

Treue Seele

  • »Shark_3D« ist der Autor dieses Themas

Beiträge: 311

Wohnort: Hannover

Beruf: Schüler

  • Private Nachricht senden

1

06.05.2003, 16:23

Ich seh kein Dreieck?

Aslo ich hab versucht Das Dreicek ohne tribase darzustellen. Ich hab alles gemacht sehe aber nur nen blauen fullscreen kein Dreieck.
muss ich die vertices anders initialisieren als mit tribase?
ich hab die struct MYvertex genannt.

Sie beinhaltet float pos;
und DWORD color.
"Immer die doppelte Menge"
(Kaufmannsregel Nr.355 von der Lehrkassette 3)

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

06.05.2003, 16:58

Du musst schon Deinen Code posten, sonst kann ich Dir nicht helfen. Es gibt tausend Gründe, warum das nicht funktionieren könnte.

Shark_3D

Treue Seele

  • »Shark_3D« ist der Autor dieses Themas

Beiträge: 311

Wohnort: Hannover

Beruf: Schüler

  • Private Nachricht senden

3

06.05.2003, 17:02

Also er macht die Render function aber es wird halt kein DReisck gemahlt.


Also zueerts hab ich die Vertices gemacht:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
struct MyVertex
{
    float x,y,z;
    DWORD color;
    
};

MyVertex Vertex[] =
{
    {0.0f,100.0f,-3.0f,0x000000FF},
    {1.0f,-100.0f,-3.0f,0xFFFF0000},
    {-100.0f,-100.0f,-3.0f,0x00FFFFFF},
    
};



Dann in der Render Function:

Quellcode

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
HRESULT Render()
{
 
    HRESULT hResult;
    
    if(FAILED(hResult= g_pDevice->Clear(0,NULL,D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER,
                                         D3DCOLOR_XRGB(10,0,255),
                                         1.0f,0)))
    {
        MessageBox(hWnd,"B","B",MB_OK);
        ExitD3D();
    }
    
g_pDevice->BeginScene();

if(FAILED(hResult=g_pDevice->DrawPrimitiveUP(D3DPT_TRIANGLELIST,
                                   1,
                                   Vertex,
                                   sizeof(MyVertex))))

{

 ExitD3D();
}
g_pDevice->EndScene();
g_pDevice->Present(NULL,NULL,NULL,NULL);
return 0;
}


Ist bestimmt was ganz simples aber ich bin halt ein ziemlicher Anfänger :(
"Immer die doppelte Menge"
(Kaufmannsregel Nr.355 von der Lehrkassette 3)

Shark_3D

Treue Seele

  • »Shark_3D« ist der Autor dieses Themas

Beiträge: 311

Wohnort: Hannover

Beruf: Schüler

  • Private Nachricht senden

4

06.05.2003, 17:14

Wie kann ich denn prüfen ob das Dreieck im Sichtfeld ist?
"Immer die doppelte Menge"
(Kaufmannsregel Nr.355 von der Lehrkassette 3)

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

06.05.2003, 17:17

Bei Dir haben alle Vertizes die z-Koordinate -3. Das heißt, dass sie hinter der Kamera sind. Also +3 draus machen!

Shark_3D

Treue Seele

  • »Shark_3D« ist der Autor dieses Themas

Beiträge: 311

Wohnort: Hannover

Beruf: Schüler

  • Private Nachricht senden

6

06.05.2003, 17:25

Hmm das hab ich im Kopf verwechselt.Wollte eigentlich erreichen dass es weiter von der kamera weg ist.Aber vielen Dank:)

Aber irgendwie würd ich lieber für die Farben Zahlen haben also rgb Werte angeben.
Kann ich einfach anstatt DWORD color float color nehmen und dann die rgb Werte angeben.Ich habs mit D3DCOLOR versucht ist das in Ordnung?
"Immer die doppelte Menge"
(Kaufmannsregel Nr.355 von der Lehrkassette 3)

Shark_3D

Treue Seele

  • »Shark_3D« ist der Autor dieses Themas

Beiträge: 311

Wohnort: Hannover

Beruf: Schüler

  • Private Nachricht senden

7

06.05.2003, 17:32

Ist es eigentlich richtig wenn ich versuche das ganze von tribase zu lösen?
Oder sollte man das Buch anders durcharbeiten.Also ich schau mir immer die Tribase Hilfsfunktionen an und versuche dass dann selber zu machen.
Z.B die Matrizen
"Immer die doppelte Menge"
(Kaufmannsregel Nr.355 von der Lehrkassette 3)

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

8

06.05.2003, 17:46

Ja, ich denke das ist genau der richtige Ansatz! Alles selbst zu machen ist immer gut, weil man es nur dann wirklich versteht. Du brauchst nicht Zahlen wie 0xFFFF0080 zu nehmen! Du kannst das Makro D3DCOLOR_XRGB oder D3DCOLOR_RGBA verwenden. Beide erwarten Werte von 0 bis 255 für jede Farbkomponente.
Die tbColor-Klasse speichert ihre Farbkomponenten als float-Werte und hat einen Casting-Operator für DWORD, also D3DCOLOR (das ist das gleiche).

Shark_3D

Treue Seele

  • »Shark_3D« ist der Autor dieses Themas

Beiträge: 311

Wohnort: Hannover

Beruf: Schüler

  • Private Nachricht senden

9

06.05.2003, 20:00

Gut so hab ichs jetzt auch gemacht :roll: .Und nochmal Respekt vor deiner Leistung und Gratulation für ein tolles Buch :yelclap: :glueckwunsch:
"Immer die doppelte Menge"
(Kaufmannsregel Nr.355 von der Lehrkassette 3)

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

10

06.05.2003, 20:07

Danke noch einmal :)
Freut mich immer wieder, sowas zu lesen.

Werbeanzeige