Jump to content



Photo
- - - - -

Building wire ramps using 3D meshes


  • Please log in to reply
9 replies to this topic

#1 UltraPeepi

UltraPeepi

    Enthusiast

  • Platinum Supporter
  • 216 posts
  • Location:Redmond, WA

  • Flag: United States of America

  • Favorite Pinball: Mary Shelly's Frankenstein

Posted 01 November 2013 - 05:59 PM

I've been working on wire ramps for a while.  It is the one piece that stood out as deficient in VP, after seeing the implementation in FP.  The VP tables I looked at didn't even use the wire ramps built into VP.  Instead, they used flat ramps and textured them to look like wires.  Many of those table didn't include rings, or used them sparingly, because they too were a pain to construct.
 
Now that 9.1.6 has 3D mesh support, AND fuzzel added sphere mapping as well as a pre-render option, we have all the capabilities we need to make 3D metallic wire ramps.  But since the sphere mapping can't be applied to the built in wire ramps (yet), we are left with two possible solution.
 
Solution 1: Implement the rings and end pieces as 3D, but use flat ramps for the rest.
Pros:
  • Rings and end pieces can be exported from FP
  • Rings will look better than 2D walls
  • Easy to rotate/tilt rings so they will be easily placed anywhere along the ramp
  • Ramps are implemented in the way most people are familiar
Cons:
  • Hard to match textures of 2D flat ramp to 3D rings and end pieces
  • Rings and end pieces don't cast shadows
 
 
Solution 2: Implement the entire wire ramp as a 3D mesh
Pros:
  • The entire ramp will be sphere mapped and appear seamless
  • Treat the ramp as one piece in VP making the table simpler
  • Change the look by selecting a different sphere map on one object
Cons:
  • It is tedious to build a 3D mesh of this complexity
  • It is difficult to map the shape from the VP table into a 3D editor
  • 3D mesh doesn't cast shadows
 
 
Well, Future Pinball can help us not only with Solution 1, but with Solution 2 as well.  Here are the high level steps.
  • VP: Build a table with 2/4 wire ramp or use existing with flat ramps
  • VP: Export table blueprint
  • FP: Start a new table, remove all elements from starter table
  • FP: Set the playfield image as the VP blueprint
  • FP: Build the wire ramp using FP models and end pieces by matching the layout to the blueprint
  • Blender: Import the FP table (using a special FP plugin)
  • Blender: Remove all elements except the wire ramp, join all meshes of the ramp
  • Blender: Scale down to VP scaling
  • Blender: Export as Milkshape
  • Biturn: Convert of Waveform OBJ
  • VP: Import wire ramp mesh, position
 
The devil is in the details, but I have built a few fairly complex ramps using this technique.  This technique does not require any DESIGN expertise in Blender.  Knowledge of the following will be useful/required: how to delete objects you don't need, converting curves to meshes, joining meshes, scaling.  But you should not have to select/move/insert faces or anything like that.
 
 
For a history of some of this see this thread
 
Future Pinball Blender plugin
 
Here is an example
Attached File  FPRampGold.png   300.43KB   17 downloads
 
 
Oh one more thing - 3D mesh does not allow collisions.  So both solutions require an invisible ramp to guide the ball.  This doesn't change from today's design pattern.
 
 

Edited by UltraPeepi, 01 November 2013 - 06:05 PM.

ultradmd_splash.png


#2 unclewilly

unclewilly

    sofa king.....

  • VIP
  • 5,176 posts
  • Location:Baltimore, Maryland

  • Flag: United States of America

  • Favorite Pinball: tz, tom, big hurt, who dunnit



Posted 01 November 2013 - 06:30 PM

Gonna try and do the rubbers on mb this way also

"it will all be ok in the end, if it's not ok, it's not the end"
 
Monster Bash VP10 WIP https://dl.dropboxus... (vpx)WIP15.vpx

uw2.gif


#3 EalaDubhSidhe

EalaDubhSidhe

    Elder solid-statesman

  • VIP
  • 1,099 posts
  • Location:South Wales, boyo

  • Flag: United Kingdom

  • Favorite Pinball: Whichever one may finally get me back on my feet.



Posted 01 November 2013 - 06:37 PM

I'm firmly in favour of option 1 over option 2 for a couple of reasons - the flat-ramps solution is much, much easier to build, even if (like me) you're OCD enough to want to do so absolutely accurately in the editor using light circles as construction guides. The other and much more important reason though is that most wireform ramps are going to be long and intricate mesh objects that will hog the SHIT out of most people's graphics cards. If it's realistic lighting that's the object of the exercise then quite honestly, there's no much a mesh can achieve that a bit of fakery with one or two more overlaid flat ramp textures can't also manage at any given point in the structure.

 

Plus, however swish your ramps look with whatever method you choose, it won't make an ounce of difference to the play and feel of the game since it's the invisible ramp surface, with all the considerations and limitations of the VP editor, that's doing the job.



#4 unclewilly

unclewilly

    sofa king.....

  • VIP
  • 5,176 posts
  • Location:Baltimore, Maryland

  • Flag: United States of America

  • Favorite Pinball: tz, tom, big hurt, who dunnit



Posted 01 November 2013 - 06:46 PM

Shouldn't be much performance hit if they are set as static meshes. They would be prerendered like most other vp objects

"it will all be ok in the end, if it's not ok, it's not the end"
 
Monster Bash VP10 WIP https://dl.dropboxus... (vpx)WIP15.vpx

uw2.gif


#5 UltraPeepi

UltraPeepi

    Enthusiast

  • Platinum Supporter
  • 216 posts
  • Location:Redmond, WA

  • Flag: United States of America

  • Favorite Pinball: Mary Shelly's Frankenstein

Posted 01 November 2013 - 07:05 PM

Yep.  I fully expected that my wire ramps would be implemented with the Solution 1.  In fact, if you review the thread above, you'll see I did quite a bit of work there; and I even had pretty good results.  Then it struck me that using FP for the whole ramp might be plausible.  The image I posted above was my first attempt.  I did this in about 2 hours.  It surprised me that this would even work, let alone in 2 hours.

 

As for performance - I hope the pre-render option ensures this won't be an issue at game play time.  Also with a little work in Blender, you can "decimate" to reduce the vertex count.  I have not yet tried to see how far I can reduce the vertex count on the wire ramps, before it starts effecting the look.

 

 

I don't know that there is a right way.  It was not obvious that Solution 2 would even work.  Now we know it will.  So we have another tool in our tool belt.

 

Thanks.  I welcome discussion and feedback.  That's the point of the post.


ultradmd_splash.png


#6 unclewilly

unclewilly

    sofa king.....

  • VIP
  • 5,176 posts
  • Location:Baltimore, Maryland

  • Flag: United States of America

  • Favorite Pinball: tz, tom, big hurt, who dunnit



Posted 01 November 2013 - 08:02 PM

I guess I'll put it to the test with my mb update.
I plan on modeling both wire ramps. All the rubbers and pegs.
The targets and toys
On top of alpha flashers and alpha gi.

Should prove to be the performance test table once I'm done with it.

If it's too much performance hit I'll go back to the old method for playability.

As of now I'm not seeing much fps loss in the table due to the meshes

"it will all be ok in the end, if it's not ok, it's not the end"
 
Monster Bash VP10 WIP https://dl.dropboxus... (vpx)WIP15.vpx

uw2.gif


#7 UltraPeepi

UltraPeepi

    Enthusiast

  • Platinum Supporter
  • 216 posts
  • Location:Redmond, WA

  • Flag: United States of America

  • Favorite Pinball: Mary Shelly's Frankenstein

Posted 23 May 2014 - 02:25 AM

Sorry to resurrect an old thread, but somebody asked me for some details on this process.  Hopefully this will help with people trying to create wire ramps.

 

Software

FP: http://www.futurepinball.com/

Biturn: http://www.twcenter....do=file&id=2073

Blender: http://www.blender.org/download/

Blender Extension for FP: http://wiki.blender....turePinball_FPx

 

In addition to the FPx, enable MS3D Add On

 

Reference

http://www.vpforums....showtopic=24895

http://www.vpforums....showtopic=24883

 

Units

Pinball is 1.0625” / about 27mm / 50 VP units

Default VP table dimensions: 1000x2000 (540x1080mm)

Default FP table dimensions: 516x1068mm

 

 

1.    VP: Build a table with 2/4 wire ramp or use existing with flat ramps

2.    VP: Export table blueprint

3.    FP: Start a new table, remove all elements from starter table

4.    FP: Adjust table size by converting VP dimensions to mm (50 VP units = 27mm)

5.    FP: Set the playfield image as the VP blueprint

6.    FP: Build the wire ramp using FP models and end pieces by matching the layout to the blueprint (don’t forget to set the end height by translating from VP units to mm)

7.    Blender: Import the FP table (using a special FP plugin)

8.    Blender: Wire ramp is made up of several curves and meshes.   Select each curve and convert to mesh.

9.    Blender: Select each mesh and join

10.  Blender: Scale down to VP scaling (scale x,y,z to 0.019)

11.  Blender: Select and Export as Milkshape

12.  Biturn: Convert of Waveform OBJ

13.  VP: Import wire ramp mesh

14.  VP: Set position at X,Y,Z to 0 (Blender’s positioning should match the table)

15.  VP: Resize XSize,YSize, ZSize to 98

16.  VP: RotX 90

17.  VP: RotY 270

 

I realized that when I joined things in a different order, it changed the origin of the resulting mesh.  If you join the objects as outlined below, it should maintain the origin so that you can import into VP and leave the X,Y,Z positions set to 0.

 

8a:  Blender: Select each wire ramp sections (the ones just converted from curves), and end pieces, and join them

8b:  Blender: Move this newly joined mesh to a layer by itself

8c:  Blender: Select each ring and join them

8d:  Blender: Move this newly joined mesh to the same layer as the wire ramp mesh


Edited by UltraPeepi, 23 May 2014 - 04:12 AM.

ultradmd_splash.png


#8 UltraPeepi

UltraPeepi

    Enthusiast

  • Platinum Supporter
  • 216 posts
  • Location:Redmond, WA

  • Flag: United States of America

  • Favorite Pinball: Mary Shelly's Frankenstein

Posted 23 May 2014 - 05:46 AM

Attached File  RampTutorial11.png   442.11KB   9 downloads

 

I took some screen images to help.  They are here.

 

 

You can find some sphere map textures I created in this topic

http://www.vpforums....ic=24883&page=4


Edited by UltraPeepi, 23 May 2014 - 05:48 AM.

ultradmd_splash.png


#9 mistermixer

mistermixer

    Enthusiast

  • Members
  • PipPipPip
  • 202 posts

  • Flag: Belgium

  • Favorite Pinball: eightballdeluxe

Posted 23 May 2014 - 09:05 PM

Thanx UltraPeepi for detailing this topic ! I'll start immediatly.



#10 unclewilly

unclewilly

    sofa king.....

  • VIP
  • 5,176 posts
  • Location:Baltimore, Maryland

  • Flag: United States of America

  • Favorite Pinball: tz, tom, big hurt, who dunnit



Posted 24 May 2014 - 11:35 AM

The new wire ramps in vp are quite nice also.
But I have to admit. Doing them with ups method. They look so much nicer

"it will all be ok in the end, if it's not ok, it's not the end"
 
Monster Bash VP10 WIP https://dl.dropboxus... (vpx)WIP15.vpx

uw2.gif