|
|
@ -52,14 +52,12 @@ int main(void) |
|
|
|
|
|
|
|
model.materials[0] = LoadMaterialPBR((Color){ 255, 255, 255, 255 }, 1.0f, 1.0f); |
|
|
|
|
|
|
|
// Define lights attributes |
|
|
|
// NOTE: Shader is passed to every light on creation to define shader bindings internally |
|
|
|
Light lights[MAX_LIGHTS] = { |
|
|
|
CreateLight(LIGHT_POINT, (Vector3){ LIGHT_DISTANCE, LIGHT_HEIGHT, 0.0f }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 255, 0, 0, 255 }, model.materials[0].shader), |
|
|
|
CreateLight(LIGHT_POINT, (Vector3){ 0.0f, LIGHT_HEIGHT, LIGHT_DISTANCE }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 0, 255, 0, 255 }, model.materials[0].shader), |
|
|
|
CreateLight(LIGHT_POINT, (Vector3){ -LIGHT_DISTANCE, LIGHT_HEIGHT, 0.0f }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 0, 0, 255, 255 }, model.materials[0].shader), |
|
|
|
CreateLight(LIGHT_DIRECTIONAL, (Vector3){ 0.0f, LIGHT_HEIGHT*2.0f, -LIGHT_DISTANCE }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 255, 0, 255, 255 }, model.materials[0].shader) |
|
|
|
}; |
|
|
|
// Create lights |
|
|
|
// NOTE: Lights are added to an internal lights pool automatically |
|
|
|
CreateLight(LIGHT_POINT, (Vector3){ LIGHT_DISTANCE, LIGHT_HEIGHT, 0.0f }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 255, 0, 0, 255 }, model.materials[0].shader); |
|
|
|
CreateLight(LIGHT_POINT, (Vector3){ 0.0f, LIGHT_HEIGHT, LIGHT_DISTANCE }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 0, 255, 0, 255 }, model.materials[0].shader); |
|
|
|
CreateLight(LIGHT_POINT, (Vector3){ -LIGHT_DISTANCE, LIGHT_HEIGHT, 0.0f }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 0, 0, 255, 255 }, model.materials[0].shader); |
|
|
|
CreateLight(LIGHT_DIRECTIONAL, (Vector3){ 0.0f, LIGHT_HEIGHT*2.0f, -LIGHT_DISTANCE }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 255, 0, 255, 255 }, model.materials[0].shader); |
|
|
|
|
|
|
|
SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode |
|
|
|
|
|
|
@ -113,8 +111,8 @@ int main(void) |
|
|
|
// NOTE: PBR shader is loaded inside this function |
|
|
|
static Material LoadMaterialPBR(Color albedo, float metalness, float roughness) |
|
|
|
{ |
|
|
|
Material mat = p">{ 0 }; // NOTE: All maps textures are set to { 0 } |
|
|
|
|
|
|
|
Material mat = n">LoadMaterialDefault(); // Initialize material to default |
|
|
|
|
|
|
|
#if defined(PLATFORM_DESKTOP) |
|
|
|
mat.shader = LoadShader("resources/shaders/glsl330/pbr.vs", "resources/shaders/glsl330/pbr.fs"); |
|
|
|
#else // PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB |
|
|
@ -136,7 +134,7 @@ static Material LoadMaterialPBR(Color albedo, float metalness, float roughness) |
|
|
|
|
|
|
|
// Set view matrix location |
|
|
|
mat.shader.locs[LOC_MATRIX_MODEL] = GetShaderLocation(mat.shader, "matModel"); |
|
|
|
mat.shader.locs[LOC_MATRIX_VIEW] = GetShaderLocation(mat.shader, "view"); |
|
|
|
o">//mat.shader.locs[LOC_MATRIX_VIEW] = GetShaderLocation(mat.shader, "view"); |
|
|
|
mat.shader.locs[LOC_VECTOR_VIEW] = GetShaderLocation(mat.shader, "viewPos"); |
|
|
|
|
|
|
|
// Set PBR standard maps |
|
|
|