_math: cdef-backed structures
This commit is contained in:
parent
6a57516349
commit
761a0073ef
@ -211,9 +211,9 @@ collada_scene = {
|
|||||||
end
|
end
|
||||||
|
|
||||||
--shader:send("Joints", "column",
|
--shader:send("Joints", "column",
|
||||||
--joints[1].data,
|
--joints[1]:data(),
|
||||||
--joints[2].data,
|
--joints[2]:data(),
|
||||||
--joints[3].data)
|
--joints[3]:data())
|
||||||
current_shader:send("Joints", "column",
|
current_shader:send("Joints", "column",
|
||||||
mat4.store_table(joints[1]),
|
mat4.store_table(joints[1]),
|
||||||
mat4.store_table(joints[2]),
|
mat4.store_table(joints[2]),
|
||||||
@ -241,20 +241,20 @@ collada_scene = {
|
|||||||
if node.instance_geometries_count > 0 then
|
if node.instance_geometries_count > 0 then
|
||||||
current_shader = current_shader_set.static
|
current_shader = current_shader_set.static
|
||||||
love.graphics.setShader(current_shader)
|
love.graphics.setShader(current_shader)
|
||||||
--current_shader:send("projection", "column", projection.data)
|
--current_shader:send("projection", "column", projection:data())
|
||||||
current_shader:send("view_transform", "column", view_transform.data)
|
current_shader:send("view_transform", "column", view_transform:data())
|
||||||
current_shader:send("world_transform", "column", world.data)
|
current_shader:send("world_transform", "column", world:data())
|
||||||
current_shader:send("light_transform", "column", light_transform.data)
|
current_shader:send("light_transform", "column", light_transform:data())
|
||||||
current_shader:send("transform", "column", transform.data)
|
current_shader:send("transform", "column", transform:data())
|
||||||
collada_scene.draw_instance_geometries(node.instance_geometries)
|
collada_scene.draw_instance_geometries(node.instance_geometries)
|
||||||
end
|
end
|
||||||
|
|
||||||
if node.instance_controllers_count > 0 then
|
if node.instance_controllers_count > 0 then
|
||||||
current_shader = current_shader_set.skinned
|
current_shader = current_shader_set.skinned
|
||||||
love.graphics.setShader(current_shader)
|
love.graphics.setShader(current_shader)
|
||||||
current_shader:send("world_transform", "column", world.data)
|
current_shader:send("world_transform", "column", world:data())
|
||||||
current_shader:send("light_transform", "column", light_transform.data)
|
current_shader:send("light_transform", "column", light_transform:data())
|
||||||
current_shader:send("transform", "column", transform.data)
|
current_shader:send("transform", "column", transform:data())
|
||||||
collada_scene.draw_instance_controllers(node_state, node.instance_controllers)
|
collada_scene.draw_instance_controllers(node_state, node.instance_controllers)
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
@ -303,12 +303,12 @@ collada_scene = {
|
|||||||
-- color
|
-- color
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
shader_color_static:send("view_position", view_position.data)
|
shader_color_static:send("view_position", view_position:data())
|
||||||
shader_color_static:send("light_position", light_position.data)
|
shader_color_static:send("light_position", light_position:data())
|
||||||
--shader_color_static:send("shadow_sampler", g_shadow_canvas)
|
--shader_color_static:send("shadow_sampler", g_shadow_canvas)
|
||||||
|
|
||||||
shader_color_skinned:send("view_position", view_position.data)
|
shader_color_skinned:send("view_position", view_position:data())
|
||||||
shader_color_skinned:send("light_position", light_position.data)
|
shader_color_skinned:send("light_position", light_position:data())
|
||||||
--shader_color_skinned:send("shadow_sampler", g_shadow_canvas)
|
--shader_color_skinned:send("shadow_sampler", g_shadow_canvas)
|
||||||
|
|
||||||
love.graphics.setCanvas({g_color_canvas, g_position_canvas, g_normal_canvas, depth=true})
|
love.graphics.setCanvas({g_color_canvas, g_position_canvas, g_normal_canvas, depth=true})
|
||||||
@ -331,7 +331,7 @@ collada_scene = {
|
|||||||
if true then
|
if true then
|
||||||
love.graphics.setCanvas({g_occlusion_canvas_a, depth=false})
|
love.graphics.setCanvas({g_occlusion_canvas_a, depth=false})
|
||||||
love.graphics.setShader(shader_ssao)
|
love.graphics.setShader(shader_ssao)
|
||||||
shader_ssao:send("projection", "column", perspective_projection.data)
|
shader_ssao:send("projection", "column", perspective_projection:data())
|
||||||
--shader_ssao:send("g_color_sampler", g_color_canvas)
|
--shader_ssao:send("g_color_sampler", g_color_canvas)
|
||||||
shader_ssao:send("g_position_sampler", g_position_canvas)
|
shader_ssao:send("g_position_sampler", g_position_canvas)
|
||||||
shader_ssao:send("g_normal_sampler", g_normal_canvas)
|
shader_ssao:send("g_normal_sampler", g_normal_canvas)
|
||||||
|
|||||||
@ -30,11 +30,11 @@ local transform_matrix = function (loaded_transform)
|
|||||||
elseif type == collada_types.transform_type.MATRIX then
|
elseif type == collada_types.transform_type.MATRIX then
|
||||||
return value
|
return value
|
||||||
elseif type == collada_types.transform_type.ROTATE then
|
elseif type == collada_types.transform_type.ROTATE then
|
||||||
if value.f[0] == 0 and value.f[1] == 0 and value.f[2] == 0 then
|
if value.x == 0 and value.y == 0 and value.z == 0 then
|
||||||
-- WUT?
|
-- WUT?
|
||||||
return mat4.identity()
|
return mat4.identity()
|
||||||
end
|
end
|
||||||
return mat4.rotation_axis(value, scalar.convert_to_radians(value.f[3]))
|
return mat4.rotation_axis(value, scalar.convert_to_radians(value.w))
|
||||||
elseif type == collada_types.transform_type.SCALE then
|
elseif type == collada_types.transform_type.SCALE then
|
||||||
return mat4.scaling_from_vector(value)
|
return mat4.scaling_from_vector(value)
|
||||||
elseif type == collada_types.transform_type.TRANSLATE then
|
elseif type == collada_types.transform_type.TRANSLATE then
|
||||||
|
|||||||
2
font.lua
2
font.lua
@ -79,7 +79,7 @@ local draw_string = function(font, s, x, y)
|
|||||||
for i = 1, #s do
|
for i = 1, #s do
|
||||||
local c = s:byte(i)
|
local c = s:byte(i)
|
||||||
if c ~= 32 then
|
if c ~= 32 then
|
||||||
shader_font:send("transform", "column", glyph_transform(font, x, y).data)
|
shader_font:send("transform", "column", glyph_transform(font, x, y):data())
|
||||||
shader_font:send("glyph", glyph_coordinate(font, c))
|
shader_font:send("glyph", glyph_coordinate(font, c))
|
||||||
love.graphics.drawFromShader(screen_index_buffer, 3 * 2, 1, 1)
|
love.graphics.drawFromShader(screen_index_buffer, 3 * 2, 1, 1)
|
||||||
end
|
end
|
||||||
|
|||||||
1
main.lua
1
main.lua
@ -166,6 +166,7 @@ function love.run()
|
|||||||
local dt = love.timer.step()
|
local dt = love.timer.step()
|
||||||
update(dt)
|
update(dt)
|
||||||
draw()
|
draw()
|
||||||
|
|
||||||
love.graphics.present()
|
love.graphics.present()
|
||||||
love.timer.sleep(0.001)
|
love.timer.sleep(0.001)
|
||||||
end
|
end
|
||||||
|
|||||||
@ -32,9 +32,9 @@ local generate_ssao_kernel = function(kernel_samples)
|
|||||||
local scale = i / kernel_samples
|
local scale = i / kernel_samples
|
||||||
scale = lerp(0.1, 1.0, scale * scale)
|
scale = lerp(0.1, 1.0, scale * scale)
|
||||||
v = vec3.multiply_scalar(v, love.math.random() * scale)
|
v = vec3.multiply_scalar(v, love.math.random() * scale)
|
||||||
ssao_kernel_data_ptr[i * 4 + 0] = v.f[0]
|
ssao_kernel_data_ptr[i * 4 + 0] = v.x
|
||||||
ssao_kernel_data_ptr[i * 4 + 1] = v.f[1]
|
ssao_kernel_data_ptr[i * 4 + 1] = v.y
|
||||||
ssao_kernel_data_ptr[i * 4 + 2] = v.f[2]
|
ssao_kernel_data_ptr[i * 4 + 2] = v.z
|
||||||
--ssao_kernel_data_ptr[i * 4 + 3] = 0
|
--ssao_kernel_data_ptr[i * 4 + 3] = 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user