added Steven Baker's GPU physics code (work in progress)
This commit is contained in:
42
Extras/GPUphysics/cubeShader.vert
Normal file
42
Extras/GPUphysics/cubeShader.vert
Normal file
@@ -0,0 +1,42 @@
|
||||
|
||||
/* Use this for rendering the little cubes. */
|
||||
|
||||
/* Translation & rotation passed in texture maps */
|
||||
|
||||
uniform sampler2D position ;
|
||||
uniform sampler2D rotation ;
|
||||
|
||||
/* gl_Color is just the vertex colour */
|
||||
/* gl_MultiTexCoord0 selects where within the texture we
|
||||
find this cubes location */
|
||||
|
||||
void main()
|
||||
{
|
||||
vec4 pos = vec4 ( texture2D ( position, gl_MultiTexCoord0.st ).xyz, 1.0 ) ;
|
||||
vec3 rot = texture2D ( rotation, gl_MultiTexCoord0.st ).xyz ;
|
||||
|
||||
/* Build a rotation matrix */
|
||||
|
||||
float sh = sin ( rot.x ) ; float ch = cos ( rot.x ) ;
|
||||
float sp = sin ( rot.y ) ; float cp = cos ( rot.y ) ;
|
||||
float sr = sin ( rot.z ) ; float cr = cos ( rot.z ) ;
|
||||
|
||||
mat4 mat = mat4 ( ch * cr - sh * sr * sp,
|
||||
-sh * cp,
|
||||
sr * ch + sh * cr * sp,
|
||||
0,
|
||||
cr * sh + sr * sp * ch,
|
||||
ch * cp,
|
||||
sr * sh - cr * sp * ch,
|
||||
0,
|
||||
-sr * cp,
|
||||
sp,
|
||||
cr * cp,
|
||||
0,
|
||||
0.0, 0.0, 0.0, 1.0 ) ;
|
||||
|
||||
gl_FrontColor = gl_Color ;
|
||||
pos.xyz += (mat * gl_Vertex).xyz ;
|
||||
gl_Position = gl_ModelViewProjectionMatrix * pos ;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user