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

03.09.2005, 20:45

tbLineHitsModel & tbWriteVector3ToLog

Hallo Leute.

Ich komme irgendwie nicht weiter:
folgenden Code habe ich:

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
    tbMatrix  mWorld;
    tbMatrix  mInvWorld;
    tbVector3* pvOutPos=NULL;
    tbVector3* pvOutNormal=NULL; 
    int*    piOutTriangle=NULL;
....
// Linie senkrecht nach unten

        vLot=g_vCameraPos-tbVector3(0.0f,0.0f,10.0f);
// Matrizen

        mWorld = tbMatrixTranslation(g_vCameraPos);
        mInvWorld=tbMatrixInvert(mWorld);
// Wenn Modell getroffen..

        if(tbLineHitsModel(g_vCameraPos, 
            vLot, 
            g_pCityModel, 
            mWorld, 
            mInvWorld,
            0.0f,
            pvOutPos, 
            pvOutNormal,  
            piOutTriangle))
        {
            tbWriteVector3ToLog(*pvOutPos);
        }


Und hier gibts den Fehler bei der Ausführung des Programms, wenn ich versuche den Vektor in Log zu schreiben.
Nur weis ich nicht warum ???

Vielleicht seht ihr den Fehler

Vielen Dank
Chazon

2

03.09.2005, 21:01

welchen fehler denn?
Try and Error!
MfG, schachmat

chazon

Frischling

Beiträge: 56

Wohnort: Zons

  • Private Nachricht senden

3

03.09.2005, 21:04

Sorry ich vergaß

Unbehandelte Ausnahme bei 0x1001cce6 in chazon30.exe: 0xC0000005: Zugriffsverletzung-Leseposition 0x00000010.

Anonymous

unregistriert

4

04.09.2005, 09:55

Der Fehler tritt nicht mehr auf wenn ich die Vektoren vorher mit Werten belege:

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
28
29
30
    tbMatrix  mWorld; 
    tbMatrix  mInvWorld; 
    tbVector3 pvOutPos; 
    tbVector3 pvOutNormal; 
    int    piOutTriangle; 

pvOutPos=tbVector3(0.0f,0.0f,0.0f);
pvOutNormal=tbVector3(0.0f,0.0f,0.0f);
piOutTriangle=0;
.... 
// Linie senkrecht nach unten 

        vLot=g_vOpje-tbVector3(0.0f,0.0f,10.0f); 
// Matrizen 

        vLot=g_vObjektPos-tbVector3(0.0f,100.0f,0.0f);
        vTop=g_vObjektPos+tbVector3(0.0f,100.0f,0.0f);
        mWorld = tbMatrixTranslation(g_vCameraPos);
        mInvWorld=tbMatrixInvert(mWorld);

        if(tbLineHitsModel(vTop, 
            vLot, 
            g_pCityModel, 
            mWorld, 
            mInvWorld,
            0.0f,
            &pvOutPos, 
            &pvOutNormal,  
            &piOutTriangle))
        {
            tbWriteVector3ToLog(pvOutPos);
        }

Ich denke mal , dass pvOutPos nun die Koordinaten des Schnittpunktes ergeben soll. Nur der Y-Wert ist immer identisch . Auch piOutTriangle gibt an jedem Ort den selben Wert aus.
Das kann doch nicht sein ?

Oder habe ich einen Gedankenfehler???

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

04.09.2005, 10:51

Re: tbLineHitsModel & tbWriteVector3ToLog

Zitat von »"Anonymous"«

C-/C++-Quelltext

1
2
3
4
5
6
    tbVector3* pvOutPos=NULL;
    tbVector3* pvOutNormal=NULL; 

...

    tbWriteVector3ToLog(*pvOutPos);


Siehst Du den Fehler jetzt?

chazon

Frischling

Beiträge: 56

Wohnort: Zons

  • Private Nachricht senden

6

05.09.2005, 14:29

HI

Hab ich bemerkt .
Das geht natürlich so nicht.Das war blöd ;)
Ich habs im 2. Listing anders gemacht .
Aber ich glaube ich hab da auch ein Fehler drin.

Also:

Ich möchte mein Modell auf die Oberfläche des Modells City stellen.
Das versuche ich mit tbLineHitModel().
Line ist die Senkrechte linie durch mein Modell ,
zu treffendes Modell = City (aus Beispiel 3)
Matrix =
mWorld = tbMatrixTranslation(g_vCameraPos);
Inverse=
mInvWorld=tbMatrixInvert(mWorld);

anschließend noch die Vektoren des TreffPunktes und der Normalen
sowie den Integer des Vertex

Ich habs mehrmals im Buch durchgelesen ,und mir auch die Funktion
tbLineHitsModel() angeschaut . Aber irgendwie trifft die Linie an jedem
Ort das Gleiche Dreieck ???

Anschließend soll dann das Modell um die Entfernung zum Treffpunkt verschoben werden

Werbeanzeige