Пошли трансформации, работа с матрицами, передача их на ГПУ.

Видео (пример №7):



Исходник:g007_transform.go

Вот так это выглядит на Go:
## Код:
```
import (
  "github.com/go-gl/gl/v3.3-core/gl"
  "github.com/go-gl/mathgl/mgl32"
)
/*...*/
var shaderProg uint32
var transformLocation int32
var transform mgl32.Mat4
/*...*/
transformLocation = gl.GetUniformLocation(shaderProg, gl.Str("transform\x00"))
gl.UniformMatrix4fv(transformLocation, 1, false, &transform[0])
```

На Обероне было бы как-то так:
## Код:
```
IMPORT GL, M := MGL;
(*...*)
VAR shaderProg: INTEGER;
  transformLocation: INTEGER;
  transform: M.Mat4;
BEGIN
  (*...*)
  transformLocation := GL.GetUniformLocation(shaderProg, "transform"))
  GL.UniformMatrix4fv(transformLocation, 1, FALSE, transform)
```

А на стороневершинного шейдераматрица принимается и используется так:
## Код:
```
uniform mat4 transform;

void main()
{
  gl_Position = transform * vec4(aPos, 1.0);
  ourColor = aColor;
  texCoord = aTexCoord;
}
```
