s20dan, you used subsurface scattering to smooth your models right?hint, for pioneer, normals tuning is possible to but i still need some more experience with it, but for FFED3D i can only recommend a good normals tuning, this will reduce the poly count drastically, optically in the game it's the same smooth borders.another thing you can do to keep a good framerate in pioneer is the use of lod (level of detail), also for "solid" models, but you will have to build a model for each lod you specify. generally this is why i love the scripted models so much, the lod controls fully the amount of polys used for the "planes" or primitives you use. ends up in high detailed models when close, low detailed when far. just like, yes good old frontier, only better!.oh before i forgot, to get a grip to how models are build in pioneer:
Code:
define_model('blob', {info = {bounding_radius=8,materials={'blue'}},static = function(lod)set_material("blue", 0,0,1,1)use_material("blue")cylinder(16, v(-5,0,0), v(-5,5,0), v(1,0,0), 1.0)text("blob_static()", v(-5,-2,0), v(0,0,1), v(1,0,0), 0.5)xref_thruster(v(5,0,0), v(0,0,-1), 10)xref_thruster(v(5,0,0), v(0,0,1), 10)xref_thruster(v(5,0,0), v(0,1,0), 5)xref_thruster(v(5,0,0), v(0,-1,0), 5)thruster(v(5,0,-5), v(1,0,0), 5, true)thruster(v(5,0,5), v(1,0,0), 5, true)thruster(v(-5,0,-5), v(-1,0,0), 5, true)thruster(v(-5,0,5), v(-1,0,0), 5, true)text("HELLO FROM BLOB", v(0,0,0), v(0,0,1), v(1,0,0), 10.0)end})poo = 0define_model('test', {info = {lod_pixels={30,60,100,0},bounding_radius = 10.0,tags = {'building', 'turd'},materials = {'red', 'shinyred'}},static = function (lod)set_material("red", 1,0,0,1)set_material("shinyred", 1,0,0,1, 1,1,1,50)use_material("red")xref_flat(16, v(0,0,1),{v(4,0,0)}, -- straight line bit{v(4.5,-0.5,0),v(5,0,0)}, -- quadric bezier bit{v(5,0.5,0),v(4,0,0),v(4,1,0)}, -- cubic bezier bit{v(3,0.5,0)}, -- straight line bit{v(3,0.3,0)} -- etc)zbias(1, v(0,5,0), v(0,0,1))geomflag(0x8000)text("LOD: " .. tostring(lod), v(0,5,0), v(0,0,1), v(1,1,0):norm(), 1.0)geomflag(0)zbias(0)use_material("red")for i = 1,10 dotapered_cylinder(lod*4, v(i,0,0), v(i+1,0,0),v(0,1,0), math.abs(noise(5*i,0,0))+1,math.abs(noise(5*(i+1),0,0))+1)enduse_material("shinyred")xref_circle(9, v(4,5,0), v(0,0,1), v(1,0,0), 1.0)tri(v(12,3,0),v(13,3,0), v(12,4,0))xref_tri(v(13,3,0),v(14,3,0), v(13,4,0))xref_quad(v(6,6,0), v(7,6,0), v(7,7,0),v(6,7,0))--[[xref_cubic_bezier_tri(32, v(0,0,0), v(1,0,0), v(2,0,0), v(3,0,0),v(0,-1,0), v(1,-1,3), v(3,-1,0),v(0,-2,0), v(2,-2,0),v(0,-3,0))--]]---[[xref_quadric_bezier_tri(16, v(0,0,0), v(1,0,0), v(2,0,0),v(0,-1,0), v(1,-1,2),v(0,-2,0))--]]--[[geomflag(0x8000)xref_quadric_bezier_quad(16, 16,v(0,0,0), v(1,-1,0), v(2,0,0),v(-1,1,0), v(1,1,8), v(3,1,0),v(0,2,0), v(1,3,0), v(2,2,0))--]]--[[xref_cubic_bezier_quad(32, 32,v(0,0,0), v(1,0,0), v(2,0,0), v(3,0,0),v(0,1,0), v(1,1,5), v(2,1,0), v(3,1,0),v(0,2,0), v(1,2,0), v(2,2,0), v(3,2,0),v(0,4,0), v(1,4,0), v(1,4,0), v(1,3,0))--]]--[[extrusion(v(0,0,0), v(0,0,-5), v(0,1,0), 1.0,v(1,0,0), v(0.5, 0.8, 0), v(0,1,0), v(-0.5,0.8,0), v(-1,0,0),v(0,-0.5,0))--]]end,dynamic = function(lod)poo = poo + 0.005set_material("red", math.sin(poo)*math.sin(poo), 0.5, 0.5, 1)use_material("red")xref_cylinder(16, v(-8,0,0), v(-8,5,0), v(1,0,0), math.abs(math.sin(poo)))circle(9, v(5*math.sin(poo),5*math.cos(poo),0), v(0,0,1), v(1,0,0), 1.0)local ang = 2*math.pi*get_arg(0)--call_model("blob", v(0,0,-20), v(1,0,0), v(1,1,0),1.0)billboard('smoke.png', 5, v(.5,.5,1), { v(0,0,0), v(10,3,0) })end})
it's tomm's demo model, if you have still have a download of pioneer alpha1 containing the modelviwer, place this to a copy of it, and rename "models.lua" to "whatever.lua" name this simply "models.lua". start command console and execute e.g. or it gives you an idea how lua scripts are used in pioneer for models (its in the original models.lua but it can't be called because it's underneeth the general call for "any .lua" in data\models\mods drawer which halts modelviewer)i do the same procedure for any of my scripted models to check them and i did to checkout tomm's models, but load_obj is not supported so far, also modelviewer can't look recursively for any models in mods drawer it loads only from models.lua placed in data\models folder, anything else terminates the program (another possibility is to rem ( -- , "two dashes in front of line") the lines for the call of load_lua data\models\mods in original model.lua). open lua scripts best with wordpad but i guess that is offens.hint,if you have any problems with the syntax (really it can cost you nerves to find a forgotten comma or bracket) use luaedit.it will show you such syntax errors (run script/check syntax, pulldown) and you dont have to open allways the "stdout" or "stderr" file and count the lines in wordpad to find the certain missmatching type if it's been reported there at all.i'm still thirsty
