スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

簡易粒子法(SPH)ソフトの開発:GLSLでリアルなアニメーション

SPHプログラムにGLSLを組み込みました。
シャドウマッピングを組み込むことが最大の目的です。
かなり苦労しましたが何とか成功です。
以前の動画とは比べ物にならない綺麗さです。



シャドウマッピングで苦労したのがデプスファイティング対策。
前回は出てこなかったので問題になりませんでしたが
今回はポリゴン表面一面に縞模様がブワーッと出現。
Perspectiveやらnear/farをいくらいじっても消えてくれませんでした。

そこでGoogle検索をしたところポリゴンオフセットが有効との事。
これって平面状のみの影描画の時も同様の手を使った記憶があります。

シャドウ作成部分にサンプルコードのまま

glPolygonOffset(1.1f, 4.0f);
glEnable(GL_POLYGON_OFFSET_FILL);

scene();//影作成のためのシーン描画
glDisable(GL_POLYGON_OFFSET_FILL);

と入れたら見事に縞模様が消えました。
多少まだノイズがチラチラしていますがあとはパラメータ修正で対処しようと思います。

glPolygonOffsetの引数の意味はこちら

void glPolygonOffset(GLfloat factor, GLfloat units);
When enabled, the depth value of each fragment is added to a calculated offset value. The offset is added before the depth test is performed and before the depth value is written into the depth buffer. The offset value o is calculated by:
o = m * factor + r * units
where m is the maximum depth slope of the polygon and r is the smallest value guaranteed to produce a resolvable difference in window coordinate depth values. The value r is an implementation-specific constant.

まるで読む気がしません。

情報元:OpenGL Programming Guide

スポンサーサイト

コメントの投稿

非公開コメント

カレンダー
08 | 2017/09 | 10
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
プロフィール

uglab

Author:uglab
ソフト開発会社

【Twitter】
フォローお願いします

【You tube動画一覧】
チャンネル登録お願いします


最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
FC2カウンター
検索フォーム
スポンサードリンク
    【スポンサードリンク】

リンク
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。