From 44a3c5b76ed239da4e20360a4a5d5f8e96278a89 Mon Sep 17 00:00:00 2001 From: Zack Buhman Date: Sun, 22 Feb 2026 21:28:08 +0000 Subject: [PATCH] _math: initial matrix/vector math library --- .gitignore | 4 ++ _math.lua | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++++ bird.dds | Bin 0 -> 131200 bytes main.lua | 47 ++++++++++++---- 4 files changed, 202 insertions(+), 10 deletions(-) create mode 100644 .gitignore create mode 100644 _math.lua create mode 100644 bird.dds diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..34f6b14 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.~* +.\#* +\#* +*~ \ No newline at end of file diff --git a/_math.lua b/_math.lua new file mode 100644 index 0000000..a9278f4 --- /dev/null +++ b/_math.lua @@ -0,0 +1,161 @@ +local ffi = require 'ffi' + +local sin = math.sin +local cos = math.cos + +local mat4 + +local newmat4 = function(_t) + -- newByteData is zero-initialized + local data = love.data.newByteData(16 * 4) + local m = ffi.cast('float*', data:getFFIPointer()) + value = { + data = data, + m = m, + } + setmetatable(value, mat4) + return value +end + +mat4 = { + __call = newmat4, + + identity = function() + local M = newmat4() + M.m[0 * 4 + 0] = 1.0 + --M.m[0 * 4 + 1] = 0.0 + --M.m[0 * 4 + 2] = 0.0 + --M.m[0 * 4 + 3] = 0.0 + + --M.m[1 * 4 + 0] = 0.0 + M.m[1 * 4 + 1] = 1.0 + --M.m[1 * 4 + 2] = 0.0 + --M.m[1 * 4 + 3] = 0.0 + + --M.m[2 * 4 + 0] = 0.0 + --M.m[2 * 4 + 1] = 0.0 + M.m[2 * 4 + 2] = 1.0 + --M.m[2 * 4 + 3] = 0.0 + + --M.m[3 * 4 + 0] = 0.0 + --M.m[3 * 4 + 1] = 0.0 + --M.m[3 * 4 + 2] = 0.0 + M.m[3 * 4 + 3] = 1.0 + return M + end, + + translation = function(x, y, z) + local M = newmat4() + M.m[0 * 4 + 0] = 1.0 + --M.m[0 * 4 + 1] = 0.0 + --M.m[0 * 4 + 2] = 0.0 + --M.m[0 * 4 + 3] = 0.0 + + --M.m[1 * 4 + 0] = 0.0 + M.m[1 * 4 + 1] = 1.0 + --M.m[1 * 4 + 2] = 0.0 + --M.m[1 * 4 + 3] = 0.0 + + --M.m[2 * 4 + 0] = 0.0 + --M.m[2 * 4 + 1] = 0.0 + M.m[2 * 4 + 2] = 1.0 + --M.m[2 * 4 + 3] = 0.0 + + M.m[3 * 4 + 0] = x + M.m[3 * 4 + 1] = y + M.m[3 * 4 + 2] = z + M.m[3 * 4 + 3] = 1.0 + return M + end, + + rotation_x = function(angle) + local sin_angle = sin(angle) + local cos_angle = cos(angle) + + local M = newmat4() + M.m[0 * 4 + 0] = 1.0 + --M.m[0 * 4 + 1] = 0.0 + --M.m[0 * 4 + 2] = 0.0 + --M.m[0 * 4 + 3] = 0.0 + + --M.m[1 * 4 + 0] = 0.0 + M.m[1 * 4 + 1] = cos_angle + M.m[1 * 4 + 2] = sin_angle + --M.m[1 * 4 + 3] = 0.0 + + --M.m[2 * 4 + 0] = 0.0 + M.m[2 * 4 + 1] = -sin_angle + M.m[2 * 4 + 2] = cos_angle + --M.m[2 * 4 + 3] = 0.0 + + --M.m[3 * 4 + 0] = 0.0 + --M.m[3 * 4 + 1] = 0.0 + --M.m[3 * 4 + 2] = 0.0 + M.m[3 * 4 + 3] = 1.0 + return M + end, + + rotation_y = function(angle) + local sin_angle = sin(angle) + local cos_angle = cos(angle) + + local M = newmat4() + M.m[0 * 4 + 0] = cos_angle + --M.m[0 * 4 + 1] = 0.0 + M.m[0 * 4 + 2] = -sin_angle + --M.m[0 * 4 + 3] = 0.0 + + --M.m[1 * 4 + 0] = 0.0 + M.m[1 * 4 + 1] = 1.0 + --M.m[1 * 4 + 2] = 0.0 + --M.m[1 * 4 + 3] = 0.0 + + M.m[2 * 4 + 0] = sin_angle + --M.m[2 * 4 + 1] = 0.0 + M.m[2 * 4 + 2] = cos_angle + --M.m[2 * 4 + 3] = 0.0 + + --M.m[3 * 4 + 0] = 0.0 + --M.m[3 * 4 + 1] = 0.0 + --M.m[3 * 4 + 2] = 0.0 + M.m[3 * 4 + 3] = 1.0 + return M + end, + + rotation_z = function(angle) + local sin_angle = sin(angle) + local cos_angle = cos(angle) + + local M = newmat4() + M.m[0 * 4 + 0] = cos_angle + M.m[0 * 4 + 1] = sin_angle + --M.m[0 * 4 + 2] = 0.0 + --M.m[0 * 4 + 3] = 0.0 + + M.m[1 * 4 + 0] = -sin_angle + M.m[1 * 4 + 1] = cos_angle + --M.m[1 * 4 + 2] = 0.0 + --M.m[1 * 4 + 3] = 0.0 + + --M.m[2 * 4 + 0] = 0.0 + --M.m[2 * 4 + 1] = 0.0 + M.m[2 * 4 + 2] = 1.0 + --M.m[2 * 4 + 3] = 0.0 + + --M.m[3 * 4 + 0] = 0.0 + --M.m[3 * 4 + 1] = 0.0 + --M.m[3 * 4 + 2] = 0.0 + M.m[3 * 4 + 3] = 1.0 + return M + end, + + dot = function(a, b) + print("dot" .. tostring(a) .. tostring(b)) + end +} + +setmetatable(mat4, mat4) + +return { + mat4 = mat4 +} diff --git a/bird.dds b/bird.dds new file mode 100644 index 0000000000000000000000000000000000000000..bc2c3c09aca0b7138da6dee8665c5efe678cd474 GIT binary patch literal 131200 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�Q-Zi+Wu) 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 literal 0 HcmV?d00001 diff --git a/main.lua b/main.lua index 082c875..badddac 100644 --- a/main.lua +++ b/main.lua @@ -1,15 +1,25 @@ local mesh +local rotation +local texture + +local ffi = require 'ffi' local pixelcode = [[ #pragma language glsl3 - varying vec4 PixelColor; + varying vec4 PixelNormal; + varying vec4 PixelTexture; + + uniform sampler2D texture_sampler; out vec4 outData; void pixelmain() { - outData = PixelColor; + vec4 texColor = texture(texture_sampler, PixelTexture.xy); + + float intensity = min(max(dot(vec3(1, 1, 1), PixelNormal.xyz), 0), 1); + outData = vec4(texColor.xyz * (0.1 + intensity * intensity), 1.0); } ]] @@ -25,11 +35,13 @@ local vertexcode = [[ uniform mat4 model; uniform mat4 model2; - varying vec4 PixelColor; + varying vec4 PixelNormal; + varying vec4 PixelTexture; void vertexmain() { - PixelColor = VertexNormal * 0.5 + 0.5; + PixelNormal = VertexNormal * 0.5 + 0.5; + PixelTexture = VertexTexture; mat4 trans = projection * view * model * model2; love_Position = trans * vec4(VertexPosition.xyz, 1); } @@ -43,8 +55,6 @@ local vertexformat = { { name = 'VertexTexture', format = 'floatvec3', location = 2 }, } -local rotation - function look_at() local m = { 1.000000, 0.000000, 0.000000, 0.000000, @@ -67,7 +77,7 @@ function projection() end function love.load(args) - love.window.setMode(600, 600, {depth=true}) + love.window.setMode(1024, 1024, {depth=true}) local vertexdata = love.filesystem.newFileData("position_normal_texture.vtx") local indexdata = love.filesystem.newFileData("index.idx") @@ -105,6 +115,9 @@ function love.load(args) mesh = love.graphics.newMesh(attributelist, drawmode) mesh:setIndexBuffer(indexbuffer) + + local image_data = love.image.newCompressedData('bird.dds') + texture = love.graphics.newTexture(image_data) end local rotation = 0.0 @@ -142,15 +155,29 @@ function rotate_z(t) } end +function print_matrix(ptr) + for i=0,15 do + io.write(tostring(ptr[i])) + io.write(" ") + if i % 4 == 3 then + io.write("\n") + end + end +end + + +local math = require '_math' +local mat4 = math.mat4 function love.draw() local radius = 100 local mx, my = love.mouse.getPosition() shader:send("projection", projection(1, 1)) - shader:send("view", look_at()) - shader:send("model", rotate_x(rotation)) - shader:send("model2", rotate_z(rotation * 0.5)) + shader:send("view", "column", mat4.translation(0, 0, -2).data) + shader:send("model", "column", mat4.rotation_x(rotation).data) + shader:send("model2", "column", mat4.rotation_z(rotation * 0.5).data) + shader:send("texture_sampler", texture) rotation = rotation + 0.01 love.graphics.setShader(shader) love.graphics.setDepthMode("less", true)