Simulate thousands of n-Pendula (up to 32) with Position Based Dynamics
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
#version 330 core
|
|
|
|
|
|
|
|
layout (location = 0) in vec3 vPos;
|
|
|
|
layout (location = 1) in vec3 vColor;
|
|
|
|
layout (location = 2) in float vMassRadius;
|
|
|
|
|
|
|
|
uniform mat3 VP;
|
|
|
|
|
|
|
|
uniform bool drawPoints;
|
|
|
|
uniform float screenSizePixels;
|
|
|
|
uniform float screenSizeMeters;
|
|
|
|
uniform float depthOffset;
|
|
|
|
|
|
|
|
out vec3 color;
|
|
|
|
|
|
|
|
void main() {
|
|
|
|
gl_Position = vec4(VP * vPos, 1.0);
|
|
|
|
if (drawPoints){
|
|
|
|
gl_Position.z -= depthOffset * 0.5;
|
|
|
|
gl_PointSize = vMassRadius / screenSizeMeters * screenSizePixels * 2;
|
|
|
|
} else {
|
|
|
|
color = vColor;
|
|
|
|
}
|
|
|
|
}
|