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

麒麟子

~~

導航

<2009年8月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

統計

常用鏈接

留言簿(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 麒麟子 閱讀(399) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲高清在线观看一区| 亚洲福利视频网| 中文久久乱码一区二区| 亚洲国产专区| 99综合视频| 亚洲欧美国产毛片在线| 亚洲永久在线观看| 午夜免费电影一区在线观看 | 在线视频亚洲| 午夜精品偷拍| 久久精品国产亚洲一区二区| 久久久久久久国产| 欧美—级高清免费播放| 欧美午夜片在线观看| 国产精品乱码久久久久久| 国产日韩欧美另类| 亚洲福利免费| 性欧美暴力猛交另类hd| 美女国内精品自产拍在线播放| 亚洲国产视频直播| 午夜精品一区二区三区电影天堂| 久久久无码精品亚洲日韩按摩| 亚洲一区二区三区午夜| 欧美专区在线观看| 亚洲国产美女精品久久久久∴| 亚洲一区二区三区高清 | 午夜日韩激情| 亚洲成色www8888| 亚洲欧美国产三级| 欧美精品aa| 亚洲欧美日韩综合一区| 欧美成人一区在线| 国产视频一区在线| 亚洲四色影视在线观看| 欧美国产日本在线| 亚洲欧美一区二区三区极速播放| 模特精品裸拍一区| 国内揄拍国内精品久久| 一区二区三区四区五区视频 | 尤物九九久久国产精品的特点| 99re6热只有精品免费观看 | 精品av久久707| 亚洲一区综合| 亚洲人成艺术| 久久先锋资源| 国外成人在线| 久久精品一区二区三区四区 | 国产午夜精品一区二区三区欧美 | 99在线视频精品| 免费观看成人网| 午夜精品久久久久久久99水蜜桃| 女同性一区二区三区人了人一 | 99国产精品久久久久久久成人热| 久久久噜噜噜久久| 亚洲自拍偷拍网址| 欧美日韩免费高清| 亚洲免费大片| 91久久综合亚洲鲁鲁五月天| 久久久久久久久岛国免费| 国产日韩欧美日韩大片| 久久国产毛片| 欧美一区二区| 激情久久五月天| 美国十次了思思久久精品导航| 欧美一级淫片aaaaaaa视频| 国产精品视频网| 欧美一级专区| 午夜精品免费在线| 黄色精品一区二区| 欧美激情视频给我| 欧美国产欧美亚洲国产日韩mv天天看完整 | 亚洲一二三区精品| 免费成人性网站| 亚洲国产另类久久精品| 免费观看在线综合| 久热综合在线亚洲精品| 亚洲免费观看高清在线观看 | 亚洲高清激情| 欧美破处大片在线视频| 在线综合亚洲欧美在线视频| 亚洲视频在线播放| 国产欧美在线播放| 欧美成年人视频| 欧美日韩国产一区二区三区地区| 亚洲图片在线观看| 亚洲欧美日韩国产精品| 激情五月婷婷综合| 91久久精品国产91久久性色tv| 欧美精品一区在线播放| 亚洲欧美视频一区| 久久精品一区二区三区四区 | 亚洲免费电影在线| 国产女主播一区二区| 欧美刺激午夜性久久久久久久| 欧美国产大片| 久久精品日产第一区二区| 免费久久99精品国产自| 亚洲欧美成aⅴ人在线观看| 久久精品人人爽| 在线中文字幕日韩| 久久福利精品| 亚洲在线观看视频| 老司机一区二区三区| 欧美一二三视频| 欧美片在线观看| 免费成人高清视频| 国产精自产拍久久久久久| 亚洲激情一区| 136国产福利精品导航网址应用| 99成人免费视频| 亚洲国产精品va| 性欧美1819性猛交| 亚洲午夜一区二区| 欧美成人国产| 美女被久久久| 好吊色欧美一区二区三区四区| 99成人在线| 日韩视频在线你懂得| 久久人人爽人人爽| 久久视频一区| 国产一区二区三区黄| 午夜精品久久久久久99热| 久热精品视频在线观看| 久久国产精品免费一区| 欧美三级小说| 亚洲精品乱码久久久久| 亚洲国产高清aⅴ视频| 欧美专区在线观看| 欧美在线亚洲| 国产欧美日韩亚洲一区二区三区 | 妖精视频成人观看www| 亚洲美洲欧洲综合国产一区| 免费高清在线一区| 老牛影视一区二区三区| 国产一本一道久久香蕉| 欧美一区=区| 欧美a级片网站| 噜噜噜久久亚洲精品国产品小说| 国产小视频国产精品| 午夜精品亚洲| 久久久精品一区二区三区| 国产午夜精品全部视频在线播放| 性欧美8khd高清极品| 久久久久久久网| 激情五月婷婷综合| 久久久在线视频| 欧美国产精品久久| 亚洲精品中文字| 欧美日本一道本在线视频| 亚洲裸体在线观看| 亚洲综合清纯丝袜自拍| 国产欧美精品一区| 久久精彩视频| 欧美激情一区二区三区在线视频| 亚洲精品在线免费| 欧美日韩另类视频| 亚洲午夜性刺激影院| 久久久久久久一区二区三区| 悠悠资源网亚洲青| 欧美精品在线观看| 亚洲摸下面视频| 美玉足脚交一区二区三区图片| 亚洲精品国产精品国自产观看浪潮 | 影音先锋欧美精品| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲高清在线| 亚洲午夜久久久久久尤物| 国产三级精品三级| 欧美大片在线观看| 亚洲在线一区| 欧美国产第二页| 亚洲网在线观看| 国内精品久久久| 欧美日韩国产一区精品一区| 午夜视频一区| 亚洲精品欧美在线| 久久精品麻豆| 在线亚洲美日韩| 1204国产成人精品视频| 国产精品国产三级国产专区53 | 国产精品一区二区在线观看网站 | 久久色在线观看| 亚洲精品少妇| 国产一区二区三区精品欧美日韩一区二区三区 | 欧美国产免费| 性欧美办公室18xxxxhd| 亚洲日本欧美在线| 久久久999| 亚洲欧美电影在线观看| 亚洲欧洲日韩在线| 国内精品久久久久久久果冻传媒 | 久久影院午夜论| 亚洲欧美日韩在线高清直播| 亚洲三级视频在线观看| 美女久久网站| 久久精品视频在线看| 亚洲欧美国产精品桃花| 亚洲国产一区二区三区高清| 黄色亚洲精品| 国产精品揄拍500视频|