Hi,

I'm trying to scale instance data individually in the vertex shader with directX and hlsl. have an input layout that takes a bool and if this is true I want to scale the instance.

The bool goes across to the shader fine but the scaling seems to be wrong.

Basically, I have a model matrix that exists in the shader but before I do:

position = mul(input.position, model); position = mul(input.position, view); position = mul(input.position, projection);

I first ask if this bool is true, if so I do:

model = mul(model, scaleMatrix);

scaleMatrix is just a simple scale matrix where the scale values are 0.5.

My problem is that it doesn't seem to be scaling the instance at it's own origin (which is what I want), it is scaling it at some other origin but I don't know why this is the case.

Any ideas?

I don't have much experience with instancing so any help would be greatly appreciated.

Thanks.