atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
FPSを作ってみる@wiki
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
FPSを作ってみる@wiki
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
FPSを作ってみる@wiki
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • FPSを作ってみる@wiki
  • 進捗状況(2012
  • 03)

FPSを作ってみる@wiki

03)

最終更新:2012年04月01日 00:19

Bot(ページ名リンク)

- view
管理者のみ編集可

(2012/03/31)

海

まだ途中.
HDRの途中でちょっと寄り道して海である.一応グラフィック関連だし迷走じゃないよね?
フレネル項かと思いきや,単に水面と視線の内積とってそれっぽく合成しただけ.
反射がちょっと赤っぽくなってるのはそのせいだろうか.後でちゃんとやるつもりだ.
遠景にフォグかけてないのと確かミップマップを使ってないのでぽつぽつとノイズが出ているとか
ああそうだ,太陽光源の反射もない.ないないない.

無限平面自体は昔からある(多分)しさして特殊な技術を使ってる訳じゃないから説明する様な事はないかなぁ
一応VertexTextureFetch使ってディスプレースメントなんぞもしているけどパラメタの調整が上手くいってないようだ・・

#追記1
フレネル反射とフォグを入れてみた.
前より大分マシではあるが・・・なんか3DCGソフト使いはじめで
とりあえずデフォルト設定で描画しました~的な独特の安っぽさが漂う.特に色がわざとらしい.
光源のスペキュラはまだ入れてないがそれでどうにかなるレベルでは,ちょっと.
空のキューブマップはミー散乱,レイリー散乱をやってる訳じゃもちろんなくて
Terragen2の初期設定で出力したものだから余計にそう思えるのかも.
もうちょっと改良したい(しないかもしれない)

それとゲームとして重大な問題があって,これは動的なシーンに対応していない.
つまり空と海の2枚のキューブマップ座標を変化させてるだけなのだ.
アフターバーナーのような超高速スクロールゲームでは無視してもなんとか誤魔化せちゃってる気がするが
大抵のゲームではそうも言ってらんないわけで.
リアルタイムにレンダリングしたテクスチャを使うしかない.
ここで引っかかるのが「どこまで正確に描写するか?」である.

正確性を期すならば海面の法線が刻々と変化する関係で全方位,キューブなら6回分必要.
しかもシャドウマップと違って質感から反射まで全部,更に海面下も6回・・まぁ却下ですな.
っていうか速度的に考えて通常シーン以外で描画を許容できるのは2,3回までだろう.
モデルの法線マップを全部ひっぺがして色だけでやるにしても,ね.

じゃあと次に思い浮かぶのは
うねらない水面の時と同じように視線を海面に対して反転させて一回描画すれば大体カバーできるから
うねった法線の関係で無理な分は誤魔化す方法.
ひねりも何もあったもんではないがこれで行こうかなと.

(2012/03/28)

God Ray

所謂GodRayエフェクト.自分が最初に見たのは初代HALOの時だったかなぁ
GPU Gems3に載ってる方法で実装してみたけど放射ブラーを使った物とあんまし変わらない,いや
もしかしたらブラーの方が滑らかかもしれない.パス数を取るか,テクスチャのサンプル数を取るか・・
スクリーンショットのは見栄えを重視で1ピクセルあたりサンプル数32と多くしてあるけど実際使うとしたら16とかかね.
動いてる分には荒さはわからないと思う.

(2012/03/27)

Radial Blur

所謂,放射ブラー.昔からありますな.爆発の時とか使えそうなのでサクッと実装してみた.
God Rayエフェクトを簡単に実現するならライト部分だけを描画したテクスチャに放射ブラーかけてシーンに合成すればいいんだけど
今回は別の手法にしようかなと.

(2012/03/26)

Depth of Field

DOF無し
DOF有り(1)
DOF有り(2)
Bene. さぁ次行こうか.

(2012/03/26)

HSAOの出来損ない 2

大分マシにはなったが,もう一声欲しい所.
#追記1
ああ,あれか・・・ランダムベクトルテクスチャを0~1の範囲で格納してたのを-1~1へ戻してなかったっていうお粗末様だ.
結構良さげになってきた.全体的に影が薄いのでブラーかける時に一工夫いるかも.
まだHorizon componentだけしか実装してないから次はNormal componentだ・・
#追記2
一応Normal component.画が悪かったと思う.これじゃHorizonのエッジを濃くしただけにしか見えないかも.
で,足し合わせる.最後にブラーをかけて終わり.
#追記3
ブラーは一様にかけるんじゃなくて深度値を利用してエッジや距離を考慮しながらやらないと駄目な気がした.
でもひとまず完了と言うことで次行っちゃうか.

(2012/03/25)

HSAOの出来損ない

いや,ブラーかけてなくてノイズ混じりなのは良いんだが・・
なんか違う.特に画面中央が不自然に暗くなってしまうのが気になる(続く)

(2012/03/23)

Omnidirectional-ShadowMap 再訪

これ自体は前にやったからなんて事ないんだが,今回はDeferredShadingによる実装.
数年前は影が滑らかになるし負荷もそれ程上がらないしで万能,それこそ涙が出る手法であった「Variance ShadowMap」だが
今だったらそこらのインディでもみんな普通に使ってるかな.

さて,散々webで寄り道してるとはいえかなり時間がかかった.というのも当初
全方位を2枚のテクスチャでカバー出来るDualParaboloid変換でやろうとしていたのだ.

詳しい人なら一発で気付くだろう.非線形変換だとForwardShadingでは上手くいくものの
DeferredShadingではG-Bufferから元の頂点位置を取得する手段が無いので正確に深度テクスチャを参照するのは無理,
ズレを無視しようものなら影がはみ出したり変形したりで実用にはほど遠く・・
で,どうしようかと考えた挙げ句に結局キューブマップに落ち着いた訳だがここで「単にキューブマップじゃ芸がないし,何より重いよな」
という事でVirtual Shadow Depth Cube Texturesに手を出してみた次第.

簡単に説明すると従来6つの面それぞれを1枚ずつサーフェス(キューブテクスチャの1面)に書き出していたのを
全部並べて通常のテクスチャ1枚に納める手法である.
これなら描画自体は6回だけど描画先をスイッチする回数が最初の1回で済むし
テクスチャに対してブラーをかけたい場合も一辺にできるよねという寸法.
どのくらい高速化が図れるかは比較する気力が無いので他の人や論文に譲るがまぁそんな感じだ.
画像はとりあえず一枚だけ.
あと何枚かShotGalleryに画像を置いておく.

面の継ぎ目が隣と混ざってしまう等,諸処の問題には全く対処してないが面倒なので次へ進む.
次はトップページに書いてある通りHSAO.物体のくぼみを暗くしてそれっぽく誤魔化すアレだ(続く)

(2012/03/19)

サムネイル自動生成

普段PHP書いてる人には常識かもしれないけどスクリーンショットライブラリにサムネイル自動生成機能を付けた.
逆に言えば前まで無かったから自前でツール使って用意するか,もしくはサムネイル無し(=元ファイルを縮小表示)しかなかった.
そんな面倒臭いの誰も使わないだろう.自分だって嫌だ.HTMLで画像をつらつら並べた方がマシだ.
という訳でPHPのGDライブラリを用いてサブフォルダへ縮小画像を保存するように改造した.
相変わらずアクセスの度にファイル列挙してるけど,これで少しは使えるようになったか?

ゲームの方は・・
DeferredShadingの実装過程で描画周りを大幅に改修してたら
仕様が錯綜してゲームどころじゃなくなってる.
D3Dデバイスなんて最初,マルチスレッド前提でちゃんとロックしてからアクセスだったのに
途中からロックしてたりしてなかったりで訳がわからん有様.
(それでも今の所マルチスレッドで動かす箇所が限定的だから動いてる)
そもそもマルチスレッドでリソース共有の必要性があるのか?Luaとかシングルスレッドだぞ?などと.

描画デモを録画したら作り直しの方向で.
次で5代目か・・まともにゲームが動くのは何代目になるやら

(2012/03/14)

サンプルページがまだだが

だけどアップした。
半ばヤケで書いたREADMEの英語が間違っていたりとか多分あると思うけどここいらで区切りをつけないとまたズルズル行ってしまうので・・
日本語のも置いてあるから結局何が言いたかったかは、少なくとも日本人には分かってもらえるはずだ。

URLを紹介しておこう。

https://github.com/degarashi


タイトルの通りまだ動作サンプル兼ここの過去のスクショを表示するページを構築できてない
(正確には画像のバックアップなど取って無かったのでwikiからダウンロードしている)
ちなみに今見るとそこいらで拾ったであろうドラえもんやらの仮画像が表示される。
コメント以外は移植した。

詳しくは左のメニューから飛んでもらうか http://www40.atpages.jp/~slice/scgallery/ をクリック

(2012/03/12)

進捗(web編)

web編ばかりで申し訳ないがゲーム(というか描画デモ)の方もちゃんと進めてるから安心して欲しい.
ちなみにDeferred Shadingに取り組んでいる.詳しくはググってください.

自作スクリーンショットギャラリが割と動く状態になったのでどうせならという事で
githubに公開しようと思い立った.まぁ,オープンソースは一種の憧れでもある.
それに伴いgitの練習とコメントの英文化が必須だろう.<= これが2~3日前

で,現在.
試しにリポジトリを作ったりしてgitの基本操作は大体分かったしコメントもえせ英語なら,これもなんとかなった(した).

ライセンス周辺は大したプログラムでもなし適当でいいかなと思ったが
やっぱり自分が大なり小なり労力を費やしたソースを他人が1行いじってそれを自分のだと主張されても悲しい物があるんで
ちゃんとした何かライセンスを付与する.
GPL, LGPL, MPL・・色々あるけどここはアイコン表示のわかりやすさを優先してCC(クリエイティブコモンズ)を選択.

後はファイルを綺麗に纏め,READMEを書く位か.しかし・・・一体何を書いたら良いやら.
ともあれ今日か明日中に公開できると思う.

(2012/03/09)

進捗(web編)

アコーディオン型メニューは微妙だと書いておいてさり気なく左側のメニューがそうなってるとか。
不定期日記の項目が長すぎるからどうにかしたかった。(jQueryのお陰でサクッと)
このwikiってhtmlタグを自由に入れられる仕様じゃないからあんまり凝ったページにはできなそうだ。
関係ないけどlinux版firefoxの動作が妙に重くてアニメーションがカクカクしている・・

で、スクリーンショットギャラリー。いい加減もう完成しただろうと思いきや、まだであった。
原因はいつもの「折角だからあれもこれも」である。
例えばこんなの
  • 画像は非同期に取得したい
   画像を全部読み込み終わるまで待たされるのは嫌
   (完)
  • サーバに画像置くだけでギャラリーに反映させたい
   更にフォルダでグループ別に分けたい
   (PHPでファイル列挙してるから負荷高そう。キャッシュしないと・・)
  • コメントをオーバレイさせたい
   コメントはテキストで記述?
   コメント無しも許容
   (画像切り替えたときの数秒間だけコメント出すのがまだ)
  • 等倍、拡大表示の切り替え
   単に自分が等倍表示好きなだけ
   (未完)
  • ローディングはそれを示すアニメーションを出したい
   いわゆる、くるくる表示
   (完。まあアニメgifだけだし)

ざっとこんなもんである。
ああ、沢山あるね手間だねで済めばまったく問題ない訳だが例によって勘違いが炸裂

非同期に画像を取得の所では、てっきりAjax使うのかと早合点して
なぜかわざわざ画像ファイルのバイナリをとってきてbase64に変換、img要素のsrcに流し込んでみたり
無駄な努力で半日つぶすとかよくある話。(実際はimg要素のsrcを書き換えるだけで良い)
他にも要素配置のブラウザ間差異などで苦しむ。

少し言い訳をさせてもらうと
今まで自分にとってコンピュータに何か処理をさせるというのは1から10まで手順を指定して始めて実現できる物だった。
アニメーションをさせたければ絵を毎数分用意して、ファイル名はこうで、フォーマットはこれ、何枚あって、タイミングはこうで、位置は・・といった風だ。
でもwebの世界では根本的に違う。おおよそやりたい機能は揃っていて、殆どブラウザがよきに計らってくれる。
ファイルパスを入力すれば画像が表示されるしアニメgifなら勝手にアニメーションもする。
さっきの「左側のメニュー」だってこちらがやる事といえば要素を出したり消したりだけで
配置換えは自動なんて、最初知ったときは「えええ?」でしたよ。
早い話がギャップを感じたという事。
「03)」をウィキ内検索
LINE
シェア
Tweet
添付ファイル
  • DOF1_0.jpg
  • DOF1_1.jpg
  • DOF1_2.jpg
  • DOF_0.jpg
  • DOF_1.jpg
  • DOF_2.jpg
  • d_shadow0.jpg
  • d_vshadow0.jpg
  • gray_0.jpg
  • gray_1.jpg
  • HSAO_0.jpg
  • HSAO_1.jpg
  • HSAO_2.jpg
  • HSAO_3.jpg
  • HSAO_4.jpg
  • HSAO_5_0.jpg
  • HSAO_5_1.jpg
  • ocean0.jpg
  • ocean1.jpg
  • radial_0.jpg
  • shotgallery0.jpg
FPSを作ってみる@wiki
記事メニュー
  • トップページ
  • 参考資料ブックマーク等
  • Tips

Media

  • 頂き物
Screen shot
  • FPS_page1
  • FPS_page2
  • FPS_page3
  • Other_page1
Drawing
  • Drawing(analog)
  • Drawing(digital)
  • Drawing(digital) 2
  • Drawing(digital) 3
  • Drawing(digital) 4
  • Drawing(digital) 5
  • Drawing(digital) 6
  • Drawing(digital) 7
  • Drawing(digital) 8
  • Drawing(digital) 9
  • Drawing(digital) 10
  • Drawing(digital) 11
  • Drawing(digital) 12
  • Drawing(digital) 13
Movie
  • movies-list

Old Contents

  • トップページ(old)
  • メモ書き
  • 力仕事UP場
  • ゲームシステムとか
  • バグ・動作報告
  • program(twilve)

Progress log

  • (2018/03)
  • (2017/04)
  • (2017/03)
  • (2016/10)
  • (2016/09)
  • (2016/08)
  • (2016/07)
  • (2016/06)
  • (2016/05)
  • (2016/04)
  • (2016/03)
  • (2016/02)
  • (2016/01)
  • (2015/12)
  • (2015/11)
  • (2015/10)
  • (2015/09)
  • (2015/08)
  • (2015/07)
  • (2015/06)
  • (2015/05)
  • (2015/04)
  • (2015/03)
  • (2015/02)
  • (2015/01)
  • (2014/12)
  • (2014/11)
  • (2014/10)
  • (2014/09)
  • (2014/08)
  • (2014/07)
  • (2014/06)
  • (2014/05)
  • (2014/04)
  • (2014/03)
  • (2014/02)
  • (2014/01)
  • (2013/12)
  • (2013/11)
  • (2013/10)
  • (2013/09)
  • (2013/08)
  • (2013/07)
  • (2013/06)
  • (2013/05)
  • (2013/04)
  • (2013/03)
  • (2013/02)
  • (2013/01)
  • (2012/12)
  • (2012/11)
  • (2012/10)
  • (2012/09)
  • (2012/08)
  • (2012/07)
  • (2012/06)
  • (2012/05)
  • (2012/04)
  • (2012/03)
  • (2012/02)
  • (2012/01)
  • (2011/12)
  • (2011/11)
  • (2011/10)
  • (2011/09)
  • (2011/08)
  • (2011/07)
  • (2011/06)
  • (2011/05)
  • (2011/04)
  • (2011/03)
  • (2011/02)
  • (2011/01)
  • (2010/12)
  • (2010/11)
  • (2010/10)
  • (2010/09)
  • (2010/08)
  • (2010/07)
  • (2010/06)
  • (2010/05)
  • (2010/04)
  • (2010/03)
  • (2010/02)
  • (2010/01)
  • (2009/12)
  • (2009/11)
  • (2009/10)
  • (2009/09)
  • (2009/08)
  • (2009/07)
  • (2009/06)
  • (2009/05)
  • (2009/04)
  • (2009/03)
  • (2009/02)
  • (2009/01)
  • (2008/12)
  • (2008/11)
  • (2008/10)
  • (2008/09)
  • (2008/08)
  • (2008/07)
  • (2008/06)
  • (2008/05)
  • (2008/04)



記事メニュー2

Update Log

取得中です。
人気記事ランキング
  1. Drawing_analog
もっと見る
最近更新されたページ
  • 2686日前

    menu_L
  • 2686日前

    進捗状況(2018/03)
  • 2686日前

    Drawing_digital_13
  • 2686日前

    Drawing_digital_12
  • 2686日前

    トップページ
  • 2892日前

    Drawing_digital_11
  • 2973日前

    Drawing_digital_10
  • 3005日前

    進捗状況(2017/04)
  • 3046日前

    進捗状況(2017/03)
  • 3097日前

    頂き物
もっと見る
人気記事ランキング
  1. Drawing_analog
もっと見る
最近更新されたページ
  • 2686日前

    menu_L
  • 2686日前

    進捗状況(2018/03)
  • 2686日前

    Drawing_digital_13
  • 2686日前

    Drawing_digital_12
  • 2686日前

    トップページ
  • 2892日前

    Drawing_digital_11
  • 2973日前

    Drawing_digital_10
  • 3005日前

    進捗状況(2017/04)
  • 3046日前

    進捗状況(2017/03)
  • 3097日前

    頂き物
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. MadTown GTA (Beta) まとめウィキ
  2. AviUtl2のWiki
  3. R.E.P.O. 日本語解説Wiki
  4. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  5. シュガードール情報まとめウィキ
  6. ソードランページ @ 非公式wiki
  7. ドラゴンボール Sparking! ZERO 攻略Wiki
  8. シミュグラ2Wiki(Simulation Of Grand2)GTARP
  9. 星飼いの詩@ ウィキ
  10. Dark War Survival攻略
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 初音ミク Wiki
  5. 検索してはいけない言葉 @ ウィキ
  6. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  7. 発車メロディーwiki
  8. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  9. オレカバトル アプリ版 @ ウィキ
  10. SDガンダム ジージェネレーションジェネシス 攻略Wiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 過去の行動&発言まとめ - 鹿乃つの氏 周辺注意喚起@ウィキ
  2. マイティーストライクフリーダムガンダム - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  3. 魚拓まとめ - 鹿乃つの氏 周辺注意喚起@ウィキ
  4. 参加者一覧 - ストグラ まとめ @ウィキ
  5. 1103環境(遊戯王) - アニヲタWiki(仮)
  6. 前作からの変更点 - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  7. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  8. コレクター・ユイ - アニヲタWiki(仮)
  9. サーヴァント/一覧/クラス別 - Fate/Grand Order @wiki 【FGO】
  10. 画像倉庫 - 鹿乃つの氏 周辺注意喚起@ウィキ
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.