2010年9月17日金曜日

老後も安心! 認知症にならないための眠り方

睡眠の状態が悪いと、認知症になりやすいことも分かってきました。習慣的に1時間以上の昼寝をしていた人は、そうでない人に比べて認知症になる確率が2倍になります。一方、毎日30分以内の昼寝をとっていると、認知症になる人を5分の1に減らすことができます。

 認知症にならないため、高齢者に勧められている生活習慣や睡眠環境を以下にご紹介します。

・睡眠環境を整える
 暗くて静かな部屋で眠りましょう。真っ暗が不安なら、豆電球のフットライトを点けておきます。眠りやすい寝室の温度は16~26℃、湿度は50~60%です。エアコンなどを上手に使って、温度と湿度を調整してください。

・十分に日の光に当たる
 光は覚醒度を上げる大切な要因です。日中、明るいところで過ごすと、覚醒と睡眠のリズムにメリハリがついて、夜にはグッスリと眠れます。

・定時の就床と起床を心がける
 特に、目覚める時刻を一定にすると、体内時計がきちんと働いてくれます。目覚めて明るい光を見た時刻から14~16時間たつと、睡眠ホルモン・メラトニンが分泌されて、自然に眠たくなってきます。

・上手に昼寝する
 午後3時までに30分以内の昼寝なら、認知症の予防にもなります。それ以降の長い時間の昼寝は、夜の睡眠の質を悪くするので止めておきましょう。ベッドや寝床は、睡眠のためだけに使いましょう。

・定時の食事や運動を心がける
 睡眠の目的の1つが、心身の疲労回復です。活動量が少なければ、あまり眠らなくても良いというわけです。日中にしっかり身体と頭を使っておけば、夜には疲れて眠くなってきます。

・夕方以降に水分を摂り過ぎない
 熱中症や脱水症の予防のため、必要な水分をとることはとても大切です。しかし、夜中に3回以上もトイレのために目覚めるときには、眠る前の水分量を見直してみてください。

・過眠や不眠の原因となる薬剤に注意
 夕食後はカフェインやニコチンを摂らないようにしましょう。降圧薬や副腎皮質ステロイド、パーキンソン病治療薬、抗うつ薬などの中には睡眠障害を起こすものもあります。薬が原因と考えられる場合には、主治医と相談してみてください。

・痛みや痒みに十分対処する
 ストレスよりも身体の症状のほうが、不眠の原因になりやすいことが分かっています。高齢者に多い関節や首・腰の痛み、身体の痒みは、しっかり治療しておきましょう。

・アリセプトの午後以降の服薬を避ける
 アルツハイマー型認知症を発症したら、治療薬である「アリセプト」はなるべく朝に服用しましょう。この薬は脳を活性化する作用があるので、午後以降に飲むと夜に眠られなくなることがあります。

カメラ用立体視アダプター

http://ascii.jp/elem/000/000/546/54ソファの背もたれの上であくびしたうちの「かふか」をステレオ撮影。室内なので顔がぶれちゃってるけど、気にしません。平行法立体視でどうぞ(2010年8月 パナソニック GH1)6509/

クラウドベースレイトレーシング

http://www.4gamer.net/games/049/G004963/20100913074/


MTFramework

1.x DX10.0
モーションブラー

被写界深度
LP2
無し有り

ジオメトリシェーダでの点光源ぼかし

並列処理
データ処理のうち並列実行できるものについては並列実行させ(並列更新),それを取りまとめる(同期更新)流れで処理を進めていく仕組みを設計


オクタコアでの検証

マルチGPU環境
動的な環境マップが利用される状況において,同一用途にもかかわらず,便宜上,そのシーンで使う動的環境マップ生成をそれぞれのGPUが(それぞれのカード上にある)グラフィックスメモリ内で行う工夫がなされている(図2)。一見すると冗長だが,マルチGPUで動作させるには有効な工夫なのだ。そうした最適化の甲斐あって,SLI時のパフォーマンス向上率はかなりよいものになっているという。

影生成はカスケード・ライトスペースシャドウマップ技法を採用

LP2


MTF2.0について
次期タイトルではDeferred Lighting技術で卓越したオープンフィールド表現に挑戦
事前計算した情報で疑似的なGI(大局照明)をやるしかなかったわけですが、今度は動的光源しか使わないライティングでオープンフィールド表現に挑戦してみようと思っているんです。そのためにDeferred Lightingのレンダリングパイプラインの実装を行なっています

DLでは、深度値(Z)、法線ベクトル、ハイライト強度だけをMRT出力しG-Bufferを生成し、
次のパスではそれらの情報を元に基本的なライティングだけを行ない、中間バッファへ出力する。
そして、もう一回、レンダリングパスを動かしてその中間バッファの内容……すなわちライティング結果を用いて、ピクセルシェーダーでシェーディングを行なって最終的なレンダリング結果とする。



CryEngine3

機能一覧
http://www.4gamer.net/games/032/G003263/20090330021/

リアルタイム動的グローバルイルミネーション(Real-time Dynamic Illumination)
ディファード・ライティング(Deferred Lighting)
動的なソフト影生成(Dynamic Soft Shadows)
ボリューム表現と空気遠近(Volumetric Layer & View Distance Fogging)
法線マッピング、視差遮蔽マッピング(Normal Maps & Parallax Occlusion Maps)
スクリーンスペース・アンビエント・オクルージョン
統合された植物生成エンジン
HDRレンダリング
屋外から屋内へ、屋内から屋外へと輝度レベルが全く異なる環境間の往来を行なった時には、そのシーンの輝度レベルに自動的に合わせた階調補正(トーンマッピング)が行なわれる。
モーションブラーと被写界深度
画面全体の動きにブラーを掛けるカメラ・モーション・ブラー(CMB、Screen Based Motion Blur)と、3Dオブジェクトごとの個別なアクションにモーションブラーを付加するオブジェクト・モーション・ブラー(OMB)の両方がサポートされる
動的な日照システム
高品位な水の表現
大海の海原の波はJerry Tessendorf氏のアルゴリズムによる波動シミュレーションを実装

岸辺と泡沫の処理

左が岸辺境界処理と泡沫なし。右が岸辺境界処理と泡沫あり
 水面と陸地の境界線が強く出てしまうのもCGっぽい見た目の原因となっている。

 これを低減するために「CE2」では、水面と岸辺の境界が近くなればなるほど水面の透明度を上げるようにブレンドしている。これは丁度、パーティクルとシーンの交差線を見えにくくするソフトパーティクル処理と原理はまったく同じだ。

 水の上に浮かぶ泡……「泡沫(うたかた)」については2レイヤーのアニメーションの泡テクスチャを水面のさざ波法線マップで摂動させつつ、岸辺境界から水深の深い方向に向かって柔らかく合成していっているだけ。それでも、十分満足のいく結果になったとしている。

「色収差」現象を擬似的にシミュレートしている。

水面に映り込む鏡像には垂直ブラーを施す工夫がなされ、水面下の屈折した情景とはフレネル反射を考慮して合成される。ここまでは比較的よく見られる水面表現だが、
CE3では、水面下の情景のRGBピクセルをずらして見せる疑似的な色収差表現や、
水面の凹凸がレンズ効果となって集光現象を起こして水底に網目模様のようなきらめきを映す「火線」(CAUSTICS)など、徹底したリアルな水底表現を行なっている点がユニークだ
ジオメトリレベルの波の生成
「CE2」の水面表現は「ジオメトリレベルで立体的でリアルあること」をコンセプトとして開発されている。競合の「UE3」も同様の方針を取っているので、これは今後のトレンドとなる可能性が高い。
波動シミュレーションの結果はCPUで計算され64×64グリッドに適用され、
これが64×64テクセルのFP32-128ビット (R32G32B32A32F) テクスチャに転送される。
このFPテクスチャをVTF (Vertex Texture Fetching) を用いてジオメトリレベルの立体的な水面の凹凸へと変換する。
なお、64×64のグリッドは全水面に反復使用されることになり、
反復性がユーザーに露呈する可能性があるが、これを低減する意味合いもあって、
4レイヤーの周波数の違う動的な法線マップアニメーションをこのジオメトリレベルの凹凸の水面に合成している。
「CRYSIS」の水面における反射と屈折
反射マップには異方性垂直ブラーを仕掛けている
の反射マップをレンダリングするタイミングは数フレームに1回という制限を設けることで負荷低減を行なっている
視線が動かないときも反射マップの更新をさぼっている
ユニークな試みとしてこの反射マップには垂直方向のブラー (ぶれ) を仕掛けているという。それも始点から遠いほどブラー量が少なく、近い位置ほどブラー量を多くするという異方性のブラーを適用している。これは映り込みがキッチリしすぎるCG水面のわざとらしさを低減するとともに、低解像度反射マップのジャギー (エイリアシング) を低減する副次的効果もある。

・屈折
「GPU Gems2」の「Generic Refraction Simulation」に記載されている技法をほぼそのまま適用している。
プロシージャル生成された集光効果「火線」

これまでの多くの3Dゲームグラフィックスでは、こうした火線効果はあらかじめ用意したそれっぽく描いた適当なパターンテクスチャを投射するだけであったが、「CE2」では、火線シェーダーを実装してリアルタイム合成している。Sousa氏は「火線のプロシージャル生成」という言葉を使ったが、解説を聞く限りでは「GPU Gems1」に記載されている「Rendering Water Caustics Juan Guardado (NVIDIA) and Daniel Sanchez-Crespo (Universitat Pompeu Fabra / Novarama Technology)」を参考に実装したものと推察される。

 これは水底下の情景の各ピクセルにおいて、このピクセルの法線方向にレイを飛ばし水面のポリゴンと交差して、水面上へどういう角度でこのレイが飛び出すかを計算し、これが太陽方向に向いていれば向いているほど明るい……という陰影処理を行なって求める技法だ。

http://maverickproj.web.fc2.com/pg96.html

水面を真横から見た波の断面

青い矢印が水面の法線ベクトルです。で黄色いところがコースティックにより明るくなります。 輝度を計算する方法は単純で、法線ベクトルと[0.0f, 0.0f, 1.0f]のベクトルとの内積を計算するだけです。その後白黒反転するので、結果的に図の部分が明るくなります。 物理学的にはまったく正しくない、擬似的な方法ですが、結構それっぽく見えると思います


リアルタイム光筋表現(Dynamic Volumetric Light Beams & Light Shaft Effects)
深度値を見て遮蔽マスクを生成して、これを太陽光の位置から放射状にブラーさせる。あとはこのマスクで、同様に引き伸ばし拡大した太陽光を覆えば完成
深度バッファを調査して太陽を遮蔽しているマスクを生成し、これを画面上の太陽位置から放射状にブラーを掛ける。さらに同じ方向に太陽もブラーして拡大し、これを前出のマスクと合成すればできあがりだ。概念的には、逆光の太陽を遮っている遮蔽物の影の広がりが、太陽光を遮蔽する……というイメージだ。この光筋表現は地上の逆光時にだけでなく、水面下で水上を見上げたときにも適用される。


■ 水面下の表現~水中に降り注ぐ光筋の表現

 基本的には火線シェーダーと同じアルゴリズムのものを動かしているという。

 生成した火線を、視点 (カメラ) の前に戸板のように並べた無数のレンダーターゲットに投射していく。レンダーターゲットは画面解像度の1/4の低解像度のものを使用している。

 イメージ的には火線を投射して作り出した無数のどでかい光筋スプライトをカメラから奥行き方向に向かって重ね描きしていくようなイメージのようだ。超大ざっぱなボリュームレンダリングのようなイメージだろうか。

 なお、水面下の奥行き方向の霞んで見える様はZバッファの内容 (深度値) をキーにして濁らせる擬似的な光散乱フォグで表現している。

水面下に降り注ぐ光筋の表現。後述の逆光の光筋とは別の実装法左が光散乱による霞み表現、中央が火線表現を付加したフレーム、右がさらに光筋を付加したフレーム。この図ではわざとわかりやすいように光筋は色濃く示しているが、ゲーム中では実際はもっと薄い



CryEngine3考察
読んでて疑問符が浮かんだ某所のは間違いだらけじゃないか。今に始まった事じゃないけど。ついでに、このblogも正確性なんてものはあてにしないで下さい。

Deferred LightingはForward Shadingと、Deferred Shadingの合いの子みたいな感じで以下のようなパス。
  1. Deferred Shadingと同じようにライティングはしないでG-Bufferをレンダリングする。ただし基本的には、Z値と法線とスペキュラパワーのみ。
  2. 1で描き出したバッファを元にライティングのみを行う。一般的なのはDiffuseとSpecularのみで、各成分を分けて描き出すかはその後の用途次第か。今回の資料ではIBLと同じだとは言ってるが、確かに似たような感じだがDeferred Shadingにも同じことが言えるので言いすぎな様な気もする。ともかくDeferred Shadingと同じような恩恵は受けれる。
  3. Forward Shadingと2のバッファを使って描き出す。深度テストもシェーダでやるなら1も必要か。Deferred Shadingとはここが違う箇所。Deferred Shadingでは使うが1で描き出してないバッファは不要になるし、Deferredであんまりやりたくないようなこと(多分専用のシェーディングとか?)はここで出来るし、半透明も完全別扱いのような扱いはうけなさそう

3でもう一回描画することで、水の表現が可能になっていると思う