青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

麒麟子

~~

導航

<2013年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

統計

常用鏈接

留言簿(12)

隨筆分類

隨筆檔案

Friends

WebSites

積分與排名

最新隨筆

最新評論

閱讀排行榜

評論排行榜

10 Fun Things to do with Tessellation

原文地址:http://castano.ludicon.com/blog/2009/01/10/10-fun-things-to-do-with-tessellation/

Hardware tessellation is probably the most notable feature of Direct3D11.

Direct3D11 was announced at the last Gamefest and a technical preview was released in theNovember 2008 DirectX SDK. Hardware implementations are expected to be available this year.

Direct3D11 Pipeline

Direct3D11 extends the Direct3D10 pipeline with three new stages: Two programmable shader stages (the Hull and Domain Shaders), and a fixed function stage (the Tessellator). More details can be foundhere and here.

Rendering of Catmull-Clark subdivision surfaces is often mentioned as the primary application for the tessellation pipeline, but there are many other interesting uses that have not received that much attention.

I thought it would be interesting to take a closer look at those other applications, and submitted a proposal to do that at GDC’09. However, it seems that the organizers do not think tessellation is as interesting as I do, or they didn’t like my proposal, or maybe it’s just that they know I’m a lousy speaker. I will never know, because the gracious feedback of the GDC review committee can be represented by a single boolean.

In any case, here’s a brief overview of the 10 fun things that I was planning to talk about. I don’t get very deep into the technical details, but in future posts I may describe some of these applications more thoroughly. Please, leave your comments if there’s something you would like to learn more about.

PN-TRIANGLES

Curved PN Triangles is a triangle interpolation scheme that operates directly on triangle meshes whose vertices are composed of positions and normals (PN stands for Point-Normal).

PN Triangles

It’s an interesting way of improving visual quality that offers a simple migration path, since assets do not need to be heavily modified.

The PN Triangle evaluation consists of two steps: First, for every triangle of the input mesh a triangular cubic patch is derived solely from the vertex positions and normals; no adjacency information is required. Then, the resulting patch is subdivided or tessellated for rendering.p>

The resulting surface is smoother than the polygonal surface, but does not have tangent continuity in general, and that results in shading discontinuities. To hide these discontinuities normals are interpolated independently using either linear or quadratic interpolation. These normals are not the true surface normals, but they provide a smooth appearance to the surface.

This two-step evaluation maps very well to the Direct3D11 tessellation pipeline. The evaluation of the control points can be performed in the Hull Shader, the fixed function tessellator can produce a tessellation pattern in the triangle domain, and the actual surface can be evaluated for each of the tessellated vertices in the Domain Shader.

Scalar Tagged PN-Triangles

In order to support sharp edges a rim of small triangles is added along the edges. That increases the number of patches, and it’s not entirely clear how to properly texture map them.Scalar Tagged PN-Triangles solves that problem in a more elegant way by tagging each crease vertex with three scalar that act as shape controllers and modify the construction of the surface control points. However, this representation does not support crease corners.

SILHOUETTE REFINEMENT

When tessellation is enabled the only supported primitive type is the patch primitive. In Direct3D11 a patch is an abstract primitive with an arbitrary number of vertices. You can use patches to represent traditional primitives (ie. a triangle is just a patch with 3 vertices), but this also enables you to represent other input primitives with arbitrary topology and additional connectivity information.

Silhouette Refinement

An interesting extension of of PN-Triangle tessellation is to augment the input triangles with the neighbor vertices in order to perform silhouetterefinement.

With this additional information it’s possible to compute tessellation factors in he Hull Shader based on whether an edge is on the silhouette or the interior of the mesh. Then the fixed function tessellator uses these edge tessellation factors to produce a semi-regular tessellation pattern and the Domain Shader transforms it to interpolate the surface.

PHONG TESSELLATION

Phong Tessellation

Phong Tessellation is a geometric version of Phong interpolation, but applied to vertex positions instead of normals.

First, points are interpolated linearly over each triangle using its barycentric coordinates, then the points are projected onto the planes defined by the corner position and normal, and finally the result of the three projections is interpolated again.

This procedure produces a smooth surface comparable to PN Triangles, but its evaluation is much cheaper, since no additional control points need to be computed.

BEZIER SURFACES

Curved surfaces are not only useful for characters, but also for level geometry and objects.

Quake 3 Arena

id Software introduced the use of quadratic Bezier patches for architectural geometry in Quake 3 Arena and has been using them ever since.

Climax Brighton’s Moto GP used cubic Bezier patches to model the motorcycles.

Bezier patches can be evaluated very efficiently, because they don’t need any information about the surrounding mesh. As these games show, tessellation hardware is not required to render these surfaces. However, hardware tessellation will allow doing it much more efficiently, and will facilitate the use of these and more complex surfaces.

APPROXIMATION TO SUBDIVISION SURFACES

Rendering of approximated Catmull-Clark subdivision surfaces is probably the most anticipated application of hardware accelerated tessellation. Several approximation methods exist.

Approximation to Catmull Clark Subdivision Surface

Approximating Catmull-Clark Subdivision Surfaces with Bicubic Patches is the most popular one. This approximation constructs a geometry patch and a pair of tangent patches for each quadrilateral face of the control mesh. The geometry patch approximates the shape and silhouette, but does not provide tangent continuity. A smooth normal field is constructed using two additional tangent patches. The approximation supports boundaries and has also been extended to support creases in Real-Time Creased Approximate Subdivision Surfaces.

GPU Smoothing of Quad Meshes proposes an alternative approximation using piecewise quartic triangular patches that have tangent continuity and do not require additional tangent patches to provide a smooth appearance. In Fast Parallel Construction of Smooth Surfaces from Meshes with Tri/Quad/Pent Facets the same approach is extended to approximate triangular and pentagonal faces.

(c) Kenneth Scott, id Software

Kenneth Scott, id Software

Gregory patches are a more compact representation that also provides a very similar approximation, but only support quad and triangle control faces.

The availability of sculpting tools like ZBrush and Mudbox makes it possible to create highly detailed meshes. Displaced subdivision surfaces provide a compact and efficient representation for these meshes.

RENDERING GEOMETRY IMAGES

Another approach to render highly detailed surfaces is to use geometry images. While geometry images can be rendered very efficiently, their video memory requirements are generally higher than displacement maps due to the lack of high precision texture compression formats. Traditional animation algorithms are not possible with this representation, and view dependent tessellation level evaluation is complicated, because geometry information is not directly available at the Hull Shader stage. However, geometry images may be the fastest approach to render small static objects at fixed tessellation levels.

TERRAIN RENDERING

Terrain rendering is one of the most obvious applications for tessellation. The flexibility of the tessellation pipeline enables the use of sophisticated algorithms to evaluate the level of refinement of the terrain patches, and frees you from having to worry about many of the implementation details.

Saga of Ryzom

It’s also possible to extend traditional terrain engines with arbitrary topologies. Some MMORPGs are already doing that to create more rich environments.

For example Saga of Ryzom, a game that is based on the Nevrax engine, uses cubic patches to model the terrain, which enables them to create impressive cliffs and overhangs.

Saga of Ryzom

Tessellation should make it possible to combine regular heightfields, with caves, cliffs, arches, and other interesting rock formations.

I think that ZBrush or Mudbox would be excellent tools to create natural looking rugged terrain.

HAIR RENDERING

Efficient hair rendering is one of the most interesting applications of the Direct3D11 tessellation pipeline. In addition to triangular and quad patches the fixed function tessellator can also generate lines, which are very useful for applications like hair and fur rendering.

Nalu

The algorithm described in Hair Animation and Rendering in the Nalu Demo maps very well to the tessellation pipeline.

As shown in Real-Time Rendering of Realistic Hair, the use of the hardware tessellation pipeline makes it very easy to simulate and render realistic hair with high geometric complexity in real-time.

That’s possible, because the simulation is performed only on a few hundred guide hairs, that are expanded by the tessellator into thousands of hair strands.

RENDERING PANORAMAS

Another application for tessellation is to perform arbitrary non linear projections, that is useful, for example, to create real-time panoramas.

Since graphics hardware relies on homogeneous linear interpolation for rasterization, arbitrary projections and deformations at the vertex level result in errors unless the surface is sufficiently refined.

PanQuake

The traditional image based approach is to render the scene to a cube map and then perform an arbitrary projection of the cubemap to screenspace relying on texture hardware to do the sampling and interpolation. This was the approach taken in Fisheye Quake and Pan quake.

While that works well, it requires rendering the scene to the 6 cube faces, and sometimes results in oversampling or undersampling of some areas of the scene.

panorama

Dynamic Mesh Refinement on GPU using Geometry Shaders proposes the use of the geometry shader to dynamically refine the surfaces to prevent linear interpolation artifacts. However, the Geometry Shader operates sequentially and is not well suited for this task. On the other side, the dynamic mesh refinement algorithm maps well to the Direct3D11 tessellation pipeline.

RENDERING OF 2D CURVED SHAPES

While GPUs can render simple polygons, they are not able to automatically handle complex concave and curved polygons with overlaps and self intersections, without prior triangulation and tessellation.

SVG Tiger

The Direct3D11 tessellation pipeline is not designed to perform triangulation. However, there’s a well known method to render arbitrary polygons using the stencil buffer that can be used in this case. This method was first described in theOpenGL Red Book, but was recently popularized by its implementation in the Qt graphic library.

It’s possible to combine this technique with hardware tessellation to render curved tessellated shapes without the need of expensive CPU tessellation and triangulation algorithms.

posted on 2013-04-01 00:18 麒麟子 閱讀(398) 評論(0)  編輯 收藏 引用

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲深夜av| 国内精品国产成人| 美女在线一区二区| 激情视频一区二区| 久久蜜桃精品| 久久在线91| 亚洲最新中文字幕| 99精品欧美一区二区三区| 国产精品国产三级国产普通话三级| 一区二区三区视频在线观看| 亚洲视频在线免费观看| 国产日韩欧美精品| 欧美不卡在线| 欧美午夜宅男影院| 麻豆精品在线视频| 欧美日韩国语| 久久久精品视频成人| 久久免费精品视频| 亚洲一区二区三区高清 | 午夜精品久久久久久99热| 欧美日韩dvd在线观看| 欧美一区二区高清| 每日更新成人在线视频| 在线亚洲激情| 久久九九精品| 亚洲一级网站| 久久偷窥视频| 香蕉久久精品日日躁夜夜躁| 久久午夜激情| 性做久久久久久久久| 美女日韩在线中文字幕| 欧美一级黄色录像| 欧美肥婆bbw| 久久亚洲午夜电影| 国产精品va在线播放| 欧美福利一区二区| 国产欧美韩国高清| 一本一本大道香蕉久在线精品| 狠狠色香婷婷久久亚洲精品| 一本一本久久| 亚洲精一区二区三区| 久久精品道一区二区三区| 午夜久久tv| 欧美日韩日本网| 欧美国产一区二区| 国产亚洲一区二区三区在线观看 | 午夜精品久久久久久久99水蜜桃 | 正在播放日韩| 99在线|亚洲一区二区| 久久久久久国产精品一区| 亚洲天堂免费在线观看视频| 久久婷婷国产麻豆91天堂| 久久都是精品| 国产欧美午夜| 亚洲欧美日韩一区二区| 亚洲伊人观看| 欧美午夜精品久久久久久孕妇| 亚洲国产福利在线| 一区视频在线看| 久久国产欧美精品| 久久久不卡网国产精品一区| 国产精品亚洲аv天堂网| 一本色道久久88精品综合| 日韩视频永久免费| 欧美激情在线免费观看| 亚洲高清一二三区| 亚洲日本中文| 欧美精品一区二区在线观看| 亚洲欧洲日产国码二区| 99re热精品| 欧美日韩一区二区在线视频| 一区二区精品| 欧美一区二区三区在线看| 国产日韩欧美一区二区| 欧美在线精品免播放器视频| 久久精品国产一区二区三| 国产一区二区在线免费观看| 久久精品官网| 亚洲国产精品综合| 中文无字幕一区二区三区| 欧美午夜片在线观看| 午夜精品久久久久久久久久久久久| 久久这里有精品15一区二区三区| 老司机aⅴ在线精品导航| 欧美高清在线视频观看不卡| 91久久精品日日躁夜夜躁国产| 欧美激情一区二区三区蜜桃视频 | 久久久久久综合网天天| 国户精品久久久久久久久久久不卡| 久久噜噜噜精品国产亚洲综合| 欧美电影打屁股sp| 在线亚洲观看| 很黄很黄激情成人| 欧美日韩高清在线观看| 欧美一区二区播放| 亚洲福利视频免费观看| 午夜精品久久久久久久蜜桃app| 国产视频在线观看一区二区三区| 久久久久久国产精品mv| 亚洲美女区一区| 久久成人18免费观看| 亚洲精品美女久久久久| 国产精品普通话对白| 欧美 日韩 国产一区二区在线视频 | 亚洲片国产一区一级在线观看| 欧美日韩中文在线观看| 久久精品视频网| 一区二区三区四区五区视频| 久久一区二区三区四区| 亚洲免费视频观看| 91久久久一线二线三线品牌| 国产免费成人在线视频| 欧美激情国产日韩精品一区18| 亚洲欧美久久久久一区二区三区| 欧美激情在线| 久久免费视频在线观看| 亚洲综合999| 99这里只有久久精品视频| 悠悠资源网亚洲青| 国产乱码精品一区二区三区五月婷 | 亚洲天堂黄色| 亚洲激情女人| 欧美激情 亚洲a∨综合| 久久免费高清| 久久精品论坛| 亚洲欧美日韩精品久久亚洲区| 亚洲精品日韩激情在线电影| 在线观看亚洲视频| 国产亚洲欧美激情| 国产免费成人在线视频| 国产精品视频网站| 欧美视频手机在线| 欧美日本国产精品| 欧美精品国产一区| 欧美激情视频网站| 欧美黄色aaaa| 欧美精品激情在线| 欧美国产欧美综合 | 久久精品一区二区| 欧美尤物巨大精品爽| 亚洲欧美成人一区二区在线电影| 夜夜精品视频一区二区| 日韩一本二本av| 一区二区日韩| 亚洲欧美日韩精品久久| 欧美成人精精品一区二区频| 亚洲第一黄色网| 欧美国产综合一区二区| 久久国产婷婷国产香蕉| 亚洲午夜电影在线观看| 亚洲永久精品大片| 亚洲一区二区三区四区中文| 老司机精品导航| 欧美va天堂| 亚洲二区在线视频| 亚洲欧美制服另类日韩| 亚洲视频综合| 亚洲欧美影音先锋| 久久精品中文字幕一区| 久久久久国产一区二区三区| 久久久久这里只有精品| 另类天堂av| 亚洲经典在线| 亚洲视频观看| 久久精品国产亚洲一区二区| 久久美女性网| 欧美三级乱人伦电影| 国产区精品在线观看| 在线观看三级视频欧美| 亚洲人成欧美中文字幕| 亚洲天堂黄色| 久久婷婷丁香| 亚洲精品国产精品久久清纯直播 | 亚洲欧美日韩天堂一区二区| 亚洲综合视频在线| 久久黄色影院| 亚洲国产女人aaa毛片在线| 在线亚洲欧美| 久久躁狠狠躁夜夜爽| 欧美日韩成人网| 国语精品一区| 亚洲午夜伦理| 久久综合久色欧美综合狠狠| 91久久精品国产91久久性色tv| 亚洲自拍偷拍福利| 免费一区二区三区| 国产精品一香蕉国产线看观看| 在线欧美一区| 亚洲欧美视频在线| 亚洲成色www8888| 性欧美激情精品| 欧美日在线观看| 亚洲黄色影片| 久久免费国产精品1| 99国产精品| 久久一本综合频道| 国产欧美视频一区二区三区| 99热这里只有精品8| 欧美成人免费小视频| 性做久久久久久|