NURBS and GFX cards

Next
 From:  ELF
520.1 
Hey there, I just have a quick question.

When programs like MoI use the graphics cards for the viewports,
is the videocards processing NURBS surfaces, or is it somewhere converted to a polymesh?
What I mean is, do modern videocards support NURBS surfaces,
or does MoI just do a better job at delivering a poly representation, than for example Solidworks or Solid Edge?
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
520.2 In reply to 520.1 
> When programs like MoI use the graphics cards for the
> viewports, is the videocards processing NURBS surfaces, or is it
> somewhere converted to a polymesh?

Currently it is always converted to a polygon mesh by the program first, and then polygons are sent to the video card. Video cards are focused on rendering polygons.

There has been research done to try and treat video cards as a more general purpose "coprocessor", using the programmable shader capabilities of the cards. I believe some of this research has included trying to handle NURBS in this manner (still converting to a polygon mesh, but trying to do the calculation on the shader processors of the video card), but this is still quite difficult to do for many reasons right now. I don't really expect this to be practical anytime very soon.


> or does MoI just do a better job at delivering a poly representation,

MoI just does a better job. Thanks for noticing! :)

This area of work was probably the single most difficult part of MoI to code. But I invested a lot of time on this because it has a huge impact.

Actually, normally other programs are capable of doing a good quality job if you crank up the settings. But the problem is that they're rather slow in calculating the better quality. Slow enough that you will have to wait around a lot of times for the meshes to be calculated. Coarser settings are quicker to calculate, so most programs use a coarse default setting to try and reduce the amount of wait time.

MoI's display mesher is highly optimized for speed. The extra speed made it possible for me to use a much more dense default setting than is typically done.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  ELF
520.3 In reply to 520.2 
That's bloody awesome :)

MoI really has some awesome surfaces, everything is so neat and clean... Last time I saw such nice quality was in Maya, but that was freakin' slooooooow :S
That was why I was wondering if it was using a "All-the-way-NURBS" solution. I remember this game engine, I think it was Crystal Space or something, that supported NURBS, and I couldn't quite get if that was using NURBS all the way, or just accepting NURBS data and meshing it...

Is the display mesher the same as the export mesher BTW?
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
 From:  Michael Gibson
520.4 In reply to 520.3 
> Is the display mesher the same as the export mesher BTW?

They're related. They are each part of a common core, then there are about 7 or 8 different places where the mesher chooses between 2 different algorithms depending on whether it is doing display meshing or export meshing.

The things for display meshing are tuned for speed. The ones for export meshing do a lot more calculation to try and get minimal and well proportioned meshes.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All