Home 3D Art Showcase & Critiques

DS 3dviewer

134
dsviewer002yv7.jpg

I've been working on a 3d viewer for DS homebrew cards. Progress is a bit slow, but it is going nicely. This image shows one of Spaceys TF2 low-poly models. Textures still seem a little bit off, but overall it's looking quite nice.

There's two things I need to do before I release a first version:
- Online conversion to DS format (currently doing this offline)
- Simple file browser, so you can browse your entire card.

It currently only supports triangulated OBJ files, but I'm willing to implement any 3d format I can get specifications for. So far only static models are supported, but I do want to add animation after the initial release.


Downloads:
Version 10
- Use shoulder buttons to switch between file browser and logging
- Touch the screen to rotate the model
- OBJ support only

Version 11
- Hold LEFT and swipe the stylus up and down to zoom

Replies

  • flaagan
    Options
    Offline / Send Message
    flaagan polycounter lvl 18
    Ok, this is damn cool.... *this* would be reason enough for me to get a DS!
  • man_o_mule
    Options
    Offline / Send Message
    man_o_mule polycounter lvl 18
    hot damn. i have a DS and a Micro SD Super Card. this would rock my world.
  • MoP
    Options
    Offline / Send Message
    MoP polycounter lvl 18
    Nice one smile.gif
    Might have to borrow Tully's DS and mess around with this when you release it!
  • flaagan
    Options
    Offline / Send Message
    flaagan polycounter lvl 18
    I think .fbx would definitely be a format worth supporting, especially with the issues I've always had getting .obj's out of 3dsmax into other apps.
  • MoP
    Options
    Offline / Send Message
    MoP polycounter lvl 18
    I've never had problems with OBJ out of Max... probably your settings. There are a lot to choose from, and just one or two set to different options can really change the way it's exported.

    I agree that FBX would probably be a good format to consider though - it supports bones, animation, vertex weights and all geometry data you might need. Most apps should export it these days, I think.
  • Showster
    Options
    Offline / Send Message
    Showster polycounter lvl 18
    Please complete this! it looks freaking awesome. For shits and giggles you could work on the md3 format, may help you play back some old q3 models with animations (if they are ds spec that is)
  • Mtg_kirin
    Options
    Offline / Send Message
    hey how do u make custom game disks? is it a normal sd card?

    def keep an eye on this
  • Paul_C
    Options
    Offline / Send Message
    You'll want an R4 cartridge and an SD micro card
  • SHEPEIRO
    Options
    Offline / Send Message
    SHEPEIRO polycounter lvl 17
    yay this looks cool

    what about camera options and mulitple materials, environment artist here, would be nice ====) to get a fps style walking cam option aswell=)

    i fancy doing some more ds stuff
  • pior
    Options
    Offline / Send Message
    pior grand marshal polycounter
    FAT Succes!

    I SO CAN'T WAIT FOR THIS. Would be cool to have models span on both screens btw smile.gif
  • ElysiumGX
    Options
    Offline / Send Message
    ElysiumGX polycounter lvl 18
    [ QUOTE ]
    I've never had problems with OBJ out of Max... probably your settings.

    [/ QUOTE ]

    You've had problems with Max exporting normals in OBJ, just like everyone else. Don't make me quote you.
  • Hito
    Options
    Offline / Send Message
    Hito interpolator
  • Eclipse
    Options
    Offline / Send Message
    Eclipse polycounter lvl 18
    I'm in, where do I sign up?
  • Peris
    Options
    Offline / Send Message
    Peris polycounter lvl 17
    sweet stuff! I found another 3dviewer before but didn't get it to work, hope you can make my dreams come true =)
  • Labyrinth
    Options
    Offline / Send Message
    [ QUOTE ]
    I agree that FBX would probably be a good format to consider though - it supports bones, animation, vertex weights and all geometry data you might need. Most apps should export it these days, I think.

    [/ QUOTE ]
    I've done a quick search on this format, and it seems to be some kind of Autodesk proprietary format, although one that's relatively widespread. I wasn't able to find any specs, although there was an SDK on their site. It sounds fairly similar in idea to Collada, although I imagine the execution is very different.



    [ QUOTE ]
    For shits and giggles you could work on the md3 format, may help you play back some old q3 models with animations (if they are ds spec that is)

    [/ QUOTE ]
    When I add animations this will probably be my first step. Nice and easy keyframed vertex blending.



    [ QUOTE ]
    hey how do u make custom game disks? is it a normal sd card?

    [/ QUOTE ]
    You can buy homebrew cards which look like real DS cards. They often take a microSD card onto which you can load whatever you want. So there's no need to hack your DS or anything like that.



    [ QUOTE ]
    what about camera options and mulitple materials, environment artist here, would be nice ====) to get a fps style walking cam option aswell=)

    [/ QUOTE ]
    Thanks for that Shepeiro. I loved your stuff when you pimped it! Multiple materials is already supported as I can load multi-part models. Currently no camera controls, but they are planned at a later stage.



    [ QUOTE ]
    Would be cool to have models span on both screens btw

    [/ QUOTE ]
    Do you really think that would be useful? I was thinking of maybe adding a portrait mode, with the file browser on the touchscreen on the right/left, and the model at full height on the other screen. Would work well for characters I imagine, but possibly less so for other kinds of models, so it'd definately be an option. Spanning both screens is certainly possible, but I definately feel it'd be less useful, with the gap and all.


    The file browser is up to a usable state at the moment, so pretty much all that's left for the first release is making the conversion happen online rather than offline. Since this involves using floats it may be bit more work than I'm expecting if I need to convert from floating point to fixed point earlier on in the process. I'm hoping to release this version before I'm off to GDC on Tuesday next week.
  • GoSsS
    Options
    Offline / Send Message
    GoSsS polycounter lvl 14
    It could be a really cool thing. I am pressed to use it.
  • Labyrinth
    Options
    Offline / Send Message
    I've done a little bit of searching on FBX formats, and it looks like it's not going to be possible to get that onto the DS. Apparently support for using it in game-engines is 'sketchy': http://discussion.autodesk.com/thread.jspa?threadID=492418
  • ElysiumGX
    Options
    Offline / Send Message
    ElysiumGX polycounter lvl 18
    [ QUOTE ]
    I was thinking of maybe adding a portrait mode, with the file browser on the touchscreen on the right/left, and the model at full height on the other screen. Would work well for characters I imagine, but possibly less so for other kinds of models, so it'd definately be an option.

    [/ QUOTE ]

    I like that idea. Sounds very useful.
    I encourage the use of .obj files, and for animations, I suggest looking into perhaps .X or dotXSI.
  • hawken
    Options
    Offline / Send Message
    hawken polycounter lvl 19
    [ QUOTE ]
    I'm in, where do I sign up?

    [/ QUOTE ]

    ditto!
  • nkoste
    Options
    Offline / Send Message
    nkoste polycounter lvl 18
    The DS fever is on! Great job!
  • Slash
    Options
    Offline / Send Message
    Slash polycounter lvl 19
    Say when and where, I'm there!
  • SHEPEIRO
    Options
    Offline / Send Message
    SHEPEIRO polycounter lvl 17
    yay i can see my next next gen project getting shrunk
    when are we gonna get it i got some sweet tanks to get on this babe.

    i want fat sucsess!
  • Holi
    Options
    Offline / Send Message
    Holi polycounter lvl 16
    Awesome project, it could be the most usefull homebrew ever!
    Can't wait to test it!
  • seforin
    Options
    Offline / Send Message
    seforin polycounter lvl 17
    So you guys are gonna be able to release this for the public to use any time soon? smile.gif

    I have a DS transformers scene I would REALLY love to test!

    If you need a test Im here to help *raises hand like a 5 year old with ADD*
  • ElysiumGX
    Options
    Offline / Send Message
    ElysiumGX polycounter lvl 18
    Did you misspell "Success" in your file browser?
  • Funky Bunnies
    Options
    Offline / Send Message
    Funky Bunnies polycounter lvl 17
    It's a special term indicating that it was the fattest of FAT Successes
  • SHEPEIRO
    Options
    Offline / Send Message
    SHEPEIRO polycounter lvl 17
    also any clues on alpha sorting, will it be possible to set them up properly

    sorry im eager
  • arrangemonk
    Options
    Offline / Send Message
    arrangemonk polycounter lvl 15
    i dont know if the ds supports envoronment mapping, but you yould fake a z-buffer by adding a gardient in z-axis and calculating the alphasorting by color value :P
  • SHEPEIRO
    Options
    Offline / Send Message
    SHEPEIRO polycounter lvl 17
    well im pretty sure DS supports sorting, i was more keen on getting a way to set materials up with sort values, so that a few tricks can be acheived, ie fake floor reflections
  • LoTekK
    Options
    Offline / Send Message
    LoTekK polycounter lvl 17
    from what i recall of the tech documentation, the ds hardware has native support for envmaps... either that or it was a trick someone did to make it appear so... i'll have to hunt around, but there was a homebrew demo a little while back showing off envmapping (on a teapot)

    i would give my left nut to see this viewer released... been looking for a solid viewer for a while now
  • Labyrinth
    Options
    Offline / Send Message
    [ QUOTE ]
    So you guys are gonna be able to release this for the public to use any time soon?

    I have a DS transformers scene I would REALLY love to test!

    If you need a test Im here to help *raises hand like a 5 year old with ADD*

    [/ QUOTE ]
    I'll definately be in need of testers for this, and you'll notice here when it's done. I was hoping to get it done by Tuesday, but RL seems to do it's best to interfere so I might not make that, in which case it'll be about 10 days later I think.


    [ QUOTE ]
    Did you misspell "Success" in your file browser?

    [/ QUOTE ]
    Yes I did! blush.gif


    [ QUOTE ]
    well im pretty sure DS supports sorting, i was more keen on getting a way to set materials up with sort values, so that a few tricks can be acheived, ie fake floor reflections

    [/ QUOTE ]
    I'm pretty certain the hardware automatically sorts by depth, but will look into it. If it doesn't I'm sure I can do the sorting myself on a per object basis. I'm not quite sure what you mean with assigning sort values to the materials though.


    [ QUOTE ]
    from what i recall of the tech documentation, the ds hardware has native support for envmaps... either that or it was a trick someone did to make it appear so... i'll have to hunt around, but there was a homebrew demo a little while back showing off envmapping (on a teapot)

    i would give my left nut to see this viewer released... been looking for a solid viewer for a while now

    [/ QUOTE ]
    I think it does support it in hardware somehow, but I know even less about this than about the sorting laugh.gif. And thank you for the offer, but I am currently not in need of a left nut laugh.gif
  • LoTekK
    Options
    Offline / Send Message
    LoTekK polycounter lvl 17
    http://payk.drunkencoders.com/index.html?/Pages/Projects.html
    looks like it's not hardware, but this tech demo has a function written to fake envmapping. It looks pretty impressive on the hardware, too.
  • SHEPEIRO
    Options
    Offline / Send Message
    SHEPEIRO polycounter lvl 17
    [ QUOTE ]
    I'm pretty certain the hardware automatically sorts by depth, but will look into it. If it doesn't I'm sure I can do the sorting myself on a per object basis. I'm not quite sure what you mean with assigning sort values to the materials though.


    [/ QUOTE ]

    thats probably ok actually,
    what i meant by asssigning values is you can give say two materials on the same object (or within another object with alpha) different values to force them to sort with each other, its also usefull for all sorts of tricks, but by the sounds of it i wouldnt bother for this.

    im deffinatly up for testing this for envs
  • Labyrinth
    Options
    Offline / Send Message
    Well, after a 'relaxing' week at GDC, I've had a bit more time to look at this. Porting the conversion code to the DS took more time than I expected, but it's now mostly working. I should have enough time tomorrow to get a working version (with some bugs) out the door that loads OBJ files on the fly rather than needing them preconverted. Shouldn't be too long now.
  • LoTekK
    Options
    Offline / Send Message
    LoTekK polycounter lvl 17
    Hot. Definitely looking forward to testing the viewer. smile.gif
  • Labyrinth
    Options
    Offline / Send Message
    Viewer

    The first version of the viewer is done now. It still has numerous bugs, but at least it's doing something visible now laugh.gif. It currently only supports triangulated .obj meshes. Textures should work, but it looks like it still has issues with them. I'll continue working on those for the next release. There are currently no camera controls, it just displays the mesh with an orthogonal projection which should size the object to mostly fill the screen.

    The .nds file may need to be DLDI patched depending on what brand your DS homebrew card is.
  • pior
    Options
    Offline / Send Message
    pior grand marshal polycounter
  • SHEPEIRO
    Options
    Offline / Send Message
    SHEPEIRO polycounter lvl 17
    just need to find my charger now.... could take a while moved house recently
  • Tumerboy
    Options
    Offline / Send Message
    Tumerboy polycounter lvl 17
    sweet, I'll play with it when I get home tonight!

    . . . that didn't sound dirty in my head. . .
  • pior
    Options
    Offline / Send Message
    pior grand marshal polycounter
    Hehe got it to load a simple OBJ, turned out black tho :P Could you post a file combo (obj, mtl and bmp) that works for you?
  • Tumerboy
    Options
    Offline / Send Message
    Tumerboy polycounter lvl 17
    So. . .I exported 2 objects from Max, one is a box, and one is my 106 poly plane I posted a couple days ago.

    It took a while to get the right setup in the OBJ exporter to make them show up. (many times it seemed to just hang when I told it to load the file)

    I'm now at a point where I see a black box. Hurray!
    So yes, I'm not seeing my texture show up.

    Also, my ME-109 doesn't even show up in the list of available objs. They were both exported from the same max file, with all the same export settings, is there a reason one would be recognized, and the other not?

    Awesome work so far man!
  • Labyrinth
    Options
    Offline / Send Message
    [ QUOTE ]
    Also, my ME-109 doesn't even show up in the list of available objs. They were both exported from the same max file, with all the same export settings, is there a reason one would be recognized, and the other not?

    [/ QUOTE ]
    I thought I noticed one of my test OBJ files missing in the list. Will take a look at that ASAP. As for textures missing, it only supports full color BMP files as the moment, could that be it? I'll add some logging to the next version so you can see what's going on.
  • Showster
    Options
    Offline / Send Message
    Showster polycounter lvl 18
    May somebody please post the obj exporting settings (I'm using max). My files show up in the menu fine but hang when I try to load them


    http://chishm.drunkencoders.com/DLDI/ <- patching site for homebrew cards

    Cheers

    Greg
  • Labyrinth
    Options
    Offline / Send Message
    Just found out that the search for OBJ files is case-sensitive. So if you have your files, make sure the extension is '.obj' in lower-case. Windows Explorer may not show this correctly, so check in a prompt. I'll make allowances for this in the next version.

    I'm having some problems with files that should be fine here as well, so will look into that further.
  • Tumerboy
    Options
    Offline / Send Message
    Tumerboy polycounter lvl 17
    Here's the setup I used to get my box to show up:

    2311870695_652d2872e9_o.jpg

    No, my ME-109 has a lowercase .obj

    I tried tga, and then bmp for the texture. they were both lowercase as well.

    I'll keep playing around with it, and see what I can figure out.

    Thanks again!

    Edit:

    Ok, I tried re-exporting my plane as "Box.obj" and then again as "Test.obj" and both showed up fine (still black, but definitely showed up in the list, and on screen).

    So. . ."ME-109.obj" is a bad name maybe? Does it not like -'s?

    No big deal, just good things to know.

    Edit2:
    Can't get the texture to work, here's what I've got going:

    Test.obj Test.mtl Test.bmp
    In Max, I name the material editor slot "Test.bmp" so that the .mtl file reflects that name:

    # Max2Mtl Version 4.0 Mar 10th, 2001
    #
    newmtl Test.bmp
    Ka 0.6 0.6 0.6
    Kd 0.6 0.6 0.6
    Ks 0.9 0.9 0.9
    d 1.0
    Ns 0.0
    illum 2
    #
    # EOF


    But I still get a black object. Any idea where I'm missing a step or something? What setup worked for you?
  • Labyrinth
    Options
    Offline / Send Message
    Viewer v2
    Viewer v3

    Updated version for the casing of the filename. It should now be totally case agnostic. If your file still doesn't show up, then something is definately wrong. Please contact me or post here if that happens.

    Tumerboy: I've tried a file with the same name as yours and it definately works in the new version (I haven't tried in the old one).

    Good files: these are some of my test files which load correctly.

    The viewer seems to crash if I try to load to many files in sequence. I have no idea yet if this is related to file size or not, so if it's crashing maybe try a simple box first.

    The bitmap I'm using is a 24-bit bmp, 128x128 pixels big.

    edit: I've just found and fixed a bug that prevented textures from loading correctly. Fixed in v3.
  • kwakkie
    Options
    Offline / Send Message
    kwakkie polycounter lvl 12
    I downloaded V3 and your good files, when I load the ball or cube the material is still black. Sorry for the bad news man laugh.gif

    BTW: I tested it on a DS Lite using an M3 Simply

    I work at a studio that makes DS titles and I know there is a certain 'save' problem with the M3 that the R4 does not have. I dont really know what it is exactly because Im n0t a 1337 h4xx0r, but I could ask next time Im there if you want! :P
  • Labyrinth
    Options
    Offline / Send Message
    [ QUOTE ]
    I downloaded V3 and your good files, when I load the ball or cube the material is still black. Sorry for the bad news man laugh.gif

    BTW: I tested it on a DS Lite using an M3 Simply

    I work at a studio that makes DS titles and I know there is a certain 'save' problem with the M3 that the R4 does not have. I dont really know what it is exactly because Im n0t a 1337 h4xx0r, but I could ask next time Im there if you want! :P

    [/ QUOTE ]

    Hmm, that's really odd because I also use a M3 Simply! Will have to think on this.
  • Xenobond
    Options
    Offline / Send Message
    Xenobond polycounter lvl 18
    Tried v2 on my M3Real, couldn't get anything to show up in the list. I'll try v3 and see if the test files show up. Thanks!!
  • ElysiumGX
    Options
    Offline / Send Message
    ElysiumGX polycounter lvl 18
    Hi Labyrinth.

    I've tested your v3 viewer on my DS Lite, and an R4 with up-to-date firmware. I've tried your good files, and my own exported from XSI, so the old obj exporter from Max isn't the problem. I've tried patching the NDS file with DLDI just in case. Textures still appear as black.

    Good luck fixing it. It's a great program.
134
Sign In or Register to comment.