Hi,
ich bekomme das (in der Tribase integrierte) Frustum Culling einfach nicht richtig zum laufen, andauernd verschwinden bei mir Objekte die ich eigentlich sehen sollte und wenn ich den Blickwinkel wieder was ändere sind sie wieder da
...und ich frage mich ob folgende Zeilen in "tbClassifyBox_Inv"
|
Quellcode
|
1
2
3
|
// Nächsten und fernsten Punkt berechnen
tbVector3 vNearPoint(vBoxMax);
tbVector3 vFarPoint(vBoxMax);
|
nicht so lauten müssten :
|
Quellcode
|
1
2
3
|
// Nächsten und fernsten Punkt berechnen
tbVector3 vNearPoint(vBoxMax);
tbVector3 vFarPoint(vBoxMin);
|
Hier mal mein Code, ich benutze die gleichen Matrizen und Vektoren zum Rendern wie zum prüfen !!!
auch die Variablen mCamera und mProjection werden vorher richtig belegt (seh ich ja auch daran das auch diese Variablen für SetTransform genutzt werden)
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
|
tbPlane aPlane[6];
tbComputeClipPlanes(mCamera, mProjection, aPlane);
....
// Hier kommt die Schleife mit allen Objekten
if (tbBoxVisible(m_Objects.pData[i].pMod->GetBoundingBoxMin(),
m_Objects.pData[i].pMod->GetBoundingBoxMax(),
m_Objects.pData[i].mMatrix, aPlane))
{
tbDirect3D::SetTransform(D3DTS_WORLD, m_Objects.pData[i].mMatrix);
m_Objects.pData[i].pMod->Render();
....
}
|
ich find da einfach keinen Fehler.... ich poste auch gerne noch was mehr Code falls benötigt...
Hat jemand auch nur einen Tipp woran es liegen könnte ?
Oder wer benutzt auch diese Routinen und da funktioniert es einwandfrei ?