Commits

Jason McKesson committed 4e477ff

Tut13: Test these changes on NVIDIA.

Comments (0)

Files changed (3)

Tut 13 Impostors/data/GeomImpostor.frag

 	vec3 rayDirection = normalize(cameraPlanePos);
 	
 	float B = 2.0 * dot(rayDirection, -cameraSpherePos);
-	float C = dot(cameraSpherePos, cameraSpherePos) - (sphereRadius * sphereRadius);
+	float C = dot(cameraSpherePos, cameraSpherePos) -
+		(sphereRadius * sphereRadius);
 	
 	float det = (B * B) - (4 * C);
 	if(det < 0.0)

Tut 13 Impostors/data/GeomImpostor.geom

-#version 330 core
+#version 330
 #extension GL_EXT_gpu_shader4 : enable
 
 layout(std140) uniform;
 	smooth vec2 mapping;
 };
 
+in VertexData
+{
+	vec3 cameraSpherePos;
+	float sphereRadius;
+} vert[];
+
 const float g_boxCorrection = 1.5;
 
 void main()
 	vec4 cameraCornerPos;
 	//Bottom-left
 	mapping = vec2(-1.0, -1.0) * g_boxCorrection;
-	cameraSpherePos = vec3(gl_in[0].gl_Position);
-	sphereRadius = gl_in[0].gl_PointSize;
-	cameraCornerPos = gl_in[0].gl_Position;
-	cameraCornerPos.xy += vec2(-gl_in[0].gl_PointSize, -gl_in[0].gl_PointSize) * g_boxCorrection;
+	cameraSpherePos = vec3(vert[0].cameraSpherePos);
+	sphereRadius = vert[0].sphereRadius;
+	cameraCornerPos = vec4(vert[0].cameraSpherePos, 1.0);
+	cameraCornerPos.xy += vec2(-vert[0].sphereRadius, -vert[0].sphereRadius) * g_boxCorrection;
 	gl_Position = cameraToClipMatrix * cameraCornerPos;
 	gl_PrimitiveID = gl_PrimitiveIDIn;
 	EmitVertex();
 	
 	//Top-left
 	mapping = vec2(-1.0, 1.0) * g_boxCorrection;
-	cameraSpherePos = vec3(gl_in[0].gl_Position);
-	sphereRadius = gl_in[0].gl_PointSize;
-	cameraCornerPos = gl_in[0].gl_Position;
-	cameraCornerPos.xy += vec2(-gl_in[0].gl_PointSize, gl_in[0].gl_PointSize) * g_boxCorrection;
+	cameraSpherePos = vec3(vert[0].cameraSpherePos);
+	sphereRadius = vert[0].sphereRadius;
+	cameraCornerPos = vec4(vert[0].cameraSpherePos, 1.0);
+	cameraCornerPos.xy += vec2(-vert[0].sphereRadius, vert[0].sphereRadius) * g_boxCorrection;
 	gl_Position = cameraToClipMatrix * cameraCornerPos;
 	gl_PrimitiveID = gl_PrimitiveIDIn;
 	EmitVertex();
 	
 	//Bottom-right
 	mapping = vec2(1.0, -1.0) * g_boxCorrection;
-	cameraSpherePos = vec3(gl_in[0].gl_Position);
-	sphereRadius = gl_in[0].gl_PointSize;
-	cameraCornerPos = gl_in[0].gl_Position;
-	cameraCornerPos.xy += vec2(gl_in[0].gl_PointSize, -gl_in[0].gl_PointSize) * g_boxCorrection;
+	cameraSpherePos = vec3(vert[0].cameraSpherePos);
+	sphereRadius = vert[0].sphereRadius;
+	cameraCornerPos = vec4(vert[0].cameraSpherePos, 1.0);
+	cameraCornerPos.xy += vec2(vert[0].sphereRadius, -vert[0].sphereRadius) * g_boxCorrection;
 	gl_Position = cameraToClipMatrix * cameraCornerPos;
 	gl_PrimitiveID = gl_PrimitiveIDIn;
 	EmitVertex();
 	
 	//Top-right
 	mapping = vec2(1.0, 1.0) * g_boxCorrection;
-	cameraSpherePos = vec3(gl_in[0].gl_Position);
-	sphereRadius = gl_in[0].gl_PointSize;
-	cameraCornerPos = gl_in[0].gl_Position;
-	cameraCornerPos.xy += vec2(gl_in[0].gl_PointSize, gl_in[0].gl_PointSize) * g_boxCorrection;
+	cameraSpherePos = vec3(vert[0].cameraSpherePos);
+	sphereRadius = vert[0].sphereRadius;
+	cameraCornerPos = vec4(vert[0].cameraSpherePos, 1.0);
+	cameraCornerPos.xy += vec2(vert[0].sphereRadius, vert[0].sphereRadius) * g_boxCorrection;
 	gl_Position = cameraToClipMatrix * cameraCornerPos;
 	gl_PrimitiveID = gl_PrimitiveIDIn;
 	EmitVertex();

Tut 13 Impostors/data/GeomImpostor.vert

 #version 330
 
-layout(std140) uniform;
-
 layout(location = 0) in vec3 cameraSpherePos;
 layout(location = 1) in float sphereRadius;
 
-uniform Projection
+out VertexData
 {
-	mat4 cameraToClipMatrix;
-};
+	vec3 cameraSpherePos;
+	float sphereRadius;
+} outData;
 
 void main()
 {
-	gl_Position = vec4(cameraSpherePos, 1.0);
-	gl_PointSize = sphereRadius;
+	outData.cameraSpherePos = cameraSpherePos;
+	outData.sphereRadius = sphereRadius;
 }
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.