From a4c1cd25b5f68da0e34077714e395915fb8758f4 Mon Sep 17 00:00:00 2001 From: codeanticode Date: Wed, 4 Sep 2013 19:06:09 -0400 Subject: [PATCH] updated DomeProjection example with simplified shader use --- java/examples/Topics/Shaders/DomeProjection/CubeMapUtils.pde | 4 +--- .../examples/Topics/Shaders/DomeProjection/DomeProjection.pde | 1 - .../Topics/Shaders/DomeProjection/data/cubemapfrag.glsl | 2 +- .../Topics/Shaders/DomeProjection/data/cubemapvert.glsl | 2 +- 4 files changed, 3 insertions(+), 6 deletions(-) diff --git a/java/examples/Topics/Shaders/DomeProjection/CubeMapUtils.pde b/java/examples/Topics/Shaders/DomeProjection/CubeMapUtils.pde index 95a862184..679874c07 100644 --- a/java/examples/Topics/Shaders/DomeProjection/CubeMapUtils.pde +++ b/java/examples/Topics/Shaders/DomeProjection/CubeMapUtils.pde @@ -1,8 +1,6 @@ void initCubeMap() { - gridTex = loadImage("grid.png"); sphereDetail(50); domeSphere = createShape(SPHERE, height/2.0f); - domeSphere.setTexture(gridTex); domeSphere.rotateX(HALF_PI); domeSphere.setStroke(false); @@ -42,7 +40,7 @@ void initCubeMap() { // Load cubemap shader. cubemapShader = loadShader("cubemapfrag.glsl", "cubemapvert.glsl"); - cubemapShader.set("EnvMap", 1); + cubemapShader.set("cubemap", 1); } void drawCubeMap() { diff --git a/java/examples/Topics/Shaders/DomeProjection/DomeProjection.pde b/java/examples/Topics/Shaders/DomeProjection/DomeProjection.pde index 6c869eab7..6816e5fbb 100644 --- a/java/examples/Topics/Shaders/DomeProjection/DomeProjection.pde +++ b/java/examples/Topics/Shaders/DomeProjection/DomeProjection.pde @@ -13,7 +13,6 @@ import java.nio.IntBuffer; PShader cubemapShader; PShape domeSphere; -PImage gridTex; IntBuffer fbo; IntBuffer rbo; diff --git a/java/examples/Topics/Shaders/DomeProjection/data/cubemapfrag.glsl b/java/examples/Topics/Shaders/DomeProjection/data/cubemapfrag.glsl index 9eea974a4..0d47ce133 100644 --- a/java/examples/Topics/Shaders/DomeProjection/data/cubemapfrag.glsl +++ b/java/examples/Topics/Shaders/DomeProjection/data/cubemapfrag.glsl @@ -1 +1 @@ -uniform sampler2D texture; uniform samplerCube EnvMap; varying vec3 reflectDir; uniform vec2 texOffset; varying vec4 vertColor; varying vec4 vertTexCoord; void main() { // gl_FragColor = texture2D(texture, vertTexCoord.st) * vertColor; vec3 envColor = vec3(textureCube(EnvMap, reflectDir)); gl_FragColor = vec4(envColor, 1.0); } /* void main() { // Look up environment map value in cube map vec3 envColor = vec3(textureCube(EnvMap, ReflectDir)); gl_FragColor = vec4(envColor, 1.0); } */ \ No newline at end of file +uniform samplerCube cubemap; varying vec3 reflectDir; void main() { vec3 color = vec3(textureCube(cubemap, reflectDir)); gl_FragColor = vec4(color, 1.0); } \ No newline at end of file diff --git a/java/examples/Topics/Shaders/DomeProjection/data/cubemapvert.glsl b/java/examples/Topics/Shaders/DomeProjection/data/cubemapvert.glsl index f52f94419..1d96e9b52 100644 --- a/java/examples/Topics/Shaders/DomeProjection/data/cubemapvert.glsl +++ b/java/examples/Topics/Shaders/DomeProjection/data/cubemapvert.glsl @@ -1 +1 @@ -#define PROCESSING_TEXTURE_SHADER uniform mat4 transform; uniform mat4 modelview; uniform mat4 texMatrix; attribute vec4 vertex; attribute vec4 color; attribute vec2 texCoord; attribute vec3 normal; varying vec4 vertColor; varying vec4 vertTexCoord; uniform mat3 normalMatrix; varying vec3 reflectDir; void main() { gl_Position = transform * vertex; vec3 ecNormal = normalize(normalMatrix * normal); // Vertex in eye coordinates vec3 ecVertex = vec3(modelview * vertex); // Normal vector in eye coordinates vec3 eyeDir = ecVertex.xyz; reflectDir = reflect(eyeDir, ecNormal); vertColor = color; vertTexCoord = texMatrix * vec4(texCoord, 1.0, 1.0); } /* varying vec3 ReflectDir; void main() { gl_Position = ftransform(); vec3 normal = normalize(gl_NormalMatrix * gl_Normal); vec4 pos = gl_ModelViewMatrix * gl_Vertex; vec3 eyeDir = pos.xyz; ReflectDir = reflect(eyeDir, normal); } */ \ No newline at end of file +uniform mat4 transform; uniform mat4 modelview; uniform mat3 normalMatrix; attribute vec4 vertex; attribute vec3 normal; varying vec3 reflectDir; void main() { gl_Position = transform * vertex; vec3 ecNormal = normalize(normalMatrix * normal); // Vertex in eye coordinates vec3 ecVertex = vec3(modelview * vertex); // Normal vector in eye coordinates vec3 eyeDir = ecVertex.xyz; reflectDir = reflect(eyeDir, ecNormal); } \ No newline at end of file