浏览代码

Move Light struct to example

pull/81/head
raysan5 9 年前
父节点
当前提交
d0ff78e7f4
共有 4 个文件被更改,包括 27 次插入3 次删除
  1. +2
    -0
      examples/resources/shaders/phong.vs
  2. +19
    -0
      examples/shaders_basic_lighting.c
  3. +6
    -0
      src/core.c
  4. +0
    -3
      src/rlgl.h

+ 2
- 0
examples/resources/shaders/phong.vs 查看文件

@ -7,7 +7,9 @@ in vec3 vertexNormal;
// Projection and model data
uniform mat4 mvpMatrix;
uniform mat4 modelMatrix;
//uniform mat4 viewMatrix; // Not used
// Attributes to fragment shader
out vec2 fragTexCoord;

+ 19
- 0
examples/shaders_basic_lighting.c 查看文件

@ -14,6 +14,17 @@
#define SHININESS_SPEED 1.0f
#define LIGHT_SPEED 0.25f
// Light type
typedef struct Light {
Vector3 position;
Vector3 direction;
float intensity;
float specIntensity;
Color diffuse;
Color ambient;
Color specular;
} Light;
int main()
{
// Initialization
@ -48,6 +59,10 @@ int main()
int cameraLoc = GetShaderLocation(shader, "cameraPos");
int lightLoc = GetShaderLocation(shader, "lightPos");
// Model and View matrix locations (required for lighting)
int modelLoc = GetShaderLocation(shader, "modelMatrix");
//int viewLoc = GetShaderLocation(shader, "viewMatrix"); // Not used
// Light and material definitions
Light light;
Material matBlinn;
@ -82,6 +97,10 @@ int main()
//----------------------------------------------------------------------------------
UpdateCamera(&camera); // Update camera position
// NOTE: Model transform can be set in model.transform or directly with params at draw... WATCH OUT!
SetShaderValueMatrix(shader, modelLoc, model.transform); // Send model matrix to shader
//SetShaderValueMatrix(shader, viewLoc, GetCameraMatrix(camera)); // Not used
// Glossiness input control
if(IsKeyDown(KEY_UP)) matBlinn.glossiness += SHININESS_SPEED;
else if(IsKeyDown(KEY_DOWN))

+ 6
- 0
src/core.c 查看文件

@ -938,6 +938,12 @@ Vector2 WorldToScreen(Vector3 position, Camera camera)
return screenPosition;
}
// Get transform matrix for camera
Matrix GetCameraMatrix(Camera camera)
{
return MatrixLookAt(camera.position, camera.target, camera.up);
}
//----------------------------------------------------------------------------------
// Module Functions Definition - Input (Keyboard, Mouse, Gamepad) Functions
//----------------------------------------------------------------------------------

+ 0
- 3
src/rlgl.h 查看文件

@ -167,9 +167,6 @@ typedef enum { OPENGL_11 = 1, OPENGL_33, OPENGL_ES_20 } GlVersion;
// Uniforms
int mvpLoc; // ModelView-Projection matrix uniform location point (vertex shader)
int modelLoc; // Model transformation matrix uniform location point (vertex shader)
int viewLoc; // View transformation matrix uniform location point (vertex shader)
int tintColorLoc; // Color uniform location point (fragment shader)
int mapDiffuseLoc; // Diffuse map texture uniform location point (fragment shader)

正在加载...
取消
保存