3. Advanced Shader
Advanced Shader今回はプレミアムコンピューターグラフィックスコースに参加し、Telescoval Shaderに初めて触れました.Geometry Shaderは金教授のコンピューターグラフィックスを聞いて授業の認識を深めた. Unrealエンジンを使用して、ピクセルのツリーAssetのデータ実装部分で、Tessellationを制御することで、ツリーテクスチャの移動を制御することができます.これがその部分だと思います.講座を聞いた後、アニメを作る人にとても役に立つと聞きました.簡単に動画を扱うことができるそうです. 私は、その移動した部分がグラフィックレンダリングでオーバーロードされる可能性があるので、いっそ削除してGPUにはあまり影響しないと言っています.ヒューヒューいう不思議ですね. いずれにしても、です.長すぎる前に、まずGeometryShaderから始めます. Geometry Shder OpenGL 3.2から VertexShader以降に実行されるShader Primitive単位で頂点を受信します. 主な機能:エンティティ、頂点/Vertex位置を追加、削除できます. はVertex Shaderに代わるものではありません.必ずあります. Programming変数の伝達は、Uniform変数、in、out変数からなる. の違いは、レイアウト変数を使用することです. 三角形を入力し、点を3つの三角形striptにエクスポートします.
layout (triangle) in;//Points、Line、Line隣接、Triangle、Triangle隣接を使用できます
layout (triangle_strip, max_vertices = 3) out;//Points、LineStrips、TriangleStripsをサポート
の場合、すべてのin変数は、原語をインポートした頂点を配列とする.
in float light[3];//このように宣言すべきだ.
gl_in[0].gl_Position.xyz//glinも配列として処理する. build-in変数:gl PrimitiveIDはPrimitiveの何時のID値ですか.
EmiVertex()とEndPrimitive()があります.
EmitVertex()生成ポイント.この点は原語を作成するために使用されます.
EndPrimitive()は、受信ポイントを使用して原語を作成して送信します.上記の例では、三角形の棒グラフを生成します.
Interpolation Qualifier
Smooth、noperspective、flatがあります.名前のようにscreenspaceでは、連続的に補間されません.
Line Adjacency4ポイントをあげると、4つを原版に組み合わせます.ジオメトリでは4つの点を処理できます. Splineへの入力と言えます. 行のStrip隣接は、主に幾何学的Shaderの出力値として使用されます. Tessellation Shader地震:モザイクに起源する.ポリゴン間に間隔とオーバーラップはありません. 繊細なシェーダ TesseldモデルでDisplaceMappingを行い、テクスチャに基づいてベンドを作成することもできます. Dymamic Terrain Renderingは地震によって簡単なPrimitive地形を複雑にすることができる.900個のポリゴンで10万個のポリゴンを再生成できます. Instanced Tessellation簡略化モデルの平滑表示=>詳細表示 シフト図、面白い表現 アニメーションを使用する場合、移動する必要がある点の数を減らすことで、操作 を簡略化することができる.
Patch primitive Tessellation Shaderで入力可能な唯一の原語タイプ.コントロールポイントからなる Bezier、B-Spline、およびNURBSに基づく計算=>サーフェスまたはカーブ の作成(u,v)座標を有する.u = [0, 1], v = [0, 1] TessFactorは、0から1の間を4で割ると、4つのセグメントに分けられます. Patchの分割に従ってLODを定義することができる.遠=>単純、近=>詳細 Patchのタイプ:4(長方形)、等値線(線)、三角形(三角形) Programmingのテストを完了したShaderは2つに達しました~! その前にcppで...4制御点時 glPatchParameteri(GL_PATCH_VERTICES, 4);//<- 1つのpatchを構成する制御点数 glDrawArrays(GL_PATCHES, 0, 4);//完全な描画に使用する制御点数 Tessellation Control Shader(TCS)
定義 gl TessLevelOuter[]:外部パーティション数 gl TessLevelInner[]:内部パーティション数 4個4(l,d,r,u)、2個内(l,u) 三角形は3つの外(l,d,r),1つの内(d) である.等値線外2本(l,d)内0本
Tessellation Evaluation Shader(TES)実際のパッチ上の点位置 を計算する.ここでuを計算すればよい.
layout (triangle) in;//Points、Line、Line隣接、Triangle、Triangle隣接を使用できます
layout (triangle_strip, max_vertices = 3) out;//Points、LineStrips、TriangleStripsをサポート
in float light[3];//このように宣言すべきだ.
gl_in[0].gl_Position.xyz//glinも配列として処理する.
EmitVertex()生成ポイント.この点は原語を作成するために使用されます.
EndPrimitive()は、受信ポイントを使用して原語を作成して送信します.上記の例では、三角形の棒グラフを生成します.
Smooth、noperspective、flatがあります.名前のようにscreenspaceでは、連続的に補間されません.
Patch primitive
定義
layout(vertices = 4) out;
gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;
gl_TessLevelOuter[0] = 1;
gl_TessLevelOuter[1] = uOuter1;
その間にT e l escellationPrimitive Generator(TPG)がありますTessellation Evaluation Shader(TES)
layout(ioslines, equal_spacing) in;
vec4 p0 = gl_in[0].gl_Position;
gl_Position = b0 * p0;
Reference
この問題について(3. Advanced Shader), 我々は、より多くの情報をここで見つけました https://velog.io/@huijae0817/Advanced-Shaderテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol