DirectX 11.1

well only being able to divide existing triangles means you cant add geometry doesnt it ? (doesn't matter how many time I subdivide a triangle its still going to look like a triangle)

... but what you do then is apply a displacement map to it. There's no point displacing just a few verts, but if you've got lots of them you can get nice details. That's one thing tessalation is useful for. It's a cheap way of giving displacement maps the verts they need to play with. That's how I understand it anyway, and why I couldn't grasp what Otto was on about.
 
for example I cant tessellate a cube into a sphere

Sure you can. Tessellate the cube faces into a dense grid, then do:
Code:
Out.Vertex = normalize(In.Vertex);
And your output is a unit sphere. Multiply with a radius if you like.

no idea what topology means :(

Think of it as the layout of the mesh, like how the shape is connected through it's triangles and vertices.
 
but then humus, novum said "That means you can't change the topology of the rendered mesh" (layout of a mesh to me means size shape (size could be relative to something else i guess and not fixed) and how the triangles make up that shape)
but if you change the flat face of a cube into part of a sphere it has been changed - hasnt it

its late now, tomorrow i'll try and explain how i think how tessellation works
and hopefully someone will tell me where ive got it wrong

edit: decided to do it now ( with pics no less :D ) do i rock...

imagine the face of a rectangle (in game)
fig 1


so you tessellate it (in this case just a bit) and you create another vertex (the black dot)
fig 2


now you can move (displace) this vertex in the x,y or z plane the info for how its to be moved coming from a displacement map (or similar)

How wrong have I got it....
(and of course you can also use tessellation like a lod sytem or to smooth out shapes)
 
From a fellow layman POV (I'm happy to be corrected):

Imagine a head. It has a structure to it that you might define with points in 3D space. Joining up the points appropriately (like join the dots, but in 3D) means you have a topology, a flow of polygons that connect all the verts.

There exists good topology and bad topology for the purpose of modelling a head for animation. Good topology means that the face can be animated to make a wide range of expressions without warping, bad topology means, for example, that if your character smiles the corners of his mouth do what they're supposed to but it also makes something else move that shouldn't. This is because the flow is 'bad'. The points can all be in the right place, but you have to connect them to the right other points. You can imagine a join the dots, where you join all the dots, but not to the correct partners.

Hopefully that gives you an idea of what is meant by topology.

Now imagine that you have your wireframe head model. You can subdivide the mesh (tessalate), but the topology remains the same. You can do what you like to the new verts you have created with tessalation but the topology will still be the same. i.e. each vert is connected to the same verts - that doesn't change.

In a nutshell. You can't split or glue vertices together using tessalation. The order they are joined together in, is the order they remain. You can do what you like with the vertices - put them where you want, but the lines (edges) that connect them won't ever break.
 
so is a human figure with a hole in their head the same as a donut because each only has a single hole (very confusing)

That's a yes. ;)
Which means (in theory) you can tesselate a human with a hole in their head from a donut. But you can't tesselate a human without a hole in their head from a dount.
You can create a sphere from a box, but you can't create a torus from a sphere or a box.
You can drill a hole with geometry shaders for example, but building geometry for tunnel will be a whole new problem.
 
Sphere and box have the same topology, and so do all continuous fully connected surfaces that do not have any holes on them. Bumps do not change surface topology, holes and discontinuities do. If you want to read about some funky stuff about storing object surfaces in textures, I recommend this article: http://research.microsoft.com/en-us/um/people/hoppe/gim.pdf.
 
Last edited by a moderator:
You can create a sphere from a box, but you can't create a torus from a sphere or a box.

Well, in a sense you could, just bend the box around to a ring. It wouldn't be perfect though, you would end up with faces inside the torus though where the box ends meet, but rendering-wise it would look fine.
 
There´s nothing wrong with tesselation as long as there are no textures :)

So I´d really like to see a flight simulator with flat shaded or gouraud shaded polygons and *heavy* tesselation. Me and 2 other persons would probably buy it too!
 
GCN apparently is DX11.1. Is Fermi, or will NV have to wait for Kepler for 11.1 support? Or will NV skip 11.1 like they did with 10.1?
 
Judging from this I'd say that Fermi supports DX 11.1. It seems to be more focused on easing programming than introducing new HW features.

Also with the DX SDK now a part of the windows sdk my guess is that we will not see IHVs skipping a "version" since the releases probably will slow down.

A possible development here could be that ID3D11Device::CheckFeatureSupport will become a way for IHVs to implement new features between releases, similar to the extensions for OpenGL...
 
Judging from this I'd say that Fermi supports DX 11.1. It seems to be more focused on easing programming than introducing new HW features.

Also with the DX SDK now a part of the windows sdk my guess is that we will not see IHVs skipping a "version" since the releases probably will slow down.

A possible development here could be that ID3D11Device::CheckFeatureSupport will become a way for IHVs to implement new features between releases, similar to the extensions for OpenGL...

Given AMD's claim that GCN is the First DX11.1 GPU I would be suprised if Fermi was 11.1 compliant (with a simple driver update)
 
A possible development here could be that ID3D11Device::CheckFeatureSupport will become a way for IHVs to implement new features between releases, similar to the extensions for OpenGL...

This would not work as Direct3D doesn't support a way to add additional functions and return them as function pointer. CheckFeatureSupport is to check for optional features that are part of the standard. There are two kind of optional features. The first one are real optional features that the hardware can support but not part of a required feature set. The second type are features that are part of a higher feature level. This way it's possible to make features accessible without supporting the whole feature level.

There were some so called API Hacks in the past (DX9) that activated additional features by passing magic numbers to specific functions that are normal used for something different. I m not aware that something like this has done for DX10+.

Another way to add additional functions is to provide an additional layer above the Direct3D runtime. This layer will pass the regular call to the standard runtime. Extension calls are passed directly to the driver. Nvidia has done this to provide some 10.1 features for hardware that have no full support.
 
Demiurg, interesting. I don't really know much of DX, but thought they would have put in a mechanism to allow for exposing features.

Will be interesting to see how often they release new windows SDKs, and thus new Direct3D features.
 
I don't expect updates in a faster interval then service packs.

One of the main reasons to not allow custom features in DX is the pressure this generates on the IHV. If they want to see something in a new version they have no other choice as to find a common way. Beside of this it prevents that developers from writing custom code for every chip family from every party.

Extensions are nice for researcher and for developers that can force their customers to use specify hardware. But if you are in the consumer software business (like games) the can quickly become a huge pain.
 
Back
Top