fix uninitialized camera position in 'VR' / 'camera rendering' mode (causing broken specular reflections in VR)

use debug visualizer camera viewmatrix/projection matrix if not provided, in ER_BULLET_HARDWARE_OPENGL mode.
fix broken changeRGBAColor implementation, thanks to Laura for the report!
This commit is contained in:
erwincoumans
2017-09-12 22:14:00 -07:00
parent 9d804cfb97
commit cc9995d44b
3 changed files with 75 additions and 22 deletions

View File

@@ -64,6 +64,20 @@ SimpleCamera::~SimpleCamera()
void SimpleCamera::setVRCamera(const float viewMat[16], const float projectionMatrix[16])
{
m_data->m_enableVR = true;
b3Matrix3x3 vm;
vm.setValue(viewMat[0],viewMat[4],viewMat[8],
viewMat[1],viewMat[5],viewMat[9],
viewMat[2],viewMat[6],viewMat[10]);
b3Vector3 vp = b3MakeVector3(viewMat[12],viewMat[13],viewMat[14]);
b3Transform tr;
tr.setBasis(vm);
tr.setOrigin(vp);
b3Transform cp = tr.inverse();
m_data->m_cameraPosition = cp.getOrigin();
for (int i=0;i<16;i++)
{
m_data->m_viewMatrixVR[i] = viewMat[i];