Nabend allerseits,
Mache gerade meine ersten Schritte in PhysX (3.2.x) und bin deswegen auch seit langem mal wieder in C++ unterwegs(VisualStudio2008 Umgebung).
Wollte mich eigentlich daran versuchen ein paar Particles zu erstellen. Allerdings stoße ich dort schon auf Probleme beim setzen des Index und Position Buffers.
in der GUIDE chm von PhysX steht folgendes:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
|
// declare particle descriptor for creating new particles
// based on numNewAppParticles count and newAppParticleIndices, newAppParticlePositions arrays.
PxParticleCreationData particleCreationData;
particleCreationData.numParticles = numNewAppParticles;
particleCreationData.indexBuffer = PxStrideIterator<const PxU32>(newAppParticleIndices);
particleCreationData.positionBuffer = PxStrideIterator<const PxVec3>(newAppParticlePositions);
// create particles in *PxParticleSystem* ps
bool success = ps->createParticles(particleCreationData);
|
Also wenn ich das richtig verstanden habe, wird als IndexBuffer der Iterator auf einen Buffer übergeben, welcher alle benötigten Indices aneinander gereit beinhalten.
Und für den PositionsBuffer, fats gleich NUR: Übergebe ich hier meinen gesamten Buffer, und PhysX pickt sich über die Indices die benötigten einträge raus?
Und wie sind die Buffer declariert? Und wenn ich mich nich vertu, muss ich die ja auch noch auf 16byte alignen.
Meine zweite herausforderung:
Das ganze kommt dann bei mir in eine DLL, da ich das ganze mit dem 3dGamestudio in LIteC nutzen möchte, welches keine Klassen unterstützt. Das könnte mit dem PxVec3 Buffer etwas haarig werden -.-.
EDIT: Ok funktioniert. Nach außen hin wird jetzt einfach ein Pointer auf eine STructliste gegeben in die die positionen vorher kopiert wurden.