преобразование obj файлов в пользовательский формат в lua - PullRequest
0 голосов
/ 11 декабря 2018

этот код почти работает при преобразовании obj-файлов в мой пользовательский формат, но когда вы добавляете фигуру с более чем 9 гранями, он получает всю причудливость и дает неверные числа для вершин граней.формат должен быть {vertex1, vertex2, vertex3, rvalue, gvalue, bvalue}, так что, скажем, у меня есть грань, которая использует вершины 1,2 и 4, тогда я получу {1,2,4,255,255,0},.но если у меня есть лицо с вершинами 1,2 и 10, тогда я получаю {1,2,101,255,255,0}, и я не знаю, почему

-- see if the file exists
function file_exists(file)
  local f = io.open(file, "rb")
  if f then f:close() end
  return f ~= nil
end

-- get all lines from a file, returns an empty 
-- list/table if the file does not exist
function lines_from(file)
 if not file_exists(file) then return {} end
 lines = {}
 for line in io.lines(file) do 
   lines[#lines + 1] = line
 end
 return lines
end

-- tests the functions above
local file = 'cube.txt'
local lines = lines_from(file)
-- print all line numbers and their contents

for k,v in pairs(lines) do
 str = tostring(v)
 if 9 <= k then
   str = str .. ","
 end
 print("before space : "..str)
 str = str:gsub("v ", "")
 str = string.gsub(str, "v", "")
 str = str:gsub("f ", "")
 str = string.gsub(str, "f", "")
 str = str:gsub("%s+", ",")
 str = string.gsub(str, "%s+", "")
 print("before // : "..str)
 str = str:gsub("(//).(,)", ",")
 str = string.gsub(str, "//", "")
 if k >= 9 then
   print("  { " .. str .. "255,255,0 },")
 else
   print("  { " .. str .. " },")
 end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...