Skip to content

Commit f458cc7

Browse files
committed
fixed attribute issues in posterization lesson
1 parent ce0c40c commit f458cc7

File tree

4 files changed

+46
-24
lines changed

4 files changed

+46
-24
lines changed

exercises/npr-1/files/vertex.glsl

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,20 @@
11
precision highp float;
22

3-
attribute vec4 position, normal;
4-
uniform mat4 model, view, projection;
5-
uniform mat4 inverseModel, inverseView, inverseProjection;
6-
uniform vec3 diffuse, lightDirection;
3+
attribute vec3 position;
4+
attribute vec3 normal;
5+
6+
uniform mat4 model;
7+
uniform mat4 view;
8+
uniform mat4 projection;
9+
10+
uniform mat4 inverseModel;
11+
uniform mat4 inverseView;
12+
uniform mat4 inverseProjection;
13+
14+
uniform vec3 diffuse;
15+
uniform vec3 lightDirection;
716
uniform float numBands;
817

918
void main() {
10-
gl_Position = vec4(0,0,0,1);
19+
gl_Position = vec4(position,1);
1120
}

exercises/npr-1/index.js

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ require('../common')({
3434
window.addEventListener('resize', fit(canvas), false)
3535

3636
var vertexNormals = getNormals(dragon.cells, dragon.positions, 0.1)
37+
var vertexCount = dragon.cells.length*3
3738
var vertexData = []
3839
for(var i=0; i<dragon.cells.length; ++i) {
3940
var loop = dragon.cells[i]
@@ -42,17 +43,7 @@ for(var i=0; i<dragon.cells.length; ++i) {
4243
}
4344
}
4445
var vertexBuffer = createBuffer(gl, vertexData)
45-
var vertexArray = createVAO(gl, [
46-
{
47-
"buffer": vertexBuffer,
48-
"size": 3
49-
},
50-
{
51-
"buffer": createBuffer(gl, vertexNormals),
52-
"size": 3
53-
}
54-
])
55-
46+
var normalBuffer = createBuffer(gl, vertexNormals)
5647

5748
var actualShader = createShader({
5849
frag: process.env.file_fragment_glsl
@@ -122,8 +113,15 @@ function actual(fbo) {
122113
actualShader.bind()
123114
actualShader.uniforms = camera
124115

125-
vertexArray.bind()
126-
vertexArray.draw(gl.TRIANGLES, vertexData.length / 3)
116+
if(actualShader.attributes.normal.location >= 0) {
117+
normalBuffer.bind()
118+
actualShader.attributes.normal.pointer()
119+
}
120+
121+
vertexBuffer.bind()
122+
actualShader.attributes.position.pointer()
123+
124+
gl.drawArrays(gl.TRIANGLES, 0, vertexCount)
127125
}
128126

129127
function expected(fbo) {
@@ -138,6 +136,11 @@ function expected(fbo) {
138136
expectedShader.bind()
139137
expectedShader.uniforms = camera
140138

141-
vertexArray.bind()
142-
vertexArray.draw(gl.TRIANGLES, vertexData.length / 3)
139+
normalBuffer.bind()
140+
expectedShader.attributes.normal.pointer()
141+
142+
vertexBuffer.bind()
143+
expectedShader.attributes.position.pointer()
144+
145+
gl.drawArrays(gl.TRIANGLES, 0, vertexCount)
143146
}

exercises/npr-1/shaders/fragment.glsl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
precision mediump float;
22

3-
uniform vec3 diffuse, lightDirection;
3+
uniform vec3 diffuse;
4+
uniform vec3 lightDirection;
45
varying vec3 fragNormal;
56

67
uniform float numBands;

exercises/npr-1/shaders/vertex.glsl

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,16 @@
11
precision mediump float;
2-
attribute vec3 position, normal;
3-
uniform mat4 model, view, projection;
4-
uniform mat4 inverseModel, inverseView, inverseProjection;
2+
3+
attribute vec3 position;
4+
attribute vec3 normal;
5+
6+
uniform mat4 model;
7+
uniform mat4 view;
8+
uniform mat4 projection;
9+
10+
uniform mat4 inverseModel;
11+
uniform mat4 inverseView;
12+
uniform mat4 inverseProjection;
13+
514
varying vec3 fragNormal;
615

716
void main() {

0 commit comments

Comments
 (0)