コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
最近の更新
未作成ページ
おまかせ表示
ヘルプ
MonoBook
検索
検索
ログイン
個人用ツール
ログイン
ログアウトした編集者のページ
もっと詳しく
投稿記録
トーク
「
バーテックスシェーダー
」を編集中
ページ
議論
日本語
閲覧
編集
ソースを編集
履歴表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
編集
ソースを編集
履歴表示
全般
リンク元
関連ページの更新状況
特別ページ
ページ情報
2018年8月31日 (金) 12:30時点における
imported>Administrator
による版
(
差分
)
← 古い版
|
最新版
(
差分
) |
新しい版 →
(
差分
)
警告: このページの古い版を編集しています。
公開すると、この版以降になされた変更がすべて失われます。
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 けっして、ここには、値の入力は
しない
でください!
'''バーテックスシェーダー'''([[英語]]:Vertex Shader、和名:頂点シェーダー)とは、[[シェーダー]]のうち、[[グローバル変数]](実質的に[[定数]])と[[ポリゴン]]の[[頂点データ]]が入力され、それを加工して、出力するものをいう。 == 概要 == バーテックスシェーダーと[[ピクセルシェーダー]]の2種類は基本中の基本であるため、[[シェーダーモデル]]を問わず、[[DirectX]]や[[MonoGame]]、[[Unity]]などのプラットフォームも問わず扱えるはずである。 [[file:バーテックスシェーダー.png|none]] バーテックスシェーダーは、[[バーテックスバッファ]]および[[インデックスバッファ]]で無駄を削がれた[[頂点データ]]群を入力として受け取る。 出力も[[頂点データ]]群である。この出力は[[ジオメトリシェーダー]]に渡されて[[ピクセル]]群に分解され、その後[[ピクセルシェーダー]]に渡される。なお、近年のパイプラインではバーテックスシェーダーの直後に「[[ハルシェーダー]]」「[[テッセレーター]]」「[[ドメインシェーダー]]」の[[テッセレーション]]三兄弟(実質3つで1つ)を経由することもある。 == 主な用途 == 主に服や草などが「なびく系」のアニメーションを行うのに用いられていることが多い。これらは[[物理演算エンジン]]で細かく計算してもいいが、たとえば草原の草を1本単位で物理演算するのは[[CPU]]では論外、専用ハードウエアでも厳しい。そういった場面でそれらしく見せるのに使われる。 また、小難しいことをしない場合はバーテックスシェーダーはほとんど使われず、頂点データにカメラ座標を行列乗算(カメラから見た位置に変換)して出力することも多い。[[MonoGame]]のサンプルプログラムではモデルとカメラの[[ジオメトリ変換]]に[[CPU]]で計算していることが多いが、バーテックスシェーダーを使うとかなり速くなるよ。 === 頂点データの最適化 === 入力をそのまま出力するバーテックスシェーダーを用意して、そこに[[バーテックスバッファ]]と[[インデックスバッファ]]を投げ込む。すると[[インデックスバッファ]]と同じサイズに無駄を削がれた[[バーテックスバッファ]]が得られる(インデックスが頂点座標に置き換えられたものが得られる)。 この無駄の削がれたバーテックスバッファを[[物理演算エンジン]]にぶち込み[[レイキャスト]]を使った当たり判定に用いると結構いい感じになる。 なお、[[OpenGL ES]]系では[[バーテックスバッファ]]は書き込み一方通行であり読み出せないのでこの方法は使えない。あまり変化のない物体であれば[[PC]]上の[[OpenGL]]や[[DirectX]]でこの手法で無駄を削いだバーテックスバッファを事前に取得し、[[csvファイル]]なんかに保存しておき、[[iOS]]や[[Android]]などのOpenGL ES系のプラットフォームではそれを利用するという手もある。[[アプリ]]内での計算量も減るので高速化にもなる。 == 関連項目 == * [[シェーダー]] ** [[バーテックスシェーダー]] ** [[ピクセルシェーダー]] ** [[ジオメトリシェーダー]] ** [[ハルシェーダー]] ** [[ドメインシェーダー]] ** [[コンピュートシェーダー]] * [[HLSL]] * [[OpenGL ES]]
編集内容の要約:
MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MonoBook:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の確認用の質問に回答してください (
詳細
):
1たす1は?(全角で入力してください)
キャンセル
編集の仕方
(新しいウィンドウで開きます)
本文の横幅制限を有効化/無効化