The new replacement for them is called the "mesh shader" which is supposed to unify vertex shaders, geometry shaders, tesselation, and the input assembler into one big programmable stage and do away with index buffers. Of course, geometry shaders can also do all that, but geometry shaders tend to be quite slow and have some implementation issues, while tesselation uses (or at least used to use not sure about modern GPUs), fixed-function hardware that's fast at just doing one thing. Basically, anything that requires adding extra mesh density at runtime can be done with tesselation. I've read about it being used to increase density of mesh-based fur so that an animal can looks super fluffy when the camera is close. The ID2D1TessellationSink interface has just two methods: AddTriangles (which adds a collection of D2D1TRIANGLE objects to the collection) and Close, which makes the mesh object immutable. If I ever get around to porting wave-particles to Unity I may use tesselation there too, so that big waves get more detail while mostly-still water gets less. In Direct2D, tessellation is the process of decomposing a two-dimensional area into triangles. You can also do even trickier things with tesselation, eg RDR2 used it for footprints in snow so that most of the snow was just a flat plane but the places where the character walked had detailed footprints carved into them. Available in a range of colours and styles for men, women. ![]() The most common 2 effects that tesselation is used for are displacement mapping (what that is a picture of) - adding detail to things close to the camera, and Phong tesselation (or PN triangles, or a few other variants), which will make meshes close to the camera smooth so they look curved from all angles. Shop high-quality unique Triangle Tessellation T-Shirts designed and sold by independent artists. Notice that the triangles are all roughly the same size on screen (although some are stretched) - the areas close to the camera recieve many more triangles than the ones far away. ![]() For example, from the Catlike Coding Tutorial: ![]() The idea is that you can decide at runtime (per-frame) where to add triangles.
0 Comments
Leave a Reply. |