Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET][Direct3D 9]Bounding box precise
Forum - C# / VB.NET - [VB.NET][Direct3D 9]Bounding box precise

Avatar
GN (Member)
Guru


Messaggi: 772
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 22:23
Lunedì, 31/10/2011
Ancora problemi con il mio gioco DirectX...
Avrei bisogno di calcolare delle bounding box un po' più precise, finora ho usato questo codice ma provando a disegnare la diagonale del rettangolo vedo che non coincide perfettamente con l'oggetto.
Codice sorgente - presumibilmente VB.NET

  1. Sub BoundingBox(ByVal corrMesh As oggX, ByRef min As Vector3, ByRef max As Vector3)
  2.         Dim descr As VertexBufferDescription = corrMesh.mesh.VertexBuffer.Description
  3.         Dim vertexData As GraphicsStream = corrMesh.mesh.VertexBuffer.Lock(0, 0, LockFlags.ReadOnly)
  4.         Geometry.ComputeBoundingBox(vertexData, corrMesh.mesh.NumberVertices, descr.VertexFormat, min, max)
  5.         corrMesh.mesh.VertexBuffer.Unlock()
  6.         Return
  7.     End Sub


Sapreste spiegarmi come calcolare queste bounding box in modo un po' più preciso? Grazie in anticipo.

PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Up
1
Down
V
Segnala al moderatore
Postato alle 17:03
Martedì, 01/11/2011
Le bounding box in DirectX (e XNA) sono sempre allineate agli assi, perciò non è possibile mantenere alcuna informazione riguarda alla rotazione dell'oggetto.

Non si possono ruotare matematicamente? - GN - 01/11/11 19:47
Sì, ma dovresti farlo tu "a mano", creando un nuovo tipo di dato e definendo tutti i metodi di conseguenza. Ruotare i punti non è difficile (basta un prodotto matriciale), però poi devi mantenere l'informazione sugli spigoli e rintracciare il volume occupano è meno banale... - Il Totem - 03/11/11 19:07
PM