Bladeren bron

pbr material dev...

leonsal 8 jaren geleden
bovenliggende
commit
5af03ea7a6
1 gewijzigde bestanden met toevoegingen van 48 en 0 verwijderingen
  1. 48 0
      renderer/shaders/sources.go

+ 48 - 0
renderer/shaders/sources.go

@@ -404,6 +404,7 @@ const standard_vertex_source = `//
 uniform mat4 ModelViewMatrix;
 uniform mat3 NormalMatrix;
 uniform mat4 MVP;
+<<<<<<< HEAD
 
 #include <lights>
 #include <material>
@@ -463,9 +464,39 @@ out vec4 Position;
 out vec3 Normal;
 out vec3 CamDir;
 out vec2 FragTexcoord;
+=======
+
+#include <lights>
+#include <material>
+#include <phong_model>
+
+
+// Outputs for the fragment shader.
+out vec3 ColorFrontAmbdiff;
+out vec3 ColorFrontSpec;
+out vec3 ColorBackAmbdiff;
+out vec3 ColorBackSpec;
+out vec2 FragTexcoord;
 
 void main() {
 
+    // Transform this vertex normal to camera coordinates.
+    vec3 normal = normalize(NormalMatrix * VertexNormal);
+
+    // Calculate this vertex position in camera coordinates
+    vec4 position = ModelViewMatrix * vec4(VertexPosition, 1.0);
+
+    // Calculate the direction vector from the vertex to the camera
+    // The camera is at 0,0,0
+    vec3 camDir = normalize(-position.xyz);
+>>>>>>> master
+
+    // Calculates the vertex Ambient+Diffuse and Specular colors using the Phong model
+    // for the front and back
+    phongModel(position,  normal, camDir, MatAmbientColor, MatDiffuseColor, ColorFrontAmbdiff, ColorFrontSpec);
+    phongModel(position, -normal, camDir, MatAmbientColor, MatDiffuseColor, ColorBackAmbdiff, ColorBackSpec);
+
+<<<<<<< HEAD
     // Transform this vertex position to camera coordinates.
     Position = ModelViewMatrix * vec4(VertexPosition, 1.0);
 
@@ -485,6 +516,17 @@ void main() {
 //#endif
     FragTexcoord = texcoord;
 
+=======
+    vec2 texcoord = VertexTexcoord;
+#if MAT_TEXTURES > 0
+    // Flips texture coordinate Y if requested.
+    if (MatTexFlipY(0)) {
+        texcoord.y = 1 - texcoord.y;
+    }
+#endif
+    FragTexcoord = texcoord;
+
+>>>>>>> master
     gl_Position = MVP * vec4(VertexPosition, 1.0);
 }
 
@@ -769,6 +811,7 @@ void main() {
 
     Color = VertexColor;
     gl_Position = MVP * vec4(VertexPosition, 1.0);
+<<<<<<< HEAD
 }
 
 
@@ -809,6 +852,8 @@ void main() {
 
     // Final fragment color
     FragColor = uBaseColor;
+=======
+>>>>>>> master
 }
 
 
@@ -832,7 +877,10 @@ var shaderMap = map[string]string{
 	"panel_vertex":      panel_vertex_source,
 	"standard_fragment": standard_fragment_source,
 	"standard_vertex":   standard_vertex_source,
+<<<<<<< HEAD
 	"physical_vertex":   physical_vertex_source,
+=======
+>>>>>>> master
 	"point_fragment":    point_fragment_source,
 	"basic_fragment":    basic_fragment_source,
 	"phong_vertex":      phong_vertex_source,