Transforming the vertex

pixgram·2022년 1월 14일
0

ModelViewMatrix

openGL에서 객체가 output될때까지 여러 단계를 거치게 된다. Model Coordinates, World Coordinates, Camera Coordinates를 다루는 과정을 Model View라고 하며, 이를 수행하는 Matrix를 Model View Matrix라고 한다.

webgl에서 만든 객체는 각자의 좌표를 갖고 있는데 이를 세계좌표 즉, canvas의 좌표로 옮겨주고 난 다음 한번 더 camera의 좌표로 옮겨줘야 비로소 우리가 canvas에서 객체를 볼 수가 있다.

three.js를 사용하면 다음과 같은 정보를 vertexshader에 넘겨주게 된다.

// = object.matrixWorld
uniform mat4 modelMatrix;

// = camera.matrixWorldInverse * object.matrixWorld
uniform mat4 modelViewMatrix;

// = camera.projectionMatrix
uniform mat4 projectionMatrix;

// = camera.matrixWorldInverse
uniform mat4 viewMatrix;

// = inverse transpose of modelViewMatrix
uniform mat3 normalMatrix;

// = camera position in world space
uniform vec3 cameraPosition;

최종적으로 vertexshader에서 다음과 같은 방법으로 gpu에 값을 넘겨주게 된다.

gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
profile
Interactive Front-end Developer and WebGL Artist

0개의 댓글