Werbeanzeige
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
![]() |
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 31 32 33 34 35 36 37 38 |
// Simuliert einen Shader tbResult SimulateShader() { SVertex Vertex; tbVector3 vOldPosition = tbVector3(0.0f, 0.0f, 0.0f); float fDistance; for (unsigned int i = 0; i < g_pModel->GetVertexBuffer()->GetMaxVertices(); i++) { g_pModel->GetVertexBuffer()->GetVertex(i, &Vertex); // Entfernung zum vorherigen Vertex berechnen fDistance = tbVector3Length(Vertex.vPosition - vOldPosition); // Wenn die Entfernung gleich 0 ist, ist es der gleiche Vertex wie der Vorherige und die Position wird übernommen.Ansonsten wird die Position berechnet if (fDistance = 0.0f) { Vertex.vPosition = vOldPosition; } else { // Alte Vertex-Position speichern vOldPosition = Vertex.vPosition; // Position verändern Vertex.vPosition += tbVector3(sinf(g_f1 * fDistance + g_fTime * g_f2) * 0.1f * g_f4 * cosf(g_f1 * fDistance + g_fTime * g_f3) * g_f2, cosf(g_f1 * fDistance + g_fTime * g_f3) * 0.08f * g_f2 * sinf(g_f1 * fDistance + g_fTime * g_f4) * g_f3, sinf(g_f1 * fDistance + g_fTime * g_f4) * 0.1f * g_f3 * sinf(g_f1 * fDistance + g_fTime * g_f2) * g_f4); } g_pModel->GetVertexBuffer()->SetVertex(i, &Vertex); // Den Vertex-Buffer aktualisieren if (g_pModel->GetVertexBuffer()->Update()) return TB_ERROR; } return TB_OK; } |
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Patrick Z.« (06.06.2017, 09:09)
![]() |
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 |
// Simuliert einen Shader tbResult SimulateShader() { SVertex Vertex; for (unsigned int i = 0; i < g_pModel->GetVertexBuffer()->GetMaxVertices(); i++) { g_pModel->GetVertexBuffer()->GetVertex(i, &Vertex); // Position verändern Vertex.vPosition += tbVector3(sinf(g_f1 * Vertex.vPosition.x + Vertex.vPosition.y + Vertex.vPosition.z + g_fTime * g_f2) * 0.005f * g_f4, cosf(g_f1 * Vertex.vPosition.x + Vertex.vPosition.y + Vertex.vPosition.z + g_fTime * g_f3) * 0.005f * g_f2, sinf(g_f1 * Vertex.vPosition.x + Vertex.vPosition.y + Vertex.vPosition.z + g_fTime * g_f4) * 0.005f * g_f3); g_pModel->GetVertexBuffer()->SetVertex(i, &Vertex); } // Den Vertex-Buffer aktualisieren if (g_pModel->GetVertexBuffer()->Update()) return TB_ERROR; return TB_OK; } |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Patrick Z.« (06.06.2017, 14:42)
Werbeanzeige