My Bullet Configs:
Code: Select all
collisionShapes = new ObjectArrayList<CollisionShape>();
collisionConfiguration = new DefaultCollisionConfiguration();
dispatcher = new CollisionDispatcher(collisionConfiguration);
overlappingPairCache = new AxisSweep3(worldAabbMin, worldAabbMax, maxProxies);
solver = new SequentialImpulseConstraintSolver();
dynamicsWorld = new DiscreteDynamicsWorld(dispatcher, overlappingPairCache, solver, collisionConfiguration);
dynamicsWorld.setGravity(gravity);
Code: Select all
// Game Object
this.position = postion;
this.rotation = rotation;
this.scale = scale;
this.mass = mass;
// Physics Object
CollisionShape shape = new BoxShape(new Vector3f(entity.getScale().x, entity.getScale().y, entity.getScale().z));
collisionShapes.add(shape);
Transform transform = new Transform();
transform.setIdentity();
boolean isDynamic = (entity.getMass() != 0f);
Vector3f localInertia = new Vector3f(0, 0, 0);
if (isDynamic)
shape.calculateLocalInertia(entity.getMass(), localInertia);
transform.origin.set(new Vector3f(entity.getPosition().x, entity.getPosition().y, entity.getPosition().z));
DefaultMotionState myMotionState = new DefaultMotionState(transform);
RigidBodyConstructionInfo rbInfo = new RigidBodyConstructionInfo(entity.getMass(), myMotionState, shape, localInertia);
RigidBody body = new RigidBody(rbInfo);
dynamicsWorld.addRigidBody(body);
Code: Select all
dynamicsWorld.stepSimulation(1.f / 60.f, 10);
Code: Select all
// This ?
Transform trans = new Transform();
body.getMotionState().getWorldTransform(trans);
float[] openGLMatrix = new float[16];
trans.getOpenGLMatrix(openGLMatrix);
//
Vertex Shader:
Code: Select all
in vec3 position;
uniform mat4 projectionMatrix;
uniform mat4 viewMatrix;
uniform mat4 transformationMatrix;
void main(void){
vec4 worldPosition = transformationMatrix * vec4(position, 1.0);
gl_Position = projectionMatrix * viewMatrix * worldPosition;
}
Im very confused what to do with this transform data. Tryed everything but nothing worked. A picture of current system
Currently doing
Code: Select all
Transform trans = new Transform();
e.getRigidBody().getMotionState().getWorldTransform(trans);
float[] arr = new float[16];
trans.getOpenGLMatrix(arr);
entityShader.loadTransformationFloat(arr);
Boxes = pos(cam) scale(1,1,1)
Most Right Box ground but not scaling in shaders. Dont know why.
High res : https://ibb.co/neOmXa