Offline Ship Editor

    Joined
    Dec 30, 2012
    Messages
    790
    Reaction score
    1
    • Legacy Citizen 4
    You are right, the small ones work perfectly fine, and those quite big but under 256m in a direction, seem to work even faster. But then I have to report that the \"Mod\" button, both replace and stripes features do not work on ships bigger than 256 in any direction. I told it to only replace a color that\'s only on few small parts of the same 300m long ship it fully repaints using the \"All\" option, in literally a second (so repaint all still works), and now, 20 minutes later, still nothing. As well it doesn\'t use any of my PC\'s resources, while replacing paint on big ships under 256m, I can see the CPU load for a moment, but here, nothing.



    Also, \"Hull\" button, whatever option inside, seems to just make large (I think 256xsomethingx256 cube) instead of any shape it\'s told to do. It worked on an older version when it had block ammount instead of coordinates.
     
    Joined
    Aug 12, 2013
    Messages
    76
    Reaction score
    0
    If you are running the tool on windows, use a commnad prompt and use the java -jar jo_sm.jar to launch and it will use more than one core. You can also set them max memory to give it more ram to use.

    When I was importing the BSG75 pictured on the privious page, from obj, even setting my it to use 13GB was not enugh ram... but it is huge.

    Use java -XmsRAMAMMOUNTm -XmxRAMAMMOUNTm -jar jo_sm.jar

    ram amout can be in GB too just put a g where the m is.

    java -Xms1024m -Xmx2048m -java jo_sm.jar
     
    Joined
    Jun 25, 2013
    Messages
    403
    Reaction score
    11
    • Legacy Citizen 2
    • Legacy Citizen
    Reflect works along an axis. I.e. you pick the normal to the plane you want to reflect in.

    I have a supid little chart on my desk to help keep things straight:




    Fore
    Aft
    Port
    Starboard
    Dorsal
    Ventral


    +z
    -z
    -x
    +x
    +y
    -y




    If you turn on View -> Axis, it draws an axis on screen, with XYZ = RGB, bright = +ve, dark = -ve. That\'s also handy.

    Reflect reflects everything that is there, so you can\'t use that alone to fill in your whole ship. Say you\'ve drawn the left (Port) side of your ship. You need to do something like this:

    • Edit -> Select All (copy left side into clipboard)
    • Mod -> Reflect -> X axis (left-right = x axis, converts left side to right side)
    • WASD to move the selection box to the other side
    • Edit -> Paste to paste the left side back in again

    Hmm. Seems a suitable topic to start tutorials for. I present you with THE FIRST SMEDIT VIDEO!
     
    Joined
    Jul 6, 2013
    Messages
    85
    Reaction score
    0
    Can this work for deleting half of a ship and mirroring the remaining half to make it symetrical? Would make fleshing out my project easier in-game.



    It has problems with my project so far in that it seems to hang when I try to select an area of the akira model I\'ve already got. Maybe it doesn\'t like large ships very well.



    EDIT: Nevermind. I figured it out. The answer is yes, though it (naturally) takes more processing time (moving the selection area, copying it, and so on) to do so on large ships.



    EDIT X2: And it hanged. Lovely. Well it works, it just takes a load of time.
     
    Joined
    Jun 25, 2013
    Messages
    403
    Reaction score
    11
    • Legacy Citizen 2
    • Legacy Citizen
    Big is big. If you have a bazillion blocks, it\'s going to take time and memory.

    I might see what I can do about slimming down the in-memory storage. I can certainly dump one field, and probably the hit points field. I\'ll do some benchmarking to see if that speeds transfer operations up.

    The real killer is rendering. I\'m doing it all in software, not using the graphics card. So that\'s a non-optimized drag. If I change it to use hardware, I have the major headache of having to ship an OpenGL kit for everyone to use. I\'ll have a poke around and see if there is a way I can use the one shipped with StarMade.
     
    Joined
    Jul 6, 2013
    Messages
    85
    Reaction score
    0
    Actually that gave me an idea. Not very feasible I imagine.



    It centered around using the SM engine to display your ship and thus use whatever texture pack you have. So you are kind of viewing the ship in SM. Since SM\'s engine can zoom in and out on the project much faster and easier than SMEdit can in its current software rendering mode.
     
    Joined
    Jun 25, 2013
    Messages
    403
    Reaction score
    11
    • Legacy Citizen 2
    • Legacy Citizen
    This whole project started as an attempt to graft a modding interface on to StarMade. The mod system for SMEdit is designed so that the mods could be directly used in StarMade itself, once the modding interface is done.

    Unfortunately the StarMade developers have chosen to obfusticate theri code. I have a long rant in another thread with all the reasons I feel this is very counterproductive to what they are trying to achieve. Suffice it to say that, for now, they have made it more trouble thatn it\'s worth to try to extend or use their code. SMEdit would be 4-5 times better if they posted their source in the clear because it would have saved me second guessing chunk and superchunk formats.

    The upside is that there\'s no way I can actually use StarMade render code in SMEdit.

    The one exception to their ill advised obfustication policy is 3rd party libraries. On a quick examination, I see lots of \"opengl\" packages in the jar with their class names in the clear. I\'ll poke around with that today. If they are including a library in the clear, and that library is documented, and the licesnse is appropriate, then I might be able to use that. OpenGL gives me headaches; it\'s always a toos up whether it is harder to work out how to use the antedeluvian APIs, or just do the 3D math on my own. But I can use their OpenGL library, that saves a huge installation headache.

    If they ever return to sanity, and decide to publish code in the clear, then I can look to see if their rendering engine can be separated.
     
    Joined
    Jun 25, 2013
    Messages
    403
    Reaction score
    11
    • Legacy Citizen 2
    • Legacy Citizen
    I hate video tutorials. I\'d much rather skim a text article, skip to the bit I want, and learn what I need to learn. It\'s hard to fast-forward or skim videos. But that\'s me. Unquestionably, given the number of hours my daughter spends watching Minecraft videos, the vast majority of people really like videos. Work bought me Camtasia years ago (If you look at the other videos I\'ve done you will see lots of ones related to what my day-job used to be!) and it still works, so why not.

    Anyway, what features are on the top of your list for ones you think there should be video demos of?
     
    Joined
    Aug 12, 2013
    Messages
    76
    Reaction score
    0
    Did you see this one on the rise? Not that I am bailing on SM.

    http://www.spaceengineersgame.com/

    humm. I think there is a thread already in this forum on it...



    Back to the battle star..
     
    Joined
    Aug 30, 2013
    Messages
    13
    Reaction score
    0
    • Legacy Citizen 2
    • Legacy Citizen
    Since I\'m at work I can\'t really remember, but is there a way to move the camera so it isn\'t always centered on the core? Given that you implemented the paint feature, I figure there should be a way to easily change camera angles. I think that would be a good feature or video tutorial
     
    Joined
    Jul 6, 2013
    Messages
    85
    Reaction score
    0
    Still think that we should have a means to pass through blocks in the program when zoming in on the core or whatever other part of the ship we want. Since sometimes when importaing a ship the core is already in the ship so it would be handy to be able to pass through or ghost through those blocks (they are just representations of the actual blocks after all) to get the viewing angle we want.



    This is because for some ships I import from binbox (Ambassador) I can\'t zoom in very far due to it stopping close to the outer hull and blowing up the textures instead (even with axis view on its hard to zoom in on the core). I\'m forced to raise the core out of the hull instead.



    Which brings up the other thought I\'ve had when working on importing ships and pre-exportation edits: When moving the core the camera position doesn\'t update to center on the new location very well. It seems fixed on where the center of the voxelized model is (or wher it thinks said center is).
     
    Joined
    Jul 10, 2013
    Messages
    32
    Reaction score
    0
    • Legacy Citizen 2
    • Legacy Citizen
    Hi,

    I would like to ask you one question. In the future I would like to build few borg spheres and maybe a death star like ship.

    Do you plan to use different algorithm to build spheres? Zhese ones are a bit diamondish.
     
    Joined
    Jun 25, 2013
    Messages
    403
    Reaction score
    11
    • Legacy Citizen 2
    • Legacy Citizen
    If you have no selection, WASD(QE) will move the view point. However, the ships still rotates around the core. I think I\'ll hold off on doing a video of this until I play around a bit with viewpoint changing.

    I made some progress today with OpenGL. Turns out it is in StarMade.jar, and is unobfusticated. I was able to run a simple standalone program using it. I\'m dusting off a bunch of libraries I had that make using OpenGL sane. If I can get those going, I should be able to do full viewpoint pivoting like in the game itself.
     
    Joined
    Jun 25, 2013
    Messages
    403
    Reaction score
    11
    • Legacy Citizen 2
    • Legacy Citizen
    So if you zoom in, how do you decide what blocks to show and what ones not to? Remember: right now when you zoom, you are changing the apparent size of the ship, not your position relative to it. With the current rendering, there is no such things as \"your curent position\". You are, effectively, infiately far away viewing it orthogonally.

    That made sense when I started the project, since I only intended to write a viewer, not an editor. But since it\'s grown into an editor, it needs a rethink. I\'m going to see if I can get OpenGL rendering working. If so, I might switch the metaphor to a point-of-view approach.

    Does that make sense? Does anyone prefer the orthogonal approach?
     
    Joined
    Jun 25, 2013
    Messages
    403
    Reaction score
    11
    • Legacy Citizen 2
    • Legacy Citizen
    Yeah, they are a bit off. They used to be perfect, but that was when it was volume based, not size based. I switched to size based for all the hulls because I thought it would be generally more useful (and I needed it to debug the large ship problems). The thing is, if it\'s size based, then I want to leave the door open for having sphere-oids, not perfect sphers. Mathematically that\'s a bit of a different problem.

    After a bunch of searching, I found an explanation of how to plot elipses based on axial dimensions on a raster grid. That gave me the cone, needle, cylinder and disk. I have to admit I didn\'t understand the algorithm enough to extrapolate it to a 3D elipse. So I cheated. I interpolated over the Z axis, worked out the X and Z axis for each ring, and drew it with the elipse drawing code. As you can see, the results were OK, but not perfect. I figured I\'d leave it until someone complained.

    And now you have!

    I\'ll poke around on the internets for algorithms for drawing. In the meantime I\'ve uploaded a fix that uses the exact algorithm if you ask it to make a perfect sphere.



    In related news, I\'ve been thinking about helping people make more interesting interiors. Perhaps more relevant for space stations. Kind of works like this.

    First, create a bunch of \"interesting\" modules. Copy them to the clipboard and save them off in XML files. Then write a master XML file that lists all of your modules, and says what spot along the perimiter is the \"door\". The, in the editor, you can give it a volume, and a corridor width. It will fill that volume with a random selection of those modules (rotated or reflected for variety) with corridors between, such that their doors always align on the corridor.

    Useful? Waste of time?
     
    Joined
    Jul 3, 2013
    Messages
    17
    Reaction score
    0
    Thanks for putting so much effort into this awesome program, it\'s really appreciated. I was just wondering if there\'s an ETA on being able to export ships as .obj files? I\'m hoping to 3D print some of my ships.
     
    Joined
    Jun 25, 2013
    Messages
    403
    Reaction score
    11
    • Legacy Citizen 2
    • Legacy Citizen
    I haven\'t heard this request before. It\'s actually not all that hard. I could even export texture maps without a lot of work. But I\'ll just do shapes first, since that\'s all you\'ll need for 3D printing.

    I might do it lunchtime. The OpenGL work is hurting my brain. It\'s such an obtuse API. Gotta play with camera settings...
     
    Joined
    Jun 30, 2013
    Messages
    351
    Reaction score
    347
    • Community Content - Silver 1
    • Purchased!
    • Legacy Citizen 4
    Congradulations on a heck of a program. I was experimenting with importing and modifying very large files, and I discovered a reproducable problem. I\'m attempting to export a full scale (643M) model of the Enterprise-D. Yes, I\'m totally abusing your software.

    I can load the binvox in without trouble. Althhough the processes are slow, I can reflect. I can move the core, and I can save. During all of this the model appears to be intact. When I load the exported ship into StarMade I find that the length has been compressed by about 15 15 blocklengths. Those 15 planes of blocks have been removed from near the center of the model. There isn\'t a gap, the model has been shortened by those 15 planes.

    Re-loading the saved ship back into SMedit now shows the seam. It appears the problem manifests as you save the imported model.

    I hope my input is useful. I will happily experiment further if you will tell me what tests to run.

    Edit: I tried another large model with very different dimensions. The seam appears about 345 blocks from the \"bow\" of the model.