| Vendor | Intel | Renderer | Intel(R) HD Graphics Family | Driver version | 3.0.0 - Build 8.15.10.2509 | glsl compiler | 1.30 - Intel Build 8.15.10.2509 |
| max clipplanes | 6 | max texture image units | 16 | max texture size | 8192 | max 3d texture size | 2048 | max cubemap texture size | 8192 | MRT buffers | 8 | max indices | 1200 | max verices | 1200 | max vertext uniforms | 512 | max fragment uniforms | 1024 | max varyings floats | 41 | max vertex attribs | 16 | max vertex textures units | 16 | max viewport dims | 8192 |
| #version 130 precision highp float; #define VA_POSITION 0 #define VA_NORMAL 1 #define VA_TANGENT 2 #define VA_COLOR 3 #define VA_TEXCOORD0 4 #define VA_TEXCOORD1 5 #define VA_BONEID 6 #define VA_WEIGHT 7 #define VA_POINTSIZE 8 #define VA_NEXTPOSITION 9 #define VA_NEXTNORMAL 10 #define VA_NEXTTANGENT 11 #define VA_NEXTTEXCOORD 12 uniform mat4 modelviewproj; uniform mat3 normalmatrix; uniform vec3 lightpos; uniform mat4 model; uniform sampler2D texture1; uniform int segments; in vec3 position; in vec3 normal; in vec2 texcoord0; out vec3 fragmentn; out vec2 fragmentuv; out vec3 lightvec; out vec3 pos0; void main(void) { // float npos = texture(texture1,texcoord0).r; gl_Position = modelviewproj * vec4(position.x,npos,position.z,1.0); lightvec = lightpos - (model * vec4(position.x,npos,position.z,1.0)).xyz; fragmentuv = 0.25*texcoord0*segments; pos0=position; // // float disp = 1.0 / segments; float x0 = texture(texture1,texcoord0+vec2(-disp,0)).r; float x1 = texture(texture1,texcoord0+vec2(disp,0)).r; float y0 = texture(texture1,texcoord0+vec2(0,-disp)).r; float y1 = texture(texture1,texcoord0+vec2(0,disp)).r; // vec3 first = vec3 ( 2.0 , x1 - x0 , 0 ); vec3 second = vec3 ( 0 , y1 - y0 , 2 ); vec3 norm = normalize(cross( second , first )); fragmentn = normalmatrix * norm; } |