aboutsummaryrefslogtreecommitdiff
path: root/src/rlgl.h
diff options
context:
space:
mode:
authorvictorfisac <victorfisac@gmail.com>2016-05-21 18:16:39 +0200
committervictorfisac <victorfisac@gmail.com>2016-05-21 18:16:39 +0200
commitc320a21f2b0e96f7605624e84048ccab9700b516 (patch)
tree76abf548d99ea51b303302ea7e7b9bfc0773f826 /src/rlgl.h
parent80eb4f3f50bb9773dd0e5d4b70c50e18df8996e5 (diff)
downloadraylib-c320a21f2b0e96f7605624e84048ccab9700b516.tar.gz
raylib-c320a21f2b0e96f7605624e84048ccab9700b516.zip
Add standard lighting (2/3)
- 3 light types added (point, directional, spot). - DrawLights() function added using line shapes. - Standard lighting example added. - Removed useless struct variables from material and light. - Fixed light attributes dynamic locations errors. - Standard vertex and fragment shaders temporally added until rewrite it as char pointers in rlgl. TODO: - Add normal and specular maps calculations in standard shader. - Add control structs to handle which attributes needs to be calculated (textures, specular...). - Adapt standard shader to version 110. - Rewrite standard shader as char pointers in rlgl.
Diffstat (limited to 'src/rlgl.h')
-rw-r--r--src/rlgl.h32
1 files changed, 13 insertions, 19 deletions
diff --git a/src/rlgl.h b/src/rlgl.h
index 39941b33..0765a8a7 100644
--- a/src/rlgl.h
+++ b/src/rlgl.h
@@ -196,40 +196,34 @@ typedef enum { OPENGL_11 = 1, OPENGL_33, OPENGL_ES_20 } GlVersion;
// Material type
typedef struct Material {
- Shader shader;
+ Shader shader; // Standard shader (supports 3 map types: diffuse, normal, specular)
- Texture2D texDiffuse; // Diffuse texture
- Texture2D texNormal; // Normal texture
- Texture2D texSpecular; // Specular texture
+ Texture2D texDiffuse; // Diffuse texture
+ Texture2D texNormal; // Normal texture
+ Texture2D texSpecular; // Specular texture
- Color colDiffuse;
- Color colAmbient;
- Color colSpecular;
+ Color colDiffuse; // Diffuse color
+ Color colAmbient; // Ambient color
+ Color colSpecular; // Specular color
- float glossiness;
- float normalDepth;
+ float glossiness; // Glossiness level (Ranges from 0 to 1000)
+ float normalDepth; // Normal map depth
} Material;
// Light type
- // TODO: Review contained data to support different light types and features
typedef struct LightData {
int id;
int type; // LIGHT_POINT, LIGHT_DIRECTIONAL, LIGHT_SPOT
bool enabled;
Vector3 position;
- Vector3 direction; // Used on LIGHT_DIRECTIONAL and LIGHT_SPOT (cone direction)
- float attenuation; // Lost of light intensity with distance (use radius?)
+ Vector3 target; // Used on LIGHT_DIRECTIONAL and LIGHT_SPOT (cone direction target)
+ float attenuation; // Lost of light intensity with distance (world distance)
- Color diffuse; // Use Vector3 diffuse (including intensities)?
+ Color diffuse; // Use Vector3 diffuse
float intensity;
- Color specular;
- //float specFactor; // Specular intensity ?
-
- //Color ambient; // Required?
-
- float coneAngle; // SpotLight
+ float coneAngle; // Spot light max angle
} LightData, *Light;
// Color blending modes (pre-defined)