Sign in to follow this  
Krohm

Let there be curved surfaces.


Recommended Posts

So far, I've been allowing only polygonal meshes in my engine, with proper tessellation to be performed by the DCC tool. Worked fairly good up to now but I've been asked a few times to provide more extensive support for nonplanar surfaces.
I've played a bit in the past with curves, mainly from experimentation with ID Technology bezier surfaces. Those however were just "experiments", while I now have to deal with a more robust, mid-to-long term solution. In particular I often have to deal with cylinders and I see collada has support for some parametric surfaces.
So I'd like to hear some opinions on curve support in format and runtime.
It is clear I have to support them in a way or the other, question is how...
[list][*]Filter support involves tassellating and resolving everything at preprocessing.
Main advantage: leaves the core runtime untouched in line of concept.
Problem: no LOD support. Although I have plenty of performance available for the time being, this could stride far from an optimal solution.[*]Runtime support requires a yet-to-be-quantified amount of work (but it's surely way more than the first solution). Managing the lods and cracks at runtime might eventually need some weeks of work. Doing this for arbitrary parametric meshes is something I tried to tackle in the past with no success.[/list]
I'm currently inclined to look forward the filter-only support, but some features involving the encoding (which tries to "palettize" vertex blobs) interact poorly with curve supports. I suppose quadratic beziers should be enough for now.
If somebody has knowledge to share, I'd be interested in hearing some "overviews" involving curve support.

Share this post


Link to post
Share on other sites
One thing I'm interested in knowing is: what do you need the parametric surfaces for? What kind of engine are you coding?
From my experience, the optimization of fewer primitives rarely pays of these days on modern graphics hardware. There are many more bottlenecks.
Performing collision detection with these curves in a mixed-primitive environment also seems rather difficult.
Higher-order primitives are great for modeling, but bring a lot of additional complexity to a game engine. I'd be interested in whether you think the trade-off is worth it.

Share this post


Link to post
Share on other sites
[quote name='godmodder' timestamp='1307393162' post='4820253']One thing I'm interested in knowing is: what do you need the parametric surfaces for? What kind of engine are you coding?[/quote]It's aimed at games. BUT, because I have a connections in the mechanical and construction fields, I have some people here. They probably think at this as the successor of the old "microcad" project. As such, I often have to disguise it as a quick renderer for preview purposes. I managed to get a couple of good scores here. Now, they use curves (of all sorts) naturally so I am not completely surprised they'd like to see them implemented - recall beziers were designed for use by automotive design.


[quote name='godmodder' timestamp='1307393162' post='4820253']Performing collision detection with these curves in a mixed-primitive environment also seems rather difficult.[/quote]I don't think I'm going for accurate simulation, I'll probably always deal with the high-poly mesh.

[quote name='godmodder' timestamp='1307393162' post='4820253']Higher-order primitives are great for modeling, but bring a lot of additional complexity to a game engine. I'd be interested in whether you think the trade-off is worth it.[/quote]I don't think there's a trade off in terms of efficiency or speed. I talked yesterday to a friend of mine and he suggested to have at least some partial support to increase the buzzword count, a thing in which I am severely lacking.
Those meshes are very different from planar meshes as they are "dense" by definition. It sounds reasonable to have a subsystem to deal with denser meshes.
In the long term, I suppose I'll figure out a way to fetch those to D3D11 tessellator.

To be completely honest, I am still not sure this buys me something besides the buzzwords so I decided to ask.

Share this post


Link to post
Share on other sites
I'd hoped in higher poll count.
Anyway, I took some time to look at the todo list and I've decided to not provide any support, it just does not stand up in the priorities nor the time frame. I will probably reconsider this in the future.
Thanks to those who voted and replied.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this