Using right handed coordinate systems instead of left handed
parent
0844762eaa
commit
d7e1048b06
|
@ -49,7 +49,7 @@ void main()
|
||||||
vec2 perp = vec2(-dirA.y, dirA.x);
|
vec2 perp = vec2(-dirA.y, dirA.x);
|
||||||
vec2 miter_vec = vec2(-tangent.y, tangent.x);
|
vec2 miter_vec = vec2(-tangent.y, tangent.x);
|
||||||
dir = tangent;
|
dir = tangent;
|
||||||
len = thickness / dot(miter_vec, perp);
|
len = min (2.5 * thickness, thickness / dot(miter_vec, perp));
|
||||||
} else {
|
} else {
|
||||||
dir = dirA;
|
dir = dirA;
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,7 +94,7 @@ void main()
|
||||||
vec3 vd = -normalize(v);
|
vec3 vd = -normalize(v);
|
||||||
vec3 n = v_normal;
|
vec3 n = v_normal;
|
||||||
vec3 l = u_lightPos.xyz;
|
vec3 l = u_lightPos.xyz;
|
||||||
vec3 ld = -normalize(l);
|
vec3 ld = normalize(l);
|
||||||
|
|
||||||
vec2 lc = lit(ld, n, vd, 1.0);
|
vec2 lc = lit(ld, n, vd, 1.0);
|
||||||
|
|
||||||
|
|
|
@ -89,7 +89,7 @@ void RuntimeModuleManager::Update(float dt) {
|
||||||
UnloadModules();
|
UnloadModules();
|
||||||
|
|
||||||
// We need to sleep to make sure we load the new files
|
// We need to sleep to make sure we load the new files
|
||||||
usleep(200000);
|
usleep(300000);
|
||||||
|
|
||||||
LoadModules();
|
LoadModules();
|
||||||
}
|
}
|
||||||
|
|
|
@ -387,7 +387,7 @@ RenderState s_renderStates[RenderState::Count] = {
|
||||||
| BGFX_STATE_ALPHA_WRITE
|
| BGFX_STATE_ALPHA_WRITE
|
||||||
| BGFX_STATE_DEPTH_WRITE
|
| BGFX_STATE_DEPTH_WRITE
|
||||||
| BGFX_STATE_DEPTH_TEST_LESS
|
| BGFX_STATE_DEPTH_TEST_LESS
|
||||||
| BGFX_STATE_CULL_CCW
|
| BGFX_STATE_CULL_CW
|
||||||
| BGFX_STATE_MSAA,
|
| BGFX_STATE_MSAA,
|
||||||
0,
|
0,
|
||||||
RenderProgram(),
|
RenderProgram(),
|
||||||
|
@ -399,7 +399,7 @@ RenderState s_renderStates[RenderState::Count] = {
|
||||||
| BGFX_STATE_ALPHA_WRITE
|
| BGFX_STATE_ALPHA_WRITE
|
||||||
| BGFX_STATE_DEPTH_WRITE
|
| BGFX_STATE_DEPTH_WRITE
|
||||||
| BGFX_STATE_DEPTH_TEST_LESS
|
| BGFX_STATE_DEPTH_TEST_LESS
|
||||||
| BGFX_STATE_CULL_CCW
|
| BGFX_STATE_CULL_CW
|
||||||
| BGFX_STATE_MSAA,
|
| BGFX_STATE_MSAA,
|
||||||
0,
|
0,
|
||||||
RenderProgram(),
|
RenderProgram(),
|
||||||
|
@ -411,7 +411,7 @@ RenderState s_renderStates[RenderState::Count] = {
|
||||||
| BGFX_STATE_ALPHA_WRITE
|
| BGFX_STATE_ALPHA_WRITE
|
||||||
| BGFX_STATE_DEPTH_WRITE
|
| BGFX_STATE_DEPTH_WRITE
|
||||||
| BGFX_STATE_DEPTH_TEST_LESS
|
| BGFX_STATE_DEPTH_TEST_LESS
|
||||||
| BGFX_STATE_CULL_CCW
|
| BGFX_STATE_CULL_CW
|
||||||
| BGFX_STATE_MSAA,
|
| BGFX_STATE_MSAA,
|
||||||
0,
|
0,
|
||||||
RenderProgram(),
|
RenderProgram(),
|
||||||
|
@ -423,7 +423,7 @@ RenderState s_renderStates[RenderState::Count] = {
|
||||||
| BGFX_STATE_ALPHA_WRITE
|
| BGFX_STATE_ALPHA_WRITE
|
||||||
| BGFX_STATE_DEPTH_WRITE
|
| BGFX_STATE_DEPTH_WRITE
|
||||||
| BGFX_STATE_DEPTH_TEST_LESS
|
| BGFX_STATE_DEPTH_TEST_LESS
|
||||||
| BGFX_STATE_CULL_CCW
|
| BGFX_STATE_CULL_CW
|
||||||
| BGFX_STATE_MSAA,
|
| BGFX_STATE_MSAA,
|
||||||
0,
|
0,
|
||||||
RenderProgram(),
|
RenderProgram(),
|
||||||
|
@ -435,6 +435,7 @@ RenderState s_renderStates[RenderState::Count] = {
|
||||||
| BGFX_STATE_ALPHA_WRITE
|
| BGFX_STATE_ALPHA_WRITE
|
||||||
| BGFX_STATE_DEPTH_WRITE
|
| BGFX_STATE_DEPTH_WRITE
|
||||||
| BGFX_STATE_DEPTH_TEST_ALWAYS
|
| BGFX_STATE_DEPTH_TEST_ALWAYS
|
||||||
|
// | BGFX_STATE_PT_LINES
|
||||||
| BGFX_STATE_MSAA,
|
| BGFX_STATE_MSAA,
|
||||||
0,
|
0,
|
||||||
RenderProgram(),
|
RenderProgram(),
|
||||||
|
@ -586,10 +587,10 @@ bgfx::VertexDecl PathVertex::ms_decl;
|
||||||
// Plane
|
// Plane
|
||||||
PosNormalColorTexcoordVertex s_hplaneVertices[] =
|
PosNormalColorTexcoordVertex s_hplaneVertices[] =
|
||||||
{
|
{
|
||||||
{ -1.0f, 0.0f, 1.0f, packF4u(0.0f, -1.0f, 0.0f), packF4u(1.0f, 1.0f, 1.0f), 0.f, 0.f },
|
{ -1.0f, 0.0f, 1.0f, packF4u(0.0f, 1.0f, 0.0f), packF4u(1.0f, 1.0f, 1.0f), 0.f, 0.f },
|
||||||
{ 1.0f, 0.0f, 1.0f, packF4u(0.0f, -1.0f, 0.0f), packF4u(1.0f, 1.0f, 1.0f), 10.f, 0.f },
|
{ 1.0f, 0.0f, 1.0f, packF4u(0.0f, 1.0f, 0.0f), packF4u(1.0f, 1.0f, 1.0f), 10.f, 0.f },
|
||||||
{ -1.0f, 0.0f, -1.0f, packF4u(0.0f, -1.0f, 0.0f), packF4u(1.0f, 1.0f, 1.0f), 0.f, 10.f},
|
{ -1.0f, 0.0f, -1.0f, packF4u(0.0f, 1.0f, 0.0f), packF4u(1.0f, 1.0f, 1.0f), 0.f, 10.f},
|
||||||
{ 1.0f, 0.0f, -1.0f, packF4u(0.0f, -1.0f, 0.0f), packF4u(1.0f, 1.0f, 1.0f), 10.f, 10.f },
|
{ 1.0f, 0.0f, -1.0f, packF4u(0.0f, 1.0f, 0.0f), packF4u(1.0f, 1.0f, 1.0f), 10.f, 10.f },
|
||||||
};
|
};
|
||||||
|
|
||||||
const uint16_t s_planeIndices[] =
|
const uint16_t s_planeIndices[] =
|
||||||
|
@ -707,17 +708,18 @@ void Camera::updateMatrices() {
|
||||||
assert (width != -1.f && height != -1.f);
|
assert (width != -1.f && height != -1.f);
|
||||||
|
|
||||||
// view matrix
|
// view matrix
|
||||||
bx::mtxLookAt (mtxView, eye.data(), poi.data(), up.data());
|
bx::mtxLookAtRh (mtxView, eye.data(), poi.data(), up.data());
|
||||||
|
|
||||||
// projection matrix
|
// projection matrix
|
||||||
if (orthographic) {
|
if (orthographic) {
|
||||||
bx::mtxOrtho(mtxProj,
|
bx::mtxOrthoRh(mtxProj,
|
||||||
-width * 0.5f, width * 0.5f,
|
-width * 0.5f, width * 0.5f,
|
||||||
-height * 0.5f, height * 0.5f,
|
-height * 0.5f, height * 0.5f,
|
||||||
near, far);
|
near, far);
|
||||||
} else {
|
} else {
|
||||||
float aspect = width / height;
|
float aspect = width / height;
|
||||||
bx::mtxProj(mtxProj, fov, aspect, near, far);
|
float mtx_proj[16];
|
||||||
|
bx::mtxProjRh(mtxProj, fov, aspect, near, far);
|
||||||
}
|
}
|
||||||
|
|
||||||
// environment matrix
|
// environment matrix
|
||||||
|
@ -1253,7 +1255,7 @@ void Renderer::paintGL() {
|
||||||
at[1] = - lights[i].pos[1] + lights[i].dir[1];
|
at[1] = - lights[i].pos[1] + lights[i].dir[1];
|
||||||
at[2] = - lights[i].pos[2] + lights[i].dir[2];
|
at[2] = - lights[i].pos[2] + lights[i].dir[2];
|
||||||
|
|
||||||
bx::mtxLookAt(lights[i].mtxView, eye, at);
|
bx::mtxLookAtRh(lights[i].mtxView, eye, at);
|
||||||
|
|
||||||
lights[i].area = 20.0f;
|
lights[i].area = 20.0f;
|
||||||
lights[i].near = 0.f;
|
lights[i].near = 0.f;
|
||||||
|
@ -1261,7 +1263,7 @@ void Renderer::paintGL() {
|
||||||
|
|
||||||
// bx::mtxProj(lightProj, 20.0f, 1., 5.f, 10.0f);
|
// bx::mtxProj(lightProj, 20.0f, 1., 5.f, 10.0f);
|
||||||
|
|
||||||
bx::mtxOrtho(lights[i].mtxProj, -lights[i].area, lights[i].area, -lights[i].area, lights[i].area, lights[i].near, lights[i].far);
|
bx::mtxOrthoRh(lights[i].mtxProj, -lights[i].area, lights[i].area, -lights[i].area, lights[i].area, lights[i].near, lights[i].far);
|
||||||
|
|
||||||
// lights: shadow matrix
|
// lights: shadow matrix
|
||||||
const float sy = flipV ? 0.5f : -0.5f;
|
const float sy = flipV ? 0.5f : -0.5f;
|
||||||
|
@ -1282,7 +1284,7 @@ void Renderer::paintGL() {
|
||||||
float view[16];
|
float view[16];
|
||||||
float proj[16];
|
float proj[16];
|
||||||
bx::mtxIdentity(view);
|
bx::mtxIdentity(view);
|
||||||
bx::mtxOrtho(proj, 0.f, 1.f, 1.f, 0.f, 0.f, 100.0f);
|
bx::mtxOrthoRh(proj, 0.f, 1.f, 1.f, 0.f, 0.f, 100.0f);
|
||||||
bgfx::setViewRect(RenderState::Skybox, 0, 0, width, height);
|
bgfx::setViewRect(RenderState::Skybox, 0, 0, width, height);
|
||||||
bgfx::setViewTransform(RenderState::Skybox, view, proj);
|
bgfx::setViewTransform(RenderState::Skybox, view, proj);
|
||||||
|
|
||||||
|
@ -1307,7 +1309,7 @@ void Renderer::paintGL() {
|
||||||
bx::mtxSRT(mtxFloor
|
bx::mtxSRT(mtxFloor
|
||||||
, 10.0f, 10.0f, 10.0f
|
, 10.0f, 10.0f, 10.0f
|
||||||
, 0.0f, 0.0f, 0.0f
|
, 0.0f, 0.0f, 0.0f
|
||||||
, 0.0f, -0.001f, 0.0f
|
, 0.0f, 0.001f, 0.0f
|
||||||
);
|
);
|
||||||
|
|
||||||
float lightMtx[16];
|
float lightMtx[16];
|
||||||
|
@ -1423,8 +1425,8 @@ void Renderer::paintGL() {
|
||||||
test_path.points.push_back(Vector3f (0.f, -1.f, 0.f));
|
test_path.points.push_back(Vector3f (0.f, -1.f, 0.f));
|
||||||
test_path.points.push_back(Vector3f (1.f, -1.f, 0.f));
|
test_path.points.push_back(Vector3f (1.f, -1.f, 0.f));
|
||||||
test_path.points.push_back(Vector3f (0.f, 0.f, 0.f));
|
test_path.points.push_back(Vector3f (0.f, 0.f, 0.f));
|
||||||
test_path.points.push_back(Vector3f (1.f, 0.f, 0.f));
|
// test_path.points.push_back(Vector3f (1.f, 0.f, 0.f));
|
||||||
test_path.points.push_back(Vector3f (0.25f, -0.75f, 0.f));
|
// test_path.points.push_back(Vector3f (0.25f, -0.75f, 0.f));
|
||||||
|
|
||||||
// create an array for the actual buffer
|
// create an array for the actual buffer
|
||||||
std::vector<PathVertex> path_vertices;
|
std::vector<PathVertex> path_vertices;
|
||||||
|
|
|
@ -966,7 +966,7 @@ Mesh *createMeshFromStdVectors (
|
||||||
mesh_vb[i].m_z = vertices[i][2];
|
mesh_vb[i].m_z = vertices[i][2];
|
||||||
|
|
||||||
if (have_normals) {
|
if (have_normals) {
|
||||||
mesh_vb[i].m_normal = packF4u (-normals[i][0], -normals[i][1], -normals[i][2]);
|
mesh_vb[i].m_normal = packF4u (normals[i][0], normals[i][1], normals[i][2]);
|
||||||
} else {
|
} else {
|
||||||
mesh_vb[i].m_normal = 0;
|
mesh_vb[i].m_normal = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -144,7 +144,7 @@ void handle_mouse (struct module_state *state) {
|
||||||
gRenderer->inputState.mousedY * 0.4f,
|
gRenderer->inputState.mousedY * 0.4f,
|
||||||
right[0], right[1], right[2]);
|
right[0], right[1], right[2]);
|
||||||
Matrix33f rot_matrix_x = SimpleMath::GL::RotateMat33(
|
Matrix33f rot_matrix_x = SimpleMath::GL::RotateMat33(
|
||||||
gRenderer->inputState.mousedX * -0.4f,
|
gRenderer->inputState.mousedX * 0.4f,
|
||||||
0.f, 1.f, 0.f);
|
0.f, 1.f, 0.f);
|
||||||
poi = eye + rot_matrix_x * rot_matrix_y * view_dir;
|
poi = eye + rot_matrix_x * rot_matrix_y * view_dir;
|
||||||
|
|
||||||
|
@ -181,11 +181,11 @@ void handle_keyboard (struct module_state *state, float dt) {
|
||||||
Vector3f direction (0.f, 0.f, 0.f);
|
Vector3f direction (0.f, 0.f, 0.f);
|
||||||
|
|
||||||
if (glfwGetKey(gWindow, GLFW_KEY_W) == GLFW_PRESS) {
|
if (glfwGetKey(gWindow, GLFW_KEY_W) == GLFW_PRESS) {
|
||||||
direction += forward;
|
direction -= forward;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (glfwGetKey(gWindow, GLFW_KEY_S) == GLFW_PRESS) {
|
if (glfwGetKey(gWindow, GLFW_KEY_S) == GLFW_PRESS) {
|
||||||
direction -= forward;
|
direction += forward;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (glfwGetKey(gWindow, GLFW_KEY_D) == GLFW_PRESS) {
|
if (glfwGetKey(gWindow, GLFW_KEY_D) == GLFW_PRESS) {
|
||||||
|
@ -274,8 +274,8 @@ static void module_reload(struct module_state *state) {
|
||||||
cout << "Creating render entity ... success!" << endl;
|
cout << "Creating render entity ... success!" << endl;
|
||||||
|
|
||||||
cout << "Creating render entity mesh ..." << endl;
|
cout << "Creating render entity mesh ..." << endl;
|
||||||
state->character->entity->mesh = bgfxutils::createUVSphere (45, 45);
|
// state->character->entity->mesh = bgfxutils::createUVSphere (45, 45);
|
||||||
// state->character->entity->mesh = bgfxutils::createCuboid (1.f, 1.f, 1.f);
|
state->character->entity->mesh = bgfxutils::createCuboid (1.f, 1.f, 1.f);
|
||||||
// state->character->entity->mesh = bgfxutils::createCylinder (20);
|
// state->character->entity->mesh = bgfxutils::createCylinder (20);
|
||||||
cout << "Creating render entity mesh ... success!" << endl;
|
cout << "Creating render entity mesh ... success!" << endl;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue