Added canvas sizes 2, 4, 8 and 32; tweaks here and there

master
entuland 2018-05-16 23:48:15 +02:00
parent b7acb150b8
commit c722243971
11 changed files with 681 additions and 289 deletions

View File

@ -7,29 +7,39 @@ If you like my contributions you may consider reading http://entuland.com/en/sup
WIP MOD forum thread: https://forum.minetest.net/viewtopic.php?f=9&t=20115
# Recipe for the Canvas block
# Canvas recipes
wesh:canvas
W = any wool block
B = bronze ingot
I = ingot
WWW
WBW
WIW
WWW
wesh:canvas02 (steel ingot)
wesh:canvas04 (copper ingot)
wesh:canvas08 (tin ingot)
wesh:canvas16 (bronze ingot) - wesh:canvas gives you wesh:canvas16, kept for compatibility
wesh:canvas32 (gold ingot)
![Canvas recipe](/screenshots/canvas-recipe.png)
# How to use
Place down a Canvas block, you'll see that it extends beyond its node space marking a 16x16x16 space.
Place down a Canvas block, you'll see that it extends beyond its node space marking a cube (available in sizes 2, 4, 8, 16 and 32)
The following screenshots show the old texture of the canvas (the one and only 16x16x16) now replaced by a new texture marked 16 just like the ones you can here below:
![Canvas sizes](/screenshots/canvas-sizes.png)
So here is the example using the canvas with size 16 marking its capture space:
![Empty canvas](/screenshots/canvas-empty.png)
In this space you can build anthing you like by using colored wool blocks.
In this space you can build anthing you like by using colored wool blocks_
![Building inside the canvas](/screenshots/canvas-build.png)
Once you're done with your build, go to the Canvas block and right click it: you'll be asked to provide a name for your mesh (you can type any text in there, with uppercases and any symbol).
Once you're done with your build, go to the Canvas block and right click it: you'll be asked to provide a name for your mesh (you can type any text in there, with uppercases and any symbol):
![Request for name](/screenshots/prompt-name.png)
@ -40,7 +50,7 @@ When you confirm such name (you can cancel it by hitting the ESC key) you'll lik
If you confirm the name by hitting ENTER you may not be presented with the above confirmation. It will appear in the chat as well just in case.
Upon saving a few temporary files will be created in the "/mod_storage/wesh" subfolder in your world's folder:
- the .obj file will contain a model with your build scaled down 16 times (so that it will occupy only one block)
- the .obj file will contain a model with your build scaled down to fit exactly one block
- the .dat file will contain the original name you have chosen for your mesh, along with some other data (read the section about using custom textures below)
- the .matrix.dat file will contain a serialized version of your build, that may eventually get used to rebuild / reimport it in the game allowing you to alter it (right now you can't import them, so make sure you don't dismantle your build if you want to alter and capture it again)
@ -83,6 +93,8 @@ In the .dat file of each mesh you'll find something like this:
},
}
(please consider that the number "16" here above indicates the size of the texture, it has nothing to do with the size of the canvas you use to capture your build)
In order to add a new variant simply add a line with your texture name and make sure you save such texture file in the "/textures" folder of the mod. You can also remove the lines you're not interested in and the mod will not generate those variants.
For example, here we remove all but the "plain" version and add a custom one:

123
init.lua
View File

@ -28,25 +28,34 @@ end
function wesh._main_bindings()
minetest.register_on_player_receive_fields(wesh.on_receive_fields)
minetest.register_craft({
output = "wesh:canvas",
recipe = {
{'group:wool', 'group:wool', 'group:wool'},
{'group:wool', 'default:bronze_ingot', 'group:wool'},
{'group:wool', 'group:wool', 'group:wool'},
}
})
minetest.register_node("wesh:canvas", {
drawtype = "mesh",
mesh = "zzz_wesh_canvas.obj",
tiles = { "wool-72.png" },
paramtype2 = "facedir",
on_rightclick = wesh.canvas_interaction,
description = "Woolen Mesh Canvas",
walkable = true,
groups = { dig_immediate = 3},
})
local function register_canvas(size, ingot)
minetest.register_craft({
output = "wesh:canvas" .. size,
recipe = {
{"group:wool", "group:wool", "group:wool"},
{"group:wool", "default:" .. ingot .. "_ingot", "group:wool"},
{"group:wool", "group:wool", "group:wool"},
}
})
minetest.register_node("wesh:canvas" .. size, {
drawtype = "mesh",
mesh = "zzz_canvas" .. size .. ".obj",
tiles = { "canvas.png" },
paramtype2 = "facedir",
on_rightclick = wesh.canvas_interaction,
description = "Woolen Mesh Canvas - Size " .. size,
walkable = true,
groups = { dig_immediate = 3 },
})
end
register_canvas("02", "steel")
register_canvas("04", "copper")
register_canvas("08", "tin")
register_canvas("16", "bronze")
register_canvas("32", "gold")
minetest.register_alias("wesh:canvas", "wesh:canvas16")
end
-- creates a 4x4 grid of UV mappings, each with a margin of one pixel
@ -157,16 +166,17 @@ function wesh._init_geometry()
}
end
function wesh._reset_geometry()
function wesh._reset_geometry(canv_size)
wesh.matrix = {}
wesh.vertices = {}
wesh.vertices_indices = {}
wesh.faces = {}
wesh.traverse_matrix(function(p)
local function reset(p)
if not wesh.matrix[p.x] then wesh.matrix[p.x] = {} end
if not wesh.matrix[p.x][p.y] then wesh.matrix[p.x][p.y] = {} end
wesh.matrix[p.x][p.y][p.z] = "air"
end)
end
wesh.traverse_matrix(reset, canv_size)
end
-- ========================================================================
@ -183,20 +193,31 @@ end
function wesh.on_receive_fields(player, formname, fields)
if formname == "save_mesh" then
local canvas = wesh.player_canvas[player:get_player_name()]
wesh.save_new_mesh(canvas.pos, canvas.facedir, player, fields.meshname)
canvas.node = minetest.get_node_or_nil(canvas.pos)
if not canvas.node then return end
local canv_size = canvas.node.name:gsub(".*(%d%d)$", "%1")
if not canv_size then canv_size = 16 end
canv_size = tonumber(canv_size)
if canv_size ~= 2 and canv_size ~= 4 and canv_size ~= 8 and canv_size ~= 32 then
canv_size = 16
end
wesh.save_new_mesh(canvas.pos, canv_size, canvas.facedir, player, fields.meshname)
end
end
function wesh.save_new_mesh(canvas_pos, facedir, player, description)
function wesh.save_new_mesh(canvas_pos, canv_size, facedir, player, description)
-- empty all helper variables
wesh._reset_geometry()
wesh._reset_geometry(canv_size)
-- read all nodes from the canvas space in the world
-- extract the colors and put them into a helper matrix of color voxels
wesh.traverse_matrix(wesh.node_to_voxel, canvas_pos, facedir)
wesh.traverse_matrix(wesh.node_to_voxel, canv_size, canv_size, canvas_pos, facedir)
-- generate faces according to voxels
wesh.traverse_matrix(wesh.voxel_to_faces)
wesh.traverse_matrix(wesh.voxel_to_faces, canv_size, canv_size)
-- this will be the actual content of the .obj file
local vt_section = wesh.vertex_textures
@ -343,13 +364,13 @@ end
-- mesh generation helpers
-- ========================================================================
function wesh.construct_face(rel_pos, texture_vertices, facename, vertices, normal_index)
function wesh.construct_face(rel_pos, canv_size, texture_vertices, facename, vertices, normal_index)
local normal = wesh.face_normals[normal_index]
local hider_pos = vector.add(rel_pos, normal)
if not wesh.out_of_bounds(hider_pos) and wesh.get_voxel_color(hider_pos) ~= "air" then return end
if not wesh.out_of_bounds(hider_pos, canv_size) and wesh.get_voxel_color(hider_pos) ~= "air" then return end
local face_line = "f "
for i, vertex in ipairs(vertices) do
local index = wesh.get_vertex_index(rel_pos, vertex)
local index = wesh.get_vertex_index(rel_pos, canv_size, vertex)
face_line = face_line .. index .. "/" .. texture_vertices[i] .. "/" .. normal_index .. " "
end
table.insert(wesh.faces, face_line)
@ -373,18 +394,18 @@ end
function wesh.get_node_color(pos)
local node = minetest.get_node_or_nil(pos)
if not node then return "trasparent" end
if not node then return "air" end
local parts = string.split(node.name, ":")
return parts[#parts]
end
function wesh.make_absolute(canvas_pos, facedir, relative_pos)
-- relative positions range from (1, 1, 1) to (16, 16, 16)
function wesh.make_absolute(canvas_pos, canv_size, facedir, relative_pos)
-- relative positions range from (1, 1, 1) to (canv_size, canv_size, canv_size)
-- shift relative to canvas node within canvas space
local shifted_pos = {}
shifted_pos.y = relative_pos.y - 1
shifted_pos.x = relative_pos.x - 8
shifted_pos.x = relative_pos.x - (canv_size / 2)
shifted_pos.z = relative_pos.z
-- transform according to canvas facedir
@ -400,33 +421,33 @@ function wesh.transform(facedir, pos)
return (wesh._transfunc[facedir + 1] or wesh._transfunc[1])(pos)
end
function wesh.node_to_voxel(rel_pos, canvas_pos, facedir)
local abs_pos = wesh.make_absolute(canvas_pos, facedir, rel_pos)
function wesh.node_to_voxel(rel_pos, canv_size, canvas_pos, facedir)
local abs_pos = wesh.make_absolute(canvas_pos, canv_size, facedir, rel_pos)
local color = wesh.get_node_color(abs_pos)
wesh.set_voxel_color(rel_pos, color)
end
function wesh.voxel_to_faces(rel_pos)
function wesh.voxel_to_faces(rel_pos, canv_size)
local color = wesh.get_voxel_color(rel_pos)
if color == "air" then return end
for facename, facedata in pairs(wesh.face_construction) do
local texture_vertices = wesh.get_texture_vertices(color)
wesh.construct_face(rel_pos, texture_vertices, facename, facedata.vertices, facedata.normal)
wesh.construct_face(rel_pos, canv_size, texture_vertices, facename, facedata.vertices, facedata.normal)
end
end
function wesh.get_vertex_index(pos, vertex_number)
function wesh.get_vertex_index(pos, canv_size, vertex_number)
-- get integral offset of vertices related to voxel center
local offset = wesh.cube_vertices[vertex_number]
-- convert integral offset to real offset
offset = vector.multiply(offset, 1/32)
offset = vector.multiply(offset, 1/canv_size/2)
-- scale voxel center from range 1~16 to range 1/16 ~ 1
pos = vector.divide(pos, 16)
-- scale voxel center from range 1~canv_size to range 1/canv_size ~ 1
pos = vector.divide(pos, canv_size)
-- center whole mesh around zero and shift it to make room for offsets
pos = vector.subtract(pos, 1/2 + 1/32)
pos = vector.subtract(pos, 1/2 + 1/canv_size/2)
-- not really sure whether this should be done here,
-- but if I don't do this the resulting mesh will be wrongly mirrored
@ -465,10 +486,10 @@ end
-- generic helpers
-- ========================================================================
function wesh.out_of_bounds(pos)
return pos.x < 1 or pos.x > 16
or pos.y < 1 or pos.y > 16
or pos.z < 1 or pos.z > 16
function wesh.out_of_bounds(pos, canv_size)
return pos.x < 1 or pos.x > canv_size
or pos.y < 1 or pos.y > canv_size
or pos.z < 1 or pos.z > canv_size
end
function wesh.check_plain(text)
@ -477,10 +498,10 @@ function wesh.check_plain(text)
return text:gsub("[^%w]+", "_"):lower()
end
function wesh.traverse_matrix(callback, ...)
for x = 1, 16 do
for y = 1, 16 do
for z = 1, 16 do
function wesh.traverse_matrix(callback, canv_size, ...)
for x = 1, canv_size do
for y = 1, canv_size do
for z = 1, canv_size do
callback({x = x, y = y, z = z}, ...)
end
end

View File

@ -1,3 +1,3 @@
This folder will contain your generated meshes, if you want to get rid of any of them you need to delete them from here
IMPORTANT: do NOT delete the file "zzz_wesh_canvas.obj"
IMPORTANT: do NOT delete any of the "zzz_canvas_NN.obj" files!

116
models/zzz_canvas02.obj Normal file
View File

@ -0,0 +1,116 @@
# Blender v2.79 (sub 0) OBJ File: 'canvas2.blend'
# www.blender.org
mtllib canvas2.mtl
o mesh01
v 0.500000 -0.490000 0.500000
v 0.400000 -0.490000 0.500000
v 0.400000 -0.490000 2.400000
v 0.500000 -0.490000 2.400000
v -1.400000 -0.490000 0.600000
v -1.500000 -0.490000 0.600000
v -1.500000 -0.490000 2.500000
v -1.400000 -0.490000 2.500000
v 0.500000 -0.490000 2.500000
v 0.500000 -0.490000 2.400000
v -1.400000 -0.490000 2.400000
v -1.400000 -0.490000 2.500000
v 0.400000 -0.490000 0.600000
v 0.400000 -0.490000 0.500000
v -1.500000 -0.490000 0.500000
v -1.500000 -0.490000 0.600000
v 0.500000 1.490000 0.500000
v 0.400000 1.490000 0.500000
v 0.400000 1.490000 2.400000
v 0.500000 1.490000 2.400000
v -1.400000 1.490000 0.600000
v -1.500000 1.490000 0.600000
v -1.500000 1.490000 2.500000
v -1.400000 1.490000 2.500000
v 0.500000 1.490000 2.500000
v 0.500000 1.490000 2.400000
v -1.400000 1.490000 2.400000
v -1.400000 1.490000 2.500000
v 0.400000 1.490000 0.600000
v 0.400000 1.490000 0.500000
v -1.500000 1.490000 0.500000
v -1.500000 1.490000 0.600000
v 0.500000 0.500000 0.500000
v -0.500000 0.500000 0.500000
v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.500000
v -0.500000 0.500000 -0.500000
v 0.500000 0.500000 -0.500000
v 0.500000 -0.500000 -0.500000
vt 0.645833 0.250000
vt 0.645833 0.284722
vt 0.013889 0.284722
vt 0.013889 0.250000
vt 0.645833 0.076389
vt 0.645833 0.111111
vt 0.013889 0.111111
vt 0.013889 0.076389
vt 0.645833 0.041667
vt 0.645833 0.076389
vt 0.013889 0.076389
vt 0.013889 0.041667
vt 0.645833 0.145833
vt 0.645833 0.180556
vt 0.013889 0.180556
vt 0.013889 0.145833
vt 0.645833 0.180556
vt 0.645833 0.215278
vt 0.013889 0.215278
vt 0.013889 0.180556
vt 0.645833 0.215278
vt 0.645833 0.250000
vt 0.013889 0.250000
vt 0.013889 0.215278
vt 0.645833 0.013889
vt 0.645833 0.041667
vt 0.013889 0.041667
vt 0.013889 0.013889
vt 0.645833 0.111111
vt 0.645833 0.145833
vt 0.013889 0.145833
vt 0.013889 0.111111
vt 1.000000 0.666667
vt 0.666667 0.666667
vt 0.666667 0.333333
vt 1.000000 0.333333
vt 0.666667 0.333333
vt 0.666667 0.666667
vt 0.333333 0.666667
vt 0.333333 0.333333
vt 1.000000 0.333333
vt 1.000000 0.666667
vt 0.666667 0.666667
vt 0.666667 0.333333
vt 1.000000 0.666667
vt 1.000000 0.333333
vt 0.666667 0.333333
vt 1.000000 0.333333
vt 1.000000 0.666667
vt 0.666667 0.666667
vn 0.0000 1.0000 -0.0000
vn 0.0000 0.0000 1.0000
vn -0.0000 -0.0000 -1.0000
vn 1.0000 -0.0000 -0.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 -1.0000 0.0000
usemtl ___default___
s 1
f 1/1/1 2/2/1 3/3/1 4/4/1
f 5/5/1 6/6/1 7/7/1 8/8/1
f 9/9/1 10/10/1 11/11/1 12/12/1
f 13/13/1 14/14/1 15/15/1 16/16/1
f 17/17/1 18/18/1 19/19/1 20/20/1
f 21/21/1 22/22/1 23/23/1 24/24/1
f 25/25/1 26/26/1 27/27/1 28/28/1
f 29/29/1 30/30/1 31/31/1 32/32/1
f 33/33/2 34/34/2 35/35/2 36/36/2
f 37/37/3 38/38/3 39/39/3 40/40/3
f 40/41/4 39/42/4 33/43/4 36/44/4
f 34/45/5 38/38/5 37/37/5 35/46/5
f 39/47/1 38/48/1 34/45/1 33/43/1
f 35/46/6 37/49/6 40/50/6 36/44/6

118
models/zzz_canvas04.obj Normal file
View File

@ -0,0 +1,118 @@
# Blender v2.79 (sub 0) OBJ File: 'canvas4.blend'
# www.blender.org
mtllib canvas4.mtl
o mesh01.001_mesh01.002
v 1.500000 -0.490000 0.500000
v 1.400000 -0.490000 0.500000
v 1.400000 -0.489999 4.400000
v 1.500000 -0.489999 4.400000
v -2.400000 -0.490000 0.600000
v -2.500000 -0.490000 0.600000
v -2.500000 -0.489999 4.500000
v -2.400000 -0.489999 4.500000
v 1.500000 -0.489999 4.500000
v 1.500000 -0.489999 4.400000
v -2.400000 -0.489999 4.400001
v -2.400000 -0.489999 4.500000
v 1.400000 -0.490000 0.600000
v 1.400000 -0.490000 0.500000
v -2.500000 -0.490000 0.500000
v -2.500000 -0.490000 0.600000
v 1.500000 3.490000 0.499999
v 1.400000 3.490000 0.499999
v 1.400000 3.490001 4.400000
v 1.500000 3.490001 4.400000
v -2.400000 3.490000 0.600000
v -2.500000 3.490000 0.600000
v -2.500000 3.490001 4.500000
v -2.400000 3.490001 4.500000
v 1.500000 3.490001 4.500000
v 1.500000 3.490001 4.400000
v -2.400000 3.490001 4.400000
v -2.400000 3.490001 4.500000
v 1.400000 3.490000 0.599999
v 1.400000 3.490000 0.499999
v -2.500000 3.490000 0.500000
v -2.500000 3.490000 0.600000
v 0.500000 0.500000 0.500000
v -0.500000 0.500000 0.500000
v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.500000
v -0.500000 0.500000 -0.500000
v 0.500000 0.500000 -0.500000
v 0.500000 -0.500000 -0.500000
vt 1.000000 0.284722
vt 1.000000 0.298611
vt 0.430556 0.298611
vt 0.430556 0.284722
vt 1.000000 0.243056
vt 1.000000 0.256944
vt 0.430556 0.256944
vt 0.430556 0.243056
vt 0.430556 0.243056
vt 0.430556 0.229167
vt 0.993056 0.229167
vt 0.993056 0.243056
vt 0.430556 0.215278
vt 0.430556 0.201389
vt 0.993056 0.201389
vt 0.993056 0.215278
vt 1.000000 0.270833
vt 1.000000 0.284722
vt 0.430556 0.284722
vt 0.430556 0.270833
vt 1.000000 0.256944
vt 1.000000 0.270833
vt 0.430556 0.270833
vt 0.430556 0.256944
vt 0.430556 0.229167
vt 0.430556 0.215278
vt 0.993056 0.215278
vt 0.993056 0.229167
vt 0.430556 0.201389
vt 0.430556 0.187500
vt 0.993056 0.187500
vt 0.993056 0.201389
vt 1.000000 0.666667
vt 0.666667 0.666667
vt 0.666667 0.333333
vt 1.000000 0.333333
vt 0.333333 0.333333
vt 0.333333 0.666667
vt -0.000000 0.666667
vt 0.000000 0.333333
vt 1.000000 0.333333
vt 1.000000 0.666667
vt 0.666667 0.666667
vt 0.666667 0.333333
vt 1.000000 0.666667
vt 0.666667 0.666667
vt 0.666667 0.333333
vt 1.000000 0.333333
vt 0.666667 0.333333
vt 1.000000 0.333333
vt 1.000000 0.666667
vt 0.666667 0.666667
vn 0.0000 1.0000 -0.0000
vn 0.0000 0.0000 1.0000
vn -0.0000 -0.0000 -1.0000
vn 1.0000 -0.0000 -0.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 -1.0000 0.0000
usemtl ___default___.002
s 1
f 1/1/1 2/2/1 3/3/1 4/4/1
f 5/5/1 6/6/1 7/7/1 8/8/1
f 9/9/1 10/10/1 11/11/1 12/12/1
f 13/13/1 14/14/1 15/15/1 16/16/1
f 17/17/1 18/18/1 19/19/1 20/20/1
f 21/21/1 22/22/1 23/23/1 24/24/1
f 25/25/1 26/26/1 27/27/1 28/28/1
f 29/29/1 30/30/1 31/31/1 32/32/1
f 33/33/2 34/34/2 35/35/2 36/36/2
f 37/37/3 38/38/3 39/39/3 40/40/3
f 40/41/4 39/42/4 33/43/4 36/44/4
f 34/45/5 38/46/5 37/47/5 35/48/5
f 39/49/1 38/50/1 34/45/1 33/43/1
f 35/48/6 37/51/6 40/52/6 36/44/6

116
models/zzz_canvas08.obj Normal file
View File

@ -0,0 +1,116 @@
# Blender v2.79 (sub 0) OBJ File: 'canvas8.blend'
# www.blender.org
mtllib canvas8.mtl
o mesh01.003
v 3.500000 -0.490000 0.500000
v 3.400000 -0.490000 0.500000
v 3.400001 -0.489999 8.400000
v 3.500001 -0.489999 8.400000
v -4.400000 -0.490000 0.600001
v -4.500000 -0.490000 0.600001
v -4.499999 -0.489999 8.500000
v -4.399999 -0.489999 8.500000
v 3.500001 -0.489999 8.500000
v 3.500001 -0.489999 8.400000
v -4.399999 -0.489999 8.400000
v -4.399999 -0.489999 8.500000
v 3.400000 -0.490000 0.600000
v 3.400000 -0.490000 0.500000
v -4.500000 -0.490000 0.500000
v -4.500000 -0.490000 0.600001
v 3.500000 7.490000 0.499998
v 3.400000 7.490000 0.499998
v 3.400001 7.490001 8.399998
v 3.500001 7.490001 8.399998
v -4.400000 7.490000 0.599999
v -4.500000 7.490000 0.599999
v -4.499999 7.490001 8.499999
v -4.399999 7.490001 8.499999
v 3.500001 7.490001 8.499998
v 3.500001 7.490001 8.399998
v -4.399999 7.490001 8.399999
v -4.399999 7.490001 8.499999
v 3.400000 7.490000 0.599999
v 3.400000 7.490000 0.499998
v -4.500000 7.490000 0.499999
v -4.500000 7.490000 0.599999
v 0.500000 0.500000 0.500000
v -0.500000 0.500000 0.500000
v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.500000
v -0.500000 0.500000 -0.500000
v 0.500000 0.500000 -0.500000
v 0.500000 -0.500000 -0.500000
vt 1.000000 0.215278
vt 1.000000 0.229167
vt 0.000000 0.229167
vt 0.000000 0.215278
vt 1.000000 0.125000
vt 1.000000 0.145833
vt 0.000000 0.145833
vt 0.000000 0.125000
vt 1.000000 0.090278
vt 1.000000 0.104167
vt 0.000000 0.104167
vt 0.000000 0.090278
vt 1.000000 0.180556
vt 1.000000 0.194444
vt 0.000000 0.194444
vt 0.000000 0.180556
vt 1.000000 0.145833
vt 1.000000 0.159722
vt 0.000000 0.159722
vt 0.000000 0.145833
vt 1.000000 0.104167
vt 1.000000 0.125000
vt 0.000000 0.125000
vt 0.000000 0.104167
vt 1.000000 0.194444
vt 1.000000 0.215278
vt 0.000000 0.215278
vt 0.000000 0.194444
vt 1.000000 0.159722
vt 1.000000 0.180556
vt 0.000000 0.180556
vt 0.000000 0.159722
vt 1.000000 0.666667
vt 0.666667 0.666667
vt 0.666667 0.333333
vt 1.000000 0.333333
vt 1.000000 0.666667
vt 1.000000 1.000000
vt 0.666667 1.000000
vt 0.666667 0.666667
vt 1.000000 0.333333
vt 1.000000 0.666667
vt 0.666667 0.666667
vt 0.666667 0.333333
vt 1.000000 0.666667
vt 0.666667 0.666667
vt 0.666667 0.333333
vt 1.000000 0.333333
vt 0.666667 0.333333
vt 1.000000 0.333333
vn 0.0000 1.0000 -0.0000
vn 0.0000 0.0000 1.0000
vn -0.0000 -0.0000 -1.0000
vn 1.0000 -0.0000 -0.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 -1.0000 0.0000
usemtl ___default___.003
s 1
f 1/1/1 2/2/1 3/3/1 4/4/1
f 5/5/1 6/6/1 7/7/1 8/8/1
f 9/9/1 10/10/1 11/11/1 12/12/1
f 13/13/1 14/14/1 15/15/1 16/16/1
f 17/17/1 18/18/1 19/19/1 20/20/1
f 21/21/1 22/22/1 23/23/1 24/24/1
f 25/25/1 26/26/1 27/27/1 28/28/1
f 29/29/1 30/30/1 31/31/1 32/32/1
f 33/33/2 34/34/2 35/35/2 36/36/2
f 37/37/3 38/38/3 39/39/3 40/40/3
f 40/41/4 39/42/4 33/43/4 36/44/4
f 34/45/5 38/46/5 37/47/5 35/48/5
f 39/49/1 38/50/1 34/45/1 33/43/1
f 35/48/6 37/37/6 40/40/6 36/44/6

118
models/zzz_canvas16.obj Normal file
View File

@ -0,0 +1,118 @@
# Blender v2.79 (sub 0) OBJ File: 'canvas16.blend'
# www.blender.org
mtllib canvas16.mtl
o mesh01.004
v 7.500000 -0.490000 0.499999
v 7.400000 -0.490000 0.499999
v 7.400002 -0.489997 16.400000
v 7.500001 -0.489997 16.400000
v -8.400000 -0.490000 0.600001
v -8.500000 -0.490000 0.600001
v -8.499998 -0.489997 16.500000
v -8.399998 -0.489997 16.500000
v 7.500001 -0.489997 16.500000
v 7.500001 -0.489997 16.400000
v -8.399998 -0.489997 16.400000
v -8.399998 -0.489997 16.500000
v 7.400000 -0.490000 0.599999
v 7.400000 -0.490000 0.499999
v -8.500000 -0.490000 0.500001
v -8.500000 -0.490000 0.600001
v 7.500000 15.490000 0.499997
v 7.400000 15.490000 0.499997
v 7.400002 15.490003 16.399996
v 7.500001 15.490003 16.399996
v -8.400000 15.490000 0.599998
v -8.500000 15.490000 0.599998
v -8.499998 15.490003 16.499998
v -8.399998 15.490003 16.499998
v 7.500001 15.490003 16.499996
v 7.500001 15.490003 16.399996
v -8.399998 15.490003 16.399998
v -8.399998 15.490003 16.499998
v 7.400000 15.490000 0.599997
v 7.400000 15.490000 0.499997
v -8.500000 15.490000 0.499998
v -8.500000 15.490000 0.599998
v 0.500000 0.500000 0.500000
v -0.500000 0.500000 0.500000
v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.500000
v -0.500000 0.500000 -0.500000
v 0.500000 0.500000 -0.500000
v 0.500000 -0.500000 -0.500000
vt 1.000000 0.236111
vt 1.000000 0.270833
vt -0.000000 0.270833
vt -0.000000 0.236111
vt 1.000000 0.166667
vt 1.000000 0.201389
vt -0.000000 0.201389
vt -0.000000 0.166667
vt 1.000000 0.097222
vt 1.000000 0.131944
vt -0.000000 0.131944
vt -0.000000 0.097222
vt -0.000000 0.062500
vt -0.000000 0.020833
vt 1.000000 0.020833
vt 1.000000 0.062500
vt 1.000000 0.270833
vt 1.000000 0.312500
vt -0.000000 0.312500
vt -0.000000 0.270833
vt 1.000000 0.201389
vt 1.000000 0.236111
vt -0.000000 0.236111
vt -0.000000 0.201389
vt -0.000000 0.166667
vt -0.000000 0.131944
vt 1.000000 0.131944
vt 1.000000 0.166667
vt 1.000000 0.062500
vt 1.000000 0.097222
vt -0.000000 0.097222
vt -0.000000 0.062500
vt 1.000000 0.666667
vt 0.666667 0.666667
vt 0.666667 0.333333
vt 1.000000 0.333333
vt 0.666667 0.666667
vt 0.666667 1.000000
vt 0.333333 1.000000
vt 0.333333 0.666667
vt 1.000000 0.333333
vt 1.000000 0.666667
vt 0.666667 0.666667
vt 0.666667 0.333333
vt 1.000000 0.666667
vt 0.666667 0.666667
vt 0.666667 0.333333
vt 1.000000 0.333333
vt 0.666667 0.333333
vt 1.000000 0.333333
vt 1.000000 0.666667
vt 0.666667 0.666667
vn 0.0000 1.0000 -0.0000
vn 0.0000 0.0000 1.0000
vn -0.0000 -0.0000 -1.0000
vn 1.0000 -0.0000 -0.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 -1.0000 0.0000
usemtl ___default___.004
s 1
f 1/1/1 2/2/1 3/3/1 4/4/1
f 5/5/1 6/6/1 7/7/1 8/8/1
f 9/9/1 10/10/1 11/11/1 12/12/1
f 13/13/1 14/14/1 15/15/1 16/16/1
f 17/17/1 18/18/1 19/19/1 20/20/1
f 21/21/1 22/22/1 23/23/1 24/24/1
f 25/25/1 26/26/1 27/27/1 28/28/1
f 29/29/1 30/30/1 31/31/1 32/32/1
f 33/33/2 34/34/2 35/35/2 36/36/2
f 37/37/3 38/38/3 39/39/3 40/40/3
f 40/41/4 39/42/4 33/43/4 36/44/4
f 34/45/5 38/46/5 37/47/5 35/48/5
f 39/49/1 38/50/1 34/45/1 33/43/1
f 35/48/6 37/51/6 40/52/6 36/44/6

118
models/zzz_canvas32.obj Normal file
View File

@ -0,0 +1,118 @@
# Blender v2.79 (sub 0) OBJ File: 'canvas32.blend'
# www.blender.org
mtllib canvas32.mtl
o mesh01.005
v 15.500000 -0.490000 0.499999
v 15.400000 -0.490000 0.499999
v 15.400002 -0.489995 32.400002
v 15.500003 -0.489995 32.400002
v -16.400000 -0.490000 0.600002
v -16.500000 -0.490000 0.600002
v -16.499998 -0.489995 32.500000
v -16.399998 -0.489995 32.500000
v 15.500003 -0.489995 32.500000
v 15.500003 -0.489995 32.400002
v -16.399998 -0.489995 32.400002
v -16.399998 -0.489995 32.500000
v 15.400000 -0.490000 0.599999
v 15.400000 -0.490000 0.499999
v -16.500000 -0.490000 0.500002
v -16.500000 -0.490000 0.600002
v 15.500000 31.490000 0.499994
v 15.400000 31.490000 0.499994
v 15.400002 31.490005 32.399994
v 15.500003 31.490005 32.399994
v -16.400000 31.490000 0.599996
v -16.500000 31.490000 0.599996
v -16.499998 31.490005 32.499996
v -16.399998 31.490005 32.499996
v 15.500003 31.490005 32.499992
v 15.500003 31.490005 32.399994
v -16.399998 31.490005 32.399998
v -16.399998 31.490005 32.499996
v 15.400000 31.490000 0.599994
v 15.400000 31.490000 0.499994
v -16.500000 31.490000 0.499996
v -16.500000 31.490000 0.599996
v 0.500000 0.500000 0.500000
v -0.500000 0.500000 0.500000
v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.500000
v -0.500000 0.500000 -0.500000
v 0.500000 0.500000 -0.500000
v 0.500000 -0.500000 -0.500000
vt 1.000000 0.166667
vt 1.000000 0.201389
vt 0.000000 0.201389
vt 0.000000 0.166667
vt 1.000000 0.131944
vt 1.000000 0.166667
vt 0.000000 0.166667
vt 0.000000 0.131944
vt 0.000000 0.312500
vt 0.000000 0.270833
vt 1.000000 0.270833
vt 1.000000 0.312500
vt 1.000000 0.201389
vt 1.000000 0.236111
vt 0.000000 0.236111
vt 0.000000 0.201389
vt 1.000000 0.097222
vt 1.000000 0.131944
vt 0.000000 0.131944
vt 0.000000 0.097222
vt 1.000000 0.062500
vt 1.000000 0.097222
vt 0.000000 0.097222
vt 0.000000 0.062500
vt 1.000000 0.236111
vt 1.000000 0.270833
vt 0.000000 0.270833
vt 0.000000 0.236111
vt 1.000000 0.020833
vt 1.000000 0.062500
vt 0.000000 0.062500
vt 0.000000 0.020833
vt 1.000000 0.666667
vt 0.666667 0.666667
vt 0.666667 0.333333
vt 1.000000 0.333333
vt 0.333333 0.666667
vt 0.333333 1.000000
vt 0.000000 1.000000
vt 0.000000 0.666667
vt 1.000000 0.333333
vt 1.000000 0.666667
vt 0.666667 0.666667
vt 0.666667 0.333333
vt 1.000000 0.666667
vt 0.666667 0.666667
vt 0.666667 0.333333
vt 1.000000 0.333333
vt 0.666667 0.333333
vt 1.000000 0.333333
vt 1.000000 0.666667
vt 0.666667 0.666667
vn 0.0000 1.0000 -0.0000
vn 0.0000 0.0000 1.0000
vn -0.0000 -0.0000 -1.0000
vn 1.0000 -0.0000 -0.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 -1.0000 0.0000
usemtl ___default___.005
s 1
f 1/1/1 2/2/1 3/3/1 4/4/1
f 5/5/1 6/6/1 7/7/1 8/8/1
f 9/9/1 10/10/1 11/11/1 12/12/1
f 13/13/1 14/14/1 15/15/1 16/16/1
f 17/17/1 18/18/1 19/19/1 20/20/1
f 21/21/1 22/22/1 23/23/1 24/24/1
f 25/25/1 26/26/1 27/27/1 28/28/1
f 29/29/1 30/30/1 31/31/1 32/32/1
f 33/33/2 34/34/2 35/35/2 36/36/2
f 37/37/3 38/38/3 39/39/3 40/40/3
f 40/41/4 39/42/4 33/43/4 36/44/4
f 34/45/5 38/46/5 37/47/5 35/48/5
f 39/49/1 38/50/1 34/45/1 33/43/1
f 35/48/6 37/51/6 40/52/6 36/44/6

View File

@ -1,227 +0,0 @@
v 7.437500 15.437500 16.437500
v 7.437500 15.500000 16.437500
v -8.437500 15.437500 16.437500
v -8.437500 15.500000 16.437500
v 7.437499 15.437500 0.562499
v 7.437499 15.500000 0.562499
v -8.437501 15.437500 0.562499
v -8.437501 15.500000 0.562499
v -8.500000 15.437500 16.500000
v 7.500000 15.437500 16.500000
v 7.500000 15.500000 16.500000
v -8.500000 15.500000 16.500000
v -8.500001 15.437500 0.499999
v -8.500001 15.500000 0.499999
v 7.499999 15.437500 0.499999
v 7.499999 15.500000 0.499999
v 7.437500 -0.500001 16.437498
v 7.437500 -0.437501 16.437498
v -8.437500 -0.500001 16.437498
v -8.437500 -0.437501 16.437498
v 7.437499 -0.499999 0.562500
v 7.437499 -0.437499 0.562500
v -8.437501 -0.499999 0.562500
v -8.437501 -0.437499 0.562500
v -8.500000 -0.500001 16.499998
v 7.500000 -0.500001 16.499998
v 7.500000 -0.437501 16.499998
v -8.500000 -0.437501 16.499998
v -8.500001 -0.499999 0.500000
v -8.500001 -0.437499 0.500000
v 7.499999 -0.499999 0.500000
v 7.499999 -0.437499 0.500000
v -0.500001 -0.499999 -0.500000
v 0.499999 -0.499999 -0.500000
v 0.499999 -0.499999 0.500000
v -0.500001 -0.499999 0.500000
v -0.500000 0.500001 -0.500000
v 0.499999 0.500001 -0.499999
v 0.499999 0.500001 0.500000
v -0.500001 0.500001 0.500000
vt 0.765625 0.421875
vt 0.765625 0.406250
vt 0.984375 0.406250
vt 0.984375 0.421875
vt 0.984375 0.359375
vt 0.984375 0.375000
vt 0.765625 0.375000
vt 0.765625 0.359375
vt 0.984375 0.343750
vt 0.984375 0.359375
vt 0.765625 0.359375
vt 0.765625 0.343750
vt 0.765625 0.390625
vt 0.765625 0.375000
vt 0.984375 0.375000
vt 0.984375 0.390625
vt 0.984375 0.390625
vt 0.765625 0.390625
vt 0.765625 0.375000
vt 0.984375 0.375000
vt 0.765625 0.406250
vt 0.984375 0.406250
vt 0.984375 0.421875
vt 0.765625 0.421875
vt 0.765625 0.390625
vt 0.984375 0.406250
vt 0.765625 0.406250
vt 0.984375 0.484375
vt 0.765625 0.484375
vt 0.765625 0.468750
vt 0.984375 0.468750
vt 0.765625 0.296875
vt 0.984375 0.296875
vt 0.984375 0.312500
vt 0.765625 0.312500
vt 0.984375 0.296875
vt 0.765625 0.296875
vt 0.765625 0.281250
vt 0.984375 0.281250
vt 0.984375 0.281250
vt 0.765625 0.281250
vt 0.765625 0.265625
vt 0.984375 0.265625
vt 0.765625 0.421875
vt 0.984375 0.421875
vt 0.984375 0.437500
vt 0.765625 0.437500
vt 0.765625 0.453125
vt 0.765625 0.437500
vt 0.984375 0.437500
vt 0.984375 0.453125
vt 0.765625 0.437500
vt 0.765625 0.421875
vt 0.984375 0.421875
vt 0.984375 0.437500
vt 0.984375 0.453125
vt 0.984375 0.468750
vt 0.765625 0.468750
vt 0.765625 0.453125
vt 0.984375 0.468750
vt 0.984375 0.484375
vt 0.765625 0.484375
vt 0.765625 0.468750
vt 0.765625 0.437500
vt 0.765625 0.421875
vt 0.984375 0.421875
vt 0.984375 0.437500
vt 0.984375 0.281250
vt 0.984375 0.296875
vt 0.765625 0.296875
vt 0.765625 0.281250
vt 0.984375 0.328125
vt 0.984375 0.343750
vt 0.765625 0.343750
vt 0.765625 0.328125
vt 0.765625 0.312500
vt 0.984375 0.312500
vt 0.984375 0.328125
vt 0.984375 0.359375
vt 0.765625 0.359375
vt 0.765625 0.343750
vt 0.984375 0.343750
vt 0.765625 0.328125
vt 0.984375 0.328125
vt 0.984375 0.343750
vt 0.765625 0.343750
vt 0.765625 0.453125
vt 0.984375 0.453125
vt 0.984375 0.468750
vt 0.765625 0.468750
vt 0.984375 0.375000
vt 0.765625 0.375000
vt 0.765625 0.359375
vt 0.984375 0.359375
vt 0.765625 0.312500
vt 0.984375 0.312500
vt 0.984375 0.281250
vt 0.765625 0.281250
vt 0.765625 0.265625
vt 0.984375 0.265625
vt 0.984375 0.453125
vt 0.765625 0.453125
vt 0.765625 0.437500
vt 0.984375 0.437500
vt 0.765625 0.390625
vt 0.984375 0.390625
vt 0.984375 0.406250
vt 0.765625 0.406250
vt 0.765625 0.421875
vt 0.765625 0.406250
vt 0.984375 0.406250
vt 0.984375 0.421875
vt 0.765625 0.468750
vt 0.765625 0.453125
vt 0.984375 0.453125
vt 0.984375 0.468750
vt 0.984375 0.296875
vt 0.984375 0.312500
vt 0.765625 0.312500
vt 0.765625 0.296875
vt 0.984375 0.437500
vt 0.984375 0.453125
vt 0.765625 0.453125
vt 0.765625 0.437500
vt 0.015625 0.984375
vt 0.015625 0.265625
vt 0.734375 0.265625
vt 0.734375 0.984375
vt 0.015625 0.984375
vt 0.015625 0.265625
vt 0.734375 0.265625
vt 0.734375 0.984375
vt 0.734375 0.265625
vt 0.734375 0.984375
vt 0.015625 0.984375
vt 0.734375 0.265625
vt 0.734375 0.984375
vt 0.015625 0.984375
vt 0.015625 0.984375
vt 0.015625 0.265625
vt 0.015625 0.265625
vt 0.734375 0.265625
vt 0.734375 0.984375
vn 0.0000 0.0000 1.0000
vn -1.0000 0.0000 0.0000
vn -0.0000 0.0000 -1.0000
vn 1.0000 0.0000 -0.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
f 10/1/1 11/2/1 12/3/1 9/4/1
f 9/5/2 12/6/2 14/7/2 13/8/2
f 13/9/3 14/10/3 16/11/3 15/12/3
f 15/13/4 16/14/4 11/15/4 10/16/4
f 3/17/5 1/18/5 10/19/5 9/20/5
f 2/21/6 4/22/6 12/23/6 11/24/6
f 7/25/5 3/17/5 9/26/5 13/27/5
f 4/28/6 8/29/6 14/30/6 12/31/6
f 5/32/5 7/33/5 13/34/5 15/35/5
f 8/36/6 6/37/6 16/38/6 14/39/6
f 1/40/5 5/41/5 15/42/5 10/43/5
f 6/44/6 2/45/6 11/46/6 16/47/6
f 5/48/1 6/49/1 8/50/1 7/51/1
f 7/52/4 8/53/4 4/54/4 3/55/4
f 3/56/3 4/57/3 2/58/3 1/59/3
f 1/60/2 2/61/2 6/62/2 5/63/2
f 26/64/1 27/65/1 28/66/1 25/67/1
f 25/68/2 28/69/2 30/70/2 29/71/2
f 29/72/3 30/73/3 32/74/3 31/75/3
f 31/75/4 32/76/4 27/77/4 26/78/4
f 19/79/5 17/80/5 26/81/5 25/82/5
f 18/83/6 20/84/6 28/85/6 27/86/6
f 23/87/5 19/88/5 25/89/5 29/90/5
f 20/91/6 24/92/6 30/93/6 28/94/6
f 21/95/5 23/96/5 29/72/5 31/75/5
f 24/97/6 22/98/6 32/99/6 30/100/6
f 17/101/5 21/102/5 31/103/5 26/104/5
f 22/105/6 18/106/6 27/107/6 32/108/6
f 21/109/1 22/110/1 24/111/1 23/112/1
f 23/113/4 24/114/4 20/115/4 19/116/4
f 19/117/3 20/118/3 18/119/3 17/120/3
f 17/121/2 18/122/2 22/123/2 21/124/2
f 33/125/5 34/126/5 35/127/5 36/128/5
f 37/129/6 40/130/6 39/131/6 38/132/6
f 33/133/3 37/134/3 38/135/3 34/126/3
f 34/126/4 38/136/4 39/137/4 35/138/4
f 35/127/1 39/137/1 40/139/1 36/140/1
f 37/129/2 33/141/2 36/142/2 40/143/2

Binary file not shown.

After

Width:  |  Height:  |  Size: 681 KiB

BIN
textures/canvas.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB