θ - 公立はこだて未来大学

公立はこだて未来大学 2008 年度 システム情報科学実習 Ⅱ
グループ報告書
Future University - Hakodate 2008 System Information Science Practice Ⅱ
Group Report
プロジェクト名
ソラリス・プロジェクトⅡ
Project Name
Solaris Project Ⅱ
プロジェクト番号/Project No.
8-B
プロジェクトリーダー/Project Leader
学籍番号/Student ID : 1006014 氏名/Name:田辺孔明
グループリーダー/Group Leader
学籍番号/Student ID : 1006143 氏名/Name:猪股弘貴
グループメンバー/Group member
学籍番号/Student ID : 1006014 氏名/Name:田辺孔明
学籍番号/Student ID : 1006135 氏名/Name:前小屋弘樹
学籍番号/Student ID : 1006183 氏名/Name:掛端俊希
指導教員
齋藤郁夫 ホセ・ナチェル 松山克胤
Advisor
Ikuo Saito Jose Nacher Katsutsugu Matsuyama
提出日/Date of Submission
2009 年 1 月 22 日/January. 22, 2009
Group Report of 2008 SISP
Group Number 8-B
概要
プロジェクト名である「ソラリス」とは、タルコフスキーによって制作された映画「惑星ソラリス」
に由来する。本プロジェクトでは、その映画の中で描画された美しい自然に魅了され、コンピュータ・
グラフィックスを用いて表現した。冬グループではコンセプトとして「雪が舞い、光るという美しい
現象の表現」と立てた。それに従い、目標として降雪を題材にして、建物の影響を受ける雪、ダイヤ
モンドダスト、積雪を実装することに決めた。これらの目標を達成するために、物理モデルのメカニ
ズムを理解し、それをプログラミングで実装することが必要となった。
最終発表までのプロジェクトの進行方法については、前期の試作を基盤として、最終的に表現する
建物の影響を受ける雪、ダイヤモンドダスト、積雪、また背景として山に関する文献を探索し、それ
ぞれの物理モデルのメカニズムを理解し、プログラムを制作した。
結果として、建物の影響を受ける雪、ダイヤモンドダストは実装できたが、積雪、山は実装できな
かった。原因としては、物理モデルを理解することができないこと、スケジュール的に時間が足りな
いことが挙げられた。だが、中には実装はできなかったが文献を探索して理解することができた物理
モデルがあった。
Group Report of 2008 SISP
Group Number 8-B
Abstract
Solaris which is our project name is derived from SOLARIS which is the movie which was
made by Tarkovsky. In our project, we express the snowfall as the theme of winter because
we were attracted to the beautiful nature which was drawn in the movie. We express local
wind and fallen snow and diamond dust as our final goal. We need to understand the
mechanism of their physics model and implement them with programing to express their
snowfall.
About the progressing method of the project until the final announcing, as basing the
manufacture of the first term, we searched literatures of influence in the trajectory of
snow particles when falling near an obstacle like a tall building and Diamond dust,
snowfall, mountains for background for the final announcing. And we understood and
implemented their mechanism of physics model.
As a result, we could implement influence in the trajectory of snow particles when falling
near an obstacle like a tall building and Diamond dust. However we could not implement
snowfall, mountains for background for the final announcing. As course, we could not
their
mechanism of physics model and did not have time for the schedule. We could not implement
some of them, but could understand them to search literatures.
(文責:掛端)
Group Report of 2008 SISP
Group Number 8-B
目次
第1章 序文
1.1 背景
1.2 目的
1.3 コンセプト
1.4 最終目標
1.5 後期目標
1.6 作業内容
1.7 作業の進行
第2章 前期の試作
2.1 試作の目的
2.2 降雪の表現
2.3 風の影響
第3章 後期の活動
3.1 建物の周りで起こる風
3.1.1 剥離流
3.1.2 吹き降ろし
3.2 建物の影響を受ける雪
3.2.1 オイレリアンとラグランジアン
3.2.2 格子法
3.3 粒子法
3.3.1 粒子法
3.3.2 粒子法の考え方
3.3.3 空気の表現
3.3.4 雪の表現
3.3.5 建物の表現
3.3.6 計算手順
Group Report of 2008 SISP
Group Number 8-B
3.4 ダイヤモンドダストと太陽柱の表現
3.4.1 ダイヤモンドダストについて
3.4.2 太陽柱について
3.4.3 レイリー散乱について
3.4.4 ミー散乱について
3.4.5 散乱係数について
3.4.6 分光法について
3.4.7 分子数密度について
3.4.8 実装
3.4.9 結果
3.5 フラクタル地形
3.5.1 目標
3.5.2 表現手法
3.5.3 中点変位アルゴリズム(線分)
3.5.4 中点変位アルゴリズム(短形)
3.5.5 プログラミング手順
3.5.6 基準点計算
3.5.7 ダイヤモンドステップ
3.5.8 スクエアステップ
3.5.9 乱数の計算
3.5.10 各ステップの計算回数
3.5.11 出力結果
3.6 背景
3.6.1 背景の定義
3.6.2 建物
3.6.3 地面
3.6.4 フォグ
Group Report of 2008 SISP
Group Number 8-B
第4章 プログラムの仕様書
4.1 カメラ移動
4.2 風の操作
4.2.1 キーボード操作
4.2.2 マウス操作
4.3 ダイヤモンドダストの操作
4.4 空間分割の目印
第5章 中間発表
5.1 発表内容
5.1.1 内容
5.1.2 形式
5.2 評価アンケートの集計
5.2.1 発表技術
5.2.2 発表内容
5.2.3 反省点と改善案
第6章 最終発表
6.1 発表内容
6.1.1 内容
6.1.2 形式
6.2 評価アンケートの集計
6.2.1 発表技術
6.2.2 発表内容
6.2.3 反省点と改善案
6.3 中間発表と最終発表の比較
Group Report of 2008 SISP
Group Number 8-B
第7章 今後の課題と結果
7.1 後期の問題点
7.2 問題解決に向けての改善案
7.3 後期活動日程
7.4 後期活動詳細
7.4.1 文献の探索
7.4.2 文献の解読
7.4.3 実装
7.4.4 結果
付録 CG の概要
1 CG について
2 C++について
3 DirectGraphics について
参考文献
Group Report of 2008 SISP
Group Number 8-B
Solaris Project Ⅱ
第1章 序文
1.1 背景
「惑星ソラリス」という映画があるが、これは1972年に公開されたタルコフスキー監督の映画
である。この映画の中ではいくつかの美しい自然が映し出されており、私たちはその美しい自然の光
景に魅了された。私たちはどうにかしてこれらの美しい自然を技術を用いて作り出せないかというこ
とを考えた。そして、私たちはプロジェクトの活動内容としてCGを用いることにより自然現象を再
現しようと決めたのである。
そこで、私たちは再現したい自然現象について全員でKJ法を行うにより案を出し合い、出てきた
案をそれぞれ同じ要素を持っている自然現象に種類分けを行った。それにより、夏に発生する自然現
象と冬に発生する自然現象という2つの大きな種類に分けることができ、それに従い、プロジェクト
を2つのグループに分けることに決めた。プロジェクトのメンバーは、夏に発生する自然現象と冬に
発生する自然現象のどちらの自然現象を再現したいかということをそれぞれで考え、話し合った上で、
2つのグループにそれぞれ分かれて所属した。
私たち冬グループでは冬に発生する自然現象をCGを用いることにより表現するということをテー
マとし、冬に発生する自然現象として、降雪を表現することにした。
1.2 目的
私たちは、プロジェクトの活動を進めるにあたり、まず本プロジェクトを行う目的について考えた。
その結果決定した目的は、成果物の作成の作業を行う事により、CG技術や自然現象の知識を学び、
リアルタイムCG技術を習得していくことである。
そして、最終的には実際に発生する降雪の風景のような雪景色を、公立はこだて未来大学をモデル
にした建物の設置によって風を表現し、時間の経過により雪が積もるという手法を用いることにより
自然現象により近く現実感のある風景を実現させることを目的にした。
1.3 コンセプト
1.2の目的に従い、私たちは冬グループで以下のコンセプトを立てました。
・冬の魅力的な風景である降雪が風によって舞う現象の表現
・太陽の光を浴びて、降雪が光るという現象の表現
という2つの現象を表現することをコンセプトにかかげ、プロジェクト学習の作業を行ってきました。
Group Report of 2008 SISP
1
Group Number 8-B
Solaris Project Ⅱ
1.4 最終目標
冬グループでは、「建物の影響を受ける雪」「ダイヤモンドダスト」「積雪」などの降雪を題材とし
て、それぞれの物理モデルのメカニズムを理解し実装することにした。また、正確な物理モデルを使
用するのではなく、私たちが実際に操作することにより動かすことのできる現実感のあるリアルタイ
ムCGを実装することを目標にした。
1.5 後期目標
後期では、降雪を表現するための基盤となる「雪粒子が垂直かつ等速に落下する雪」「雪粒子全体
に一方向の風を与えることによる降雪」などの前期に試作した降雪をさらに自然で美しく見せるため
に「建物の影響を受ける雪」「ダイヤモンドダスト」「積雪」などの具体的な現象を再現することに
より、自然な雪の風景を表現することを目標にした。
1.6 作業内容
後期目標を達成するために、前期に引き続き、
・各種文献の探索
・物理方程式の解析、解読
・仕様書の作成
・解読した物理式を用いてのリアルタイムCGプログラミング
と、大きく分けて4つの作業を行った。
1.7 作業の進行
作業の進行方法としては、
・プログラミングに必要な文献・コードの解読へ一人一人担当者を割り当て、それぞれが担当箇所
の仕様書を作成する。
・その後、完成した仕様書を元に、手のあいているメンバーがCGプログラミングをする
という形をとった。
また、作業の進度をパーセントで示し、進行状況を確認していく試みも行った。
(文責:田辺)
Group Report of 2008 SISP
2
Group Number 8-B
Solaris Project Ⅱ
第2章 前期の試作
2.1 試作の目的
前期では最終目標である「建物の影響を受ける雪」「ダイヤモンドダスト」「積雪」を実装するため
の基盤として、垂直かつ等速な降雪と、そして単純なモデルとして雪粒子全体に一方向の風の影響を
与えることを実装した。初めから最終目標のような難しいことを実装するのではなく、前期では単純
なモデルの試作を実装した。
2.2 降雪の表現
自然の雪粒子は地上近くでは等速に落下する。それは、物体が大気中を運動する場合は空気抵抗力
を受け、物体に働く重力と釣り合うので等速になるからである。この速さを終端速度という。雪粒子
は終端速度に達しているので、雪粒子の位置は以下の式で計算される。
雪粒子の現在の位置 = 雪粒子の前の位置 + 速度 × 時間
雪粒子の前の位置
速度 × 時間
雪粒子の現在の位置
また風の影響は考慮せず垂直に落下させるので、雪粒子の移動ベクトルには三次元空間で y 成分に
のみ与える。
Group Report of 2008 SISP
3
Group Number 8-B
Solaris Project Ⅱ
2.3 風の影響
中間発表での試作プログラムでは、一方向の風は風ベクトルとし、方向・大きさを指定できるよう
にする。風ベクトルの方向は一方向なので、降雪は直線的な動きになる。実際の移動ベクトルを求め
るためには移動ベクトルに風ベクトルを加える。
実際の移動ベクトル
雪粒子の移動ベクトル
風ベクトル
一方向の風を与える計算式は 2.1 の雪粒子の現在の位置を求める計算式により
雪粒子の現在の位置 = 雪粒子の前の位置 + 速度 × 時間 + 風ベクトル
となる。
(文責:掛端)
Group Report of 2008 SISP
4
Group Number 8-B
Solaris Project Ⅱ
第3章 後期の活動
3.1 建物の周りで起こる風
最終発表でのプログラムでは前期の試作を基盤として、建物の影響を受ける雪を表現する。その建
物の影響として、建物の周りで起こる風を表現する。状況として、建物をはこだて未来大学とし、そ
の周りで起こる剥離流と吹き降ろしの2つの風の流れを表現する。
3.1.1 剥離流
剥離流は、風が建物に当たり壁面にそって流れ、建物の隅角部のところまで来て、それ以上壁面に
沿って流れることができなくなり、建物から剥がれて流れ去っていく風の流れである。この建物隅角
部から剥がれた風はその周囲の風よりも速い流速を持つ。
3.1.2 吹き降ろし
吹き降ろしは、風が建物に当たり、建物の高さの 60%から 70%付近で上下、左右に分かれ、左右に分
かれた風が、建物の背後に生じた低い圧力領域に吸い込まれて、建物の側面を上方から下方に向かう
速い風の流れである。
建物の周りで起こる風の流れ
Group Report of 2008 SISP
5
Group Number 8-B
Solaris Project Ⅱ
3.2 建物の影響を受ける雪
3.2.1 オイレリアンとラグランジアン
建物の周りで起こる風は格子法により実装する。数値流体力学において、流体を計算する手法は大
きく分けて 2 つあり、1 つは計算点の位置が固定されているオイレリアンの計算法で、もう 1 つは計算
点が移動するラグランジアンの計算法である。格子法はオイレリアンの計算法に代表され、これは空
間を格子状に分割し、その格子ごとに計算を行うことで流れを表現する。
3.2.2 格子法
格子法はオイレリアンの計算法に代表され、これは空間を格子状に分割し、その格子ごとに計算を
行うことで流れを表現する。
プログラムでは空間を横 20, 縦 20, 高さ 10 で等間隔に配置し格子ごとに異なる風ベクトルを与えた。
剥離流を表現するために建物から離れた位置では建物から離れていく風ベクトルを与える。吹き降ろ
しを表現するために建物の付近に徐々に建物に近づく風ベクトルを与える。ただし、それぞれに与え
た風ベクトルは物理モデルからではなく、自然な風の流れになるように大きさをこちらで設定してい
る。
格子法による風ベクトルの向き
Group Report of 2008 SISP
6
Group Number 8-B
Solaris Project Ⅱ
3.3 粒子法
3.3.1 粒子法
粒子法はラグランジアンの計算法に代表され、流体を粒子の集合として考え、その粒子の運動を計
算することで流れを表現する。格子法では処理の準備段階として流体が存在する空間を格子状に分割
しておく必要があり、空間が複雑だと非常に複雑な作業となる。また、状況変化によって空間が変形
した場合それに応じて格子を変化させる必要も生じる。このような性質は様々な状況変化が想定され
るリアルタイム 3DCG においてデメリットになる。それに対し粒子法は空間の格子分割が必要ないといっ
た特徴を持つため、先のデメリットは解消される。しかし、計算コストが高く、計算を簡略化する必
要がある。
3.3.2 粒子法の考え方
粒子法では流体を粒子の集合で表す。たとえば流体を 100 個の粒子で表したら、その粒子 1 つ 1 つは
それぞれ 100 分の 1 の流体である。流体を空間を移動するものを流体粒子、地面や障害物など空間内で
固体となっているものを剛体粒子の 2 つに区別し、
手順 1 流体粒子と剛体粒子を区別せず、同じ流体として扱い計算を行う
手順 2 手順 1 で崩れてしまった剛体粒子の位置関係を修正する
という 2 段階の操作でシュミレートを行う。これは、流体粒子も剛体粒子もほぼ扱えることを意味す
る。
3.3.3 空気の表現
空気等の流体は主な性質として粘性と圧縮性を持つ。粘性とは流体に働く摩擦力によって流体の運
動をできるだけ均一にしようとする性質である。圧縮性とは流体の密度が変化する性質である。ただ
し、風程度の力の場合、空気の粘性、圧縮性は非常に小さく無視してよい。一般的に非圧縮性の計算
をする場合まず圧力を求め、そこから粒子間の斥力を求める。しかしこの計算は時間がかかるためリ
アルタイム処理には向かない。なので空間の広さをあらかじめ制限し粒子間に単純な斥力を働かせる
ことで非圧縮性を表現し、高速化を図る。
粒子間相互作用の計算には重み関数 w1 r  を使い距離に応じた斥力を与える。また遠方まで影響
が及ばないように工夫することで粒子間相互作用を計算する回数を減らし、高速化を図る。
Group Report of 2008 SISP
7
Group Number 8-B
Solaris Project Ⅱ
if r ≤ r e  {
r e − r  / 1
}
else r  r e  {
0
}
ここで r は 2 つの粒子間の距離であり、粒子間相互作用の及ぶ範囲を半径 r e 以内に制限するこ
とを表している。そして、この重み関数を使い次のような粒子間相互作用を与える。
F = −a ∗ r i − r j  ∗ w1∣r j − r i∣
F は近傍の各粒子
a  0
j から粒子 i に作用する力、 r は粒子の位置ベクトルであり、 a は
力の大きさを調節する定数である。粒子
j から粒子 i にかかる力のベクトルの向きが必ず粒子
j から粒子 i の方向になるので、粒子間には斥力が働くことになる。また、重み関数では r が
0 に近づくにつれて重み関数が無限に大きくなるように工夫している。これにより空気粒子間に働
く斥力は近づくと急激に増大するので、一定距離以下に近づきにくくなる。結果、粒子分布にむらを
生じにくくする。
粒子間に働く斥力の表現
Group Report of 2008 SISP
8
Group Number 8-B
Solaris Project Ⅱ
3.3.4 雪の表現
雪粒子は個体差のないものとし、空気抵抗と重力の影響のみを考える。空気抵抗を求めるためには、
雪粒子の座標における空気の速度を求める必要があるが、ここでは空気粒子の分布が一様になってい
るものと仮定し、雪粒子と空気粒子の相互作用として計算するものとする。具体的には、雪粒子と近
傍の空気粒子との距離と相対速度から空気抵抗を求める。まず、雪粒子と空気粒子の相互作用につい
て、
if r ≤ r e  {
r e − r  / 1
}
else r  r e  {
0
}
のような重み関数 w2 r  を使用し粒子間距離に応じた影響力を考える。雪粒子は空気粒子と交差す
る場合もあるので、 r が 0 のとき最大値 1 となるものを用いている。空気抵抗は雪粒子 i と
空気粒子
j との相対速度に比例するものとし、
F = −b ∗ u i − u j  ∗ w2∣r j − r i∣
とした。ここで b は抵抗係数、
b  0
u は粒子の速度ベクトルである。
3.3.5 建物の表現
建物などの構造物は位置を固定した空気粒子を並べることで表現する。これらの粒子では速度は
0 として計算する。また、動物の場合は速度・位置を制御できる空気粒子で表現する。雪粒子との
当たり判定はこれら空気粒子との距離が一定以下になった場合に行うものとし、雪粒子と空気粒子の
相互作用の計算に組み込む。
Group Report of 2008 SISP
9
Group Number 8-B
Solaris Project Ⅱ
3.3.6 計算手順
1. 初期設定
2. 空気粒子の速度・座標更新
3. 空気粒子間相互作用計算
4. 雪・空気粒子間相互作用計算
5. 2 から 3 を繰り替えす
(文責:掛端)
Group Report of 2008 SISP
10
Group Number 8-B
Solaris Project Ⅱ
3.4 ダイヤモンドダストと太陽柱の表現
3.4.1 ダイヤモンドダストについて
ダイヤモンドダストは大気中の水蒸気が冷やされて結晶化した物が降り注ぎそこに太陽などの光が
散乱して輝いて見えるもである。そして、よく晴れた朝などの気温が氷点下 10℃以下のときに発生す
る。また、空から結晶を落とし人工の光を用いることにより人工的にダイヤモンドダストを作ること
ができる。
ダイヤモンドダストによく似た現象に氷霧があり、両者の違いは結晶が大気中を浮遊するか降るか
の違いだけである。また、天気の種類として氷霧は霧に含まれるがダイヤモンドダストは雪に含まれ
る。
ダイヤモンドダストは上記のように雪の結晶に太陽の光が散乱して見えるものであり、この散乱は
レイリー散乱やミー散乱によるものである。
3.4.2 太陽柱について
太陽柱とは日出または日没時に太陽から地平線に対して垂直な方向へ焔のような形の光芒が見られ
る大気光象のことであり、サンピラーとも呼ばれている。
風の弱い時に雲の中の六角板状の結晶が落下の際の空気抵抗のため地面に対してほぼ水平に浮かぶ。
このほぼ水平に浮かんだ板状の結晶の表面で太陽からの光が反射され、太陽の虚像として見えるのが
太陽柱のことである。また、太陽の高度が高い場合は反射をおこ結晶を含む雲が地平線よりも下にな
ければこの反射光を見る事ができない。このような条件は飛行機や高山などに限られるため太陽中を
見られるのは通常日出または日没時のみである。
太陽以外に月でも同様の現象が起こり、これは月柱と呼ばれる。また、遠くの地上の街灯などが同
様の現象を起こすこともあり光柱と呼ばれるものもある。
太陽柱は雲の中にある結晶だけでなくダイヤモンドダストによっても見ることができ、このことか
ら寒い地方で寒い時期のみに見られるという誤解もある。
3.4.3 レイリー散乱について
レイリー散乱とは光の波長よりも小さいサイズの粒子による光の散乱であり、透明な液体や固体中
でも起きることがあるが、典型的な現象は気体中の散乱である。そして、太陽光が大気で散乱されて
空が青く見えるのがレイリー散乱である。
散乱の量は粒子の大きさと光の波長によって変化する。また、散乱係数は波長の 4 乗に反比例する。
そして、レイリー散乱の散乱係数を k s としてレイリー散乱の散乱係数を求める式は以下のようにな
る。
Group Report of 2008 SISP
11
Group Number 8-B
Solaris Project Ⅱ
2π 6 m 2−1 2 d 5
k s=
n 2
 4
3
m 2 λ
ここで
(1.1)
n は粒子数、
d は粒子径、
m は反射係数、
λ は波長である。
この式 1.1 から波長の短い青は赤よりも多く散乱することになることがわかる。夕焼けや朝焼けは
太陽と観測者の間に存在する大気の距離が日中と比べて長くなることにより、散乱を受けにくい赤色
が届くことによって見ることができる。一方で、日中には波長が短い青が観測者の方に散乱されるこ
とによって空全体が青く見えるようになっている。
光の波長と同程度以上のサイズの粒子(散乱体)による光散乱は粒子を球体と仮定した場合にミー
散乱理論で扱われる。また、光学計測にも用いられ、特徴としては信号強度が分子数密度に比例し、
分光法よりも高強度である。
散乱係数の波長と散乱粒子の大きさに関わるパラメータとしてサイズパラメータを表す以下の式が
ある。
α=
ここで
πD
λ
(1.2)
D は粒子直径、
λ は波長である。
この式 1.2 により求められる α の値の大きさによってレイリー散乱、ミー散乱などに分けることが
できる。α<0.4μm がレイリー散乱の領域で、0.4μm<α<3μm がミー散乱の領域になる。
Group Report of 2008 SISP
12
Group Number 8-B
Solaris Project Ⅱ
3.4.4 ミー散乱について
ミー散乱とは、光の波長程度以上の大きさの球形の粒子による光の散乱現象であり、粒子のサイズ
が非常に大きくなるとミー散乱と幾何光学の二つの手法による計算結果が類似するようになる。
ミー散乱の散乱係数を求める式はレイリー散乱と同じになる。また、雲が白く見える一因である。
これは雲を構成する雲の中にある粒子の半径が約 10μm の大きさで、太陽光の可視光線の波長にたい
してミー散乱の領域となり、可視域の太陽放射がどの波長域でもほご同程度に散乱される為に起こる
現象である。
3.4.5 散乱係数について
散乱係数とは、レイリー散乱やミー散乱などの散乱と散乱以外の光の境界を計算する時に必要にな
る係数のことである。
3.4.6 分光法について
分光法とは、物理的観測量の強度を周波数、エネルギー、時間などの関数として示すことで、対象
物の定性・定量あるいは物性を調べる科学的手法である。もともとは可視光の放出あるいは吸収を研
究する分野だったが、光が電磁波の一種であることが解り電磁波の放出あるいは吸収を測定する方法
になった。
3.4.7 分子数密度にいて
分子数密度とは、類密度ともいい、単位体積あたりの対象物の個数を表す数である。また、対象物
の粒子数に注目したいときに、密度よりも広く用いられ、粒子 1 個当たりの平均重量が分かっていれ
ば、密度と分子数密度は互いに換算することができる。
3.4.8 実装
太陽柱のプログラムは DirectX の文献に記載されてあるライティングという手法のライティング処
理を行うプログラムの中の円柱を生成するものを使用することにより作成した。そして、円柱の色を
透明に近づけたり円柱の大きさを調整することによりダイヤモンドダストの発生する範囲に合わせて
実装した。
ダイヤモンドダストのプログラムはレイリー散乱とミー散乱を用いて実装しようと考えた。そして
レイリー散乱の係数を β r とし、ミー散乱の係数を β m として以下の式を用いてプログラムを実装
しようと考えた。レイリー散乱とミー散乱の係数は式(1.1)と(1.2)を用いてそれぞれの値を求めるこ
とにした。
Group Report of 2008 SISP
13
Group Number 8-B
Solaris Project Ⅱ
β r θ  β m θ 
Lin=
Esun 1−e V 
β r β m
(1.3)
Fex=eV
(1.4)
V =− β r β m  s
(1.5)
ここで
Lin は光の色の加算、
β r θ  , β m θ  は太陽の光のベクトルと、
物体への視点ベクトルのなす角 θ、
Esun は CG の太陽の色、
Fex は光の色の減衰と吸収、
s は視点から物体までの距離である。
上記の式(1.3)と(1.4)の二つの式を用いることで光の減衰、吸収と加算を求めることができる。
β r θ =
3
β r 1cos2 θ 
16π
1
β m θ =
β
4π m
ここで
Group Report of 2008 SISP
(1.6)
1−g 2
2
1g −2gcosθ
3
2
(1.7)
g は離心率である。
14
Group Number 8-B
Solaris Project Ⅱ
上記の式(1.6)と(1.7)の二つの式を用いることでレイリー散乱とミー散乱における光の散乱角度を
求めることができる。
離心率とは、二次曲線の特徴を示す数値の一つで、実用的には楕円形がどの程度真円に近いかを豹
変するための手段として使われることが多い。
これらの式では計算量が多くなってしまうので以下に示した類似式を用いて実際の計算をすること
にした。
β r θ =
3
β
16π r
1− g 2
1
β m θ =
β
4π m 1g 2 −2g
(1.8)
(1.9)
上記の式(1.8)と(1.9)を用いて実際の β r θ  と β m θ  の値を求めることにした。これにより
cos の計算をしなくて済むようになった。
L= L0⋅Fex Lin
ここで
(2.0)
L は最終的な色、
L0 はテクスチャカラーである。
上記の式(1.8)を用いることで最終的な色を求めることができる。最終的な色とはダイヤモンドダス
トの光の輝きを示している。例えば明るいまたは暗いといった違いを表現することができるようにな
る。
Group Report of 2008 SISP
15
Group Number 8-B
Solaris Project Ⅱ
上記に示した方法でダイヤモンドダストの実装をしようと考えた。まず、参考文献にある物理モデ
ルの理解を行った。次に粒子の点滅させることによりきらきらと輝いているように表現することにし
た。しかし、別々に作成したプログラム太陽柱とダイヤモンドダストを合せた時に太陽中は描画され
るのにダイヤモンドダストは描画されないといったことやダイヤモンドダストが点滅しなくなるといっ
た問題が起きて、その問題がレンダリングの設定を二つのプログラムで変えていたことやダイヤモン
ドダストのプログラムが思っていたこととは違う動作をしていることだと解り、その問題を解決する
ためにレンダリングの設定を同じにしたり、ダイヤモンドダストのプログラムを太陽中のプログラム
と適応させるために修正したりと時間を取られてしまいレイリー散乱とミー散乱を取り入れるための
プログラムを作成するための時間が無くなってしまったためレイリー散乱とミー散乱の物理モデルを
取り入れることができなかった。
3.4.9 結果
本プロジェクトではダイヤモンドダストと太陽柱を実装した。ダイヤモンドダストはランダムに粒
子を描画したり描画しなかったりという動作と粒子を左右にぶらし、ゆっくり落下させてきらきらと
輝いているように見せることは出来たが物理的な要因がなくなってしまいとても残念な結果になって
しまった。また、太陽柱は円柱状の光を生成し、ダイヤモンドダストの発生する範囲に設置すること
ができた。
Group Report of 2008 SISP
16
Group Number 8-B
Solaris Project Ⅱ
図1
(文責:前小屋)
Group Report of 2008 SISP
17
Group Number 8-B
Solaris Project Ⅱ
3.5 フラクタル地形
3.5.1 目標
前期に作成したプロトタイプのプログラム(図4-1)では、地面に凹凸がない平坦な地形だったため、
本プロジェクトの目標である現実感が損なわれてしまった。そこで地面にフラクタルによる凹凸をつ
けることにより、図のような(図4-2)現実感のあり、リアルタイムCGの動作に支障が無い地面を作成
することを目指す。
図4-1
図4-2
Group Report of 2008 SISP
18
Group Number 8-B
Solaris Project Ⅱ
3.5.2 表現手法
フラクタルは単純な計算や動作を繰り返すことにより、複雑な図形を作成することができる。フラ
クタル地形を生成する方法の一つに、中点変位アルゴリズムがある。今回は中点変位アルゴリズムの
一つ、プラズマフラクタルアルゴリズムと呼ばれる手法を用いて、フラクタルによる隆起を作成しよ
うと試みた。プラズマフラクタルは計算方法が簡単で、計算量が比較的他のアルゴリズムより少ない
ため、リアルタイムCGに向いている。
3.5.3 中点変位アルゴリズム(線分)
中点変位アルゴリズムは線分AB(図4-3)を決め、その線分ABの中点Cを取り、適当な値を上下に
加えてCを変位させる(図4-4)。次は線分ACとCBで同じ動作を行い、ACの中点DとCBの中点E
を変位させる。この動作を繰り返すことで凹凸のある地形を生成することが可能である。ただし、こ
の動作だけでは初期値の点だけが生成に影響し、全く同じ地形のみしか生成できないため、生成する
高さに乱数RH(Random Height)を加えて、生成するたびに違う値が生成されるようにした。
図4-3
図4-4
3.5.4 中点変位アルゴリズム(短形)
3次元の地面のアルゴリズムでは、まず正方形ABCD (図4-5)を生成し、それぞれの高さをフラク
タルによって計算し、凹凸のある地面を生成する。3.5.3で解説した線分の中点変位アルゴリズムでは、
3次元地面のプログラミングにした場合、図の線分AB、AC、CD、DBしか計算されないため、
地面の枠の部分しか凹凸がなくなるという事態に陥る。もちろん、図の線分ABとCBの間に何本も
の線を引き、それぞれの線に計算を行うという方法もできるが、計算量が膨大になり、これはリアル
タイムCGの動作に支障が出てしまい、目的に合わないため、今回は使用しない。
Group Report of 2008 SISP
19
Group Number 8-B
Solaris Project Ⅱ
図4-5
よって、今回はプラズマフラクタルと呼ばれる短形中点変位アルゴリズムを使用する。プラズマフ
ラクタルは正方形ABCDの中心点Eの高さを計算し、次に線分の計算と同じようにAB、AC、D
B、CDをの高さを計算し、その位置をそれぞれF、G、H、Iと置く。各点の高さは考えないとす
ると、生成された小さな正方形AFGE、FBEH、GECI、EHIDにも同じ動作を規定回繰り
返すことにより、3次元のフラクタル地形を生成する。(図4-6)
図4-6
この正方形の中心点を求める動作をダイヤモンドステップと呼び、正方形の辺の中点を計算する動
作をスクエアステップと呼ぶ。
3.5.5 プログラミング手順
プログラミングをするに当たって、以下の4つの段階に分けてプログラム製作を試みた。
1.基準点の座標計算
2.ダイヤモンドステップ
3.スクエアステップ
4.乱数の計算
Group Report of 2008 SISP
20
Group Number 8-B
Solaris Project Ⅱ
3.5.6 基準点計算
ダイヤモンドステップやスクエアステップを計算するに当って、基準点と呼ばれる点を設定した。
生成される図形は全て正方形であるので、正方形の一つの頂点が分かれば、後は正方形の辺の長さを
足すことにより、ダイヤモンドステップでの中心点座標、スクエアステップの辺の中点座標が求めら
れる。ここでは、正方形ABCDの頂点Aを基準点としてダイヤモンドステップ、スクエアステップ
の計算を行った。
3.5.7 ダイヤモンドステップ
・中心点の座標計算
ダイヤモンドステップでは基準点A(AX,AY,AZ)を元に、中心点E(EX,EY)の座標を求める。正方形の
一辺の長さをLHとおくと、
EX = AX + LH / 2;
EY = AY + LH / 2;
EZ = 0;
とおく。ここではEZ(中心点Eの高さ値)は計算しないため、ゼロを代入しておく。
・中心点の高さ計算
中心点の座標計算で求めた座標E(EX,EY,EZ)に高さの値を加え、地面に凹凸をつけていく。プラ
ズマフラクタルでの計算は正方形ABCDの高さ値(AZ,BZ,CZ,DZ)を平均し、乱数を足
すことにより、フラクタルのランダムな地形が生成できる。
式にすると、
EZ = (AZ + BZ + CZ + DZ) / 4 + RH;
となる。
Group Report of 2008 SISP
21
Group Number 8-B
Solaris Project Ⅱ
3.5.8 スクエアステップ
・中点の座標計算
スクエアステップでは、ダイヤモンドステップと同様に、基準点A(AX,AY,AZ)を元に辺の中点F
(FX,FY,FZ)、G(GX,GY,GZ)、H(HX,HY,HZ)、I(IX,IY,IZ) の座標をそれぞれ求めていく。ここではF
についての計算を行う。
式にすると、
FX = AX + LH / 2;
FY = AY;
FZ =
0;
となる。
・中点の高さ計算
中点の座標計算で求めた座標F(FX,FY)に高さの値を加え、地面に凹凸をつけていく。スクエアス
テップでの計算はFの周りの頂点A、B、Eの高さ値を平均し、乱数を足すことにより、フラクタル
のランダムな地形が生成できる。また、中点座標の周りの頂点が3つの場合も存在する。その場合は、
ダイヤモンドステップで求めた中心点を再び足して、4で割ることで解決でき、かつ自然な図形にす
ることができる。
式にすると、
FZ = (AZ + BZ + EZ + EZ) / 4 + RH;
となる。
これはダイヤモンドステップとほぼ変わらない計算式なので、入力した高さ値を少し変えるだけで
簡単に希望の高さ値の出力ができるため、ダイヤモンドステップと同じの計算関数の作成が容易な点
もあげられる。
Group Report of 2008 SISP
22
Group Number 8-B
Solaris Project Ⅱ
3.5.9 乱数の計算
乱数はダイヤモンドステップ、スクエアステップの両方で使われるため、初期値の設定が重要にな
る。そして、乱数は計算を繰り返すたびに小さくしていかなければ、極端に高い山や極端に深い谷が
でき、フラクタルの山が凸凹になりすぎてしまうので、注意していかなければならない。そのため、
ダイヤモンドステップとスクエアステップが終わったあとに、乱数を再度計算する必要がある。この
プログラムでは、なるべく自然に見せるために、乱数を2^nずつ小さくしていくことにした。
式にすると、
RH = RH ^ - (2 ^ n);
となる。
この計算を行う事により、ダイヤモンドステップとスクエアステップの計算を繰り返すたびに、乱
数の値は小さくなっていき、計算式も簡単なので、高さの変位が合わない場合などの対策も容易であ
る。 3.5.10 各ステップの計算回数
ダイヤモンドステップは、最初の正方形が1つなので、1回計算する。次は正方形が4つなので、
4回計算する。次は正方形が16個になるため、16回計算していく。
このように、ダイヤモンドステップは繰り返す回数を1回増やすたびに、1、4、16…と計算回
数が増えていく。繰り返す回数をC、計算回数をDと置いて、
式にすると、
D = 4 ^ (C – 1);
となる。
同様に、スクエアステップは正方形には辺が4つあるため、4回計算する。次は正方形が4つに増
えるため、16回計算する。その次は正方形が16個になるため、64回計算となる。
よって、スクエアステップは
S = 4 ^ C;
となる。
Group Report of 2008 SISP
23
Group Number 8-B
Solaris Project Ⅱ
3.5.11 出力結果
プロジェクトで作成したフラクタル地形プログラムは、(0,0,1)(800,0,2)(0,800,3)
(800,800,4)という4つの初期値座標を用い、乱数を含めないデバックを行った。
デバックの結果、ダイヤモンドステップでは(400,400,2.5)、スクエアステップでは(0,400,2.75)
(400,0,2)(800,400,2.25)(400,800,3)と設計どおりの計算結果を得ることができた。
しかし、計算結果は正しいものの、実際の画面には初期値座標以外描画されない出力となってしまっ
た。
バグの原因としては、次のようなものが考えられる。
・DirectXに計算結果を渡す際に、座標位置が渡されていない。
・座標位置は正しく渡されているが、DirectXの描画段階で描画する領域に座標位置が含まれていない。
などが原因として考えられる。
(文責:田辺)
Group Report of 2008 SISP
24
Group Number 8-B
Solaris Project Ⅱ
3.6 背景
3.6.1 背景の定義
降雪だけをプログラムに実装するのではなく、より自然にするために背景を設定する。風を起こす
ために建物をつくり、雪が消えるために地面をつくり、遠近感を出すために霧をつくる。
3.6.2 建物
建物の影響を受ける雪を表現するために建物を作る必要がある。建物により雪に影響を与える風が
起こる必要があるので、観察がしやすいはこだて未来大学の前面を選ぶ。建物の作成にあたりモデリ
ングソフトから X ファイルを作りプログラムに実装する。今回は雪を表現するために必要なだけなの
でモデルは簡易なものである。はこだて未来大学の横の石壁も作成する。これは石の模様のテクスチャ
を貼り付けリアルに見えるようにする。
3.6.3 地面
地面は平面ではあるが、地面の頂点カラーの白色と灰色の間でランダムに変えることによって、雪
に凸凹があるように見せている。
3.6.4 フォグ
遠近感を出すために DirectX のフォグを取り入れる。それにより霧の効果を出し、遠くにある物体
ほど霞むようにしている。
はこだて未来大学と石壁
(文責:掛端)
Group Report of 2008 SISP
25
Group Number 8-B
Solaris Project Ⅱ
第4章 プログラムの仕様書
4.1 では視点の位置を操作する方法、4.2 ではキーボードとマウスによる風の操作する方法、 4.3 で
がダイヤモンドダストの操作をする方法、4.4 では空間分割している点の表示・非表示の操作する方法
を説明する。
4.1 カメラ移動
カメラ移動はキーボードにある[↑]、[↓]、[→]、[←]、[i]、[k]、[o]、[u]、[p]、[l]、[m]、
[n]、[h]のキーにより操作することができる。
[↑] 初期視点から見て前方へ移動する
[↓] 初期視点から見て後方へ移動する
[→] 初期視点から見て右方へ移動する
[←] 初期視点から見て左方へ移動する
[i] 上方へ向いて行く
[k] 下方へ向いて行く
[o] 右方へ向いて行く
[u] 左方へ向いて行く
[p] 上方へ移動する
[l] 下方へ移動する
[m] カメラの位置を戻す
[n] カメラの位置を建物の近くに移動する
[h] カメラの位置をダイヤモンドダストの近くに移動する
カメラの移動する方向が分かりやすいと思われたので[↑]、[↓]、[→]、[←]のキーをそれぞれ設
定した。また、[i]と[k]は矢印キーに近くキーボードで上下に位置し、[o]と[u]は[i]を挟んで左右に
配置されており、[p]と[l]は矢印キーに近く空いていたためそこにそれぞれ設定した。そして、 [m]の
キーについては戻すという単語の頭文字が m なのでそのキーに設定し、[n]は[m]のキーに近いためそ
のキーに設定し、[h]は[m]、[n]、ダイヤモンドダストの操作キーに近い配置だったのでそのキーに設
定した。
Group Report of 2008 SISP
26
Group Number 8-B
Solaris Project Ⅱ
4.2 風の操作
4.2.1 キーボード操作
キーボードにある[a]、[s]、[w]、[z]、[d]、[e]、[x]、[c]、[q]を押すことでディスプレイに描画
した CG にアクションを加えることができる。
[a] 初期視点から見て左に雪が移動するようになる
[s] 初期視点から見て右に雪が移動するようになる
[w] 初期視点から見て前方に向かって雪が移動するようになる
[z] 初期視点から見て後方に向かって雪が移動するようになる
[d] 雪の落下速度を速くする
[e] 雪の速度を遅くすることができ上方向にも雪が移動するようになる
[x] 初期視点から見て左に雪が一定の距離移動する
[c] 初期視点から見て右に雪が一定の距離移動する
[v] 初期視点から見て前方に雪が一定の距離移動する
[q] 風の影響を受けていない降雪の状態にする
右手でカメラ操作を行うので左手で操作し易い場所にするために[a]、[s]、[w]、[z]、[d]、[e]、
[x]、[c]、[v]、[q]のキーを選んだ。また、[a]、[s]、[w]、[z]のキーは一番左側のキーであり左と
右と手前と奥が位置的に解り易いということで設定し、[d]のキーは down の頭文字を表しており[e]の
キーは始め up の頭文字をとって[u]のキーに設定したかったがキーボードの位置が離れすぎているこ
ととすでに違う操作を設定していたので[d]のキーの上に位置していたのでこのキーに設定した。また、
[x]、[c]、[v]のキーは近いという理由で設定した。
Group Report of 2008 SISP
27
Group Number 8-B
Solaris Project Ⅱ
4.2.2 マウス操作
マウスをウィンドウ上でマウスの左または右ボタンを押しながら移動して離すことで風のベクトル
に大きさと方向を与えることができ、降雪が変化する。
左ボタン 雪が左右に移動するようになる。
右ボタン 雪の落下速度を変化させることができる但し最初の速度よりも遅くはならない。
マウスで操作することによりキーボードで操作するよりも風の操作を実感できると思って制作した。
左ボタンは普段から使用する回数が多いので頻繁に変化させると思われる雪の左右の移動を設定した。
右ボタンは使用する回数が少ないので頻繁に変化させることはないだろうと思われる雪の落下速度の
変化を設定した。
4.2.1 と 4.2.2 は風の変化を操作できるようにし降雪がリアルタイムで変化させるために制作した。
4.3 ダイヤモンドダストの操作
キーボードにある[b]、[g]を押すことでダイヤモンドダストの表示、非表示を操作することができ
る。
[b] ダイヤモンドダストを表示する
[g] ダイヤモンドダストを非表示する
ダイヤモンドダストの表示、非表示の操作キーである[b]、[g]は風の操作とカメラの捜査の近くで
はなくカメラの操作キーである[h]の近くの位置の方が解り易いと思ったのでこの位置にあるキーにそ
れぞれ設定した。
Group Report of 2008 SISP
28
Group Number 8-B
Solaris Project Ⅱ
4.4 空間分割の目印
キーボードにある[space]、[t]を押すことで空間分割している位置の目印の表示、非表示を操作す
ることができる。
[space] 目印の表示
[t] 目印の非表示
空間分割している位置の目印があった方が建物の影響を受ける降雪が見易くなると思ったので制作
した。[space]キーは大きく押し易そうだったのでこの位置に目印の表示の操作を設定し、 [t]キーは
使用しているキーとできるだけ隣り合わないようにと考えこの位置に目印の非表示の操作を設定した。
(文責:前小屋)
Group Report of 2008 SISP
29
Group Number 8-B
Solaris Project Ⅱ
第5章 中間発表
5.1 発表内容
5.1.1 内容
中間発表は、プロジェクト全体としての内容、夏グループとしての内容、冬グループとしての内容
の大きく3つに分けて行った。
プロジェクト全体としての内容では、本プロジェクトの背景について触れ、プロジェクト全体とし
ての目的や目標を示し、前期の活動について紹介し、グループとしての目的を示し、グループごとの
後期の目標を述べた。
夏グループとしての内容では、夏グループとしての最終目標を示し、試作プログラムの説明として
ゲルストナー波や波紋について説明し、まとめを述べた。
冬グループとしての内容では、冬グループとしての最終目標や前期の目標を示し、試作プログラム
の説明として物理的メカニズムやCG、風の影響の観点から降雪の表現を説明し、課題を述べた。
5.1.2 形式
中間発表では、パワーポイントの内容をもとに作成した発表用の原稿に沿って説明した。また、大
講義室にある2つのスクリーンを用い、1つはパワーポイント、もう1つは前期に制作したCGを映
し出すことにより発表した。
発表中は、指し棒を用いることにより、スクリーン上で流れているCGとスライドごとに載せてあ
る図や式を指し示しながら発表を行った。また、実際にCGを操作しながら発表を行った。
5.2 評価アンケートの集計
以下の3つの図は、中間発表時に聴講者に記入していただいた評価アンケートの評価点数をもとに
発表技術と発表内容に分けて平均値を出し、聴講者全員の平均値、聴講者のうち教員に特定した場合
の平均値、聴講者のうち学生に特定した場合の平均値の3つの種類に分け、それぞれを表に示したも
のである。
平均値
発表技術
発表内容
6.05
7.37
聴講者全員の評価アンケートの集計結果
平均値
発表技術
発表内容
6.00
7.75
Group Report of 2008 SISP
30
Group Number 8-B
Solaris Project Ⅱ
教員に特定した場合の評価アンケートの集計結果
平均値
発表技術
発表内容
6.06
7.32
学生に特定した場合の評価アンケートの集計結果
聴講者全員の評価の平均値を見てみると、発表技術に関してはあまりよい評価が得られていないが、
発表内容に関しては少し良い評価が得られている。また、発表技術は2~8、発表内容は5~10と、
どちらも評価にかなりのばらつきが見られる。
聴講者のうち、教員に特定した場合と学生に特定した場合の評価の平均値を見てみると、発表技術
に関しては学生の方が評価が高く、発表内容に関しては教員の方が評価が高いが、平均値の差は、発
表技術、発表内容ともに0.5以下であり、ほとんど差はない。
5.2.1 発表技術
発表技術では、スライドが大きくて見やすかった、画面を2つ用いるスタイルが良かった、実際に
成果物を見ることができそれを実演しながら説明したので分かりやすかった、質問に対してきちんと
答えていた、などといった良い評価をいただいたと同時に、発表練習が準備不足である、発表用の原
稿をそのまま読んでいた、声をもう少し大きくした方が良い、説明が少し分かりにくかった、などと
いった悪い評価をいただいた。以下に、発表技術に関する聴講者からのコメントを示す。
●
説明が練習不足に思えた。
●
冬グループの今後の活動を具体的に言ってほしい。
●
声量は十分であった。
●
成果物を実際に見られて良かった。
●
スライドを使っているので大きく見えた。
●
デモ等の工夫が分かりやすかった。
●
スライドをもう少し工夫してほしかった。
●
実演しながら説明するので分かりやすかった。
●
原稿の棒読みだった。
●
声はもう少し大きくした方が良いところがあった。
●
スライドなどは見やすく良くできていました。
●
画面が2つあり分けて使っている点が良かった。
Group Report of 2008 SISP
31
Group Number 8-B
Solaris Project Ⅱ
●
成果物作成に当たって技術紹介が少し突然すぎたかと思いました。
●
話術については頑張って下さい。
●
もう少し原稿を読む回数を減らした方が印象が良いかもしれません。
●
声の小さい人がいた。
●
原稿を見て説明するより、相手を見て説明する方が説得力があると思います。
●
内容自体は分かりやすかったです。
●
2画面を使っているので仕方ないが画面の前に立って喋るのはやめた方が良い。
●
カンペ読みすぎ。
●
分からない表現が多い。
●
発表者の声が聞き取りやすく2つあるプロジェクタを片方にCGもう片方に説明を加えるなどし
て機器を有効活用していたと思います。
●
トピックの提示だけで内容が薄いところが多い。
●
プロトタイプと完成形のつながりがきちんと説明されていない。
●
つっかえつっかえで声が小さい。
●
ちょっと説明していることが分かりにくかったり、パワーポイントが見づらかったです。
●
スライドが美しくないです。
●
内容は非常に分かりやすい。
●
口頭スピードもゆっくりで良い。
●
試作プログラムが面白かった。
●
日程の説明がちゃんとなされている。
●
質問の返しもしっかりしていた。
●
やっていることは楽しそうなので、もう少し楽しそう(夢を与えるよう)なプレゼンを目指すと
良いと思います。
●
発表する人とパソコンを使う人が別々の方が良いと思った。
●
もっと見ている人たちに何かを訴える感じで言ってほしかった。
●
少し緊張していたのか早口で言葉が聞き取りづらいところがあった。
●
文と文の切り方がしっかりとされていたので聞く側としては自分の中で理解しながら聞くことが
できた。
●
スライドを移動させるタイミングが少し早かった。
●
実際のCGと組み合わせてプレゼンしていたのは良かった。
●
Simple clear flow.
●
Presentation style : a little stiff – relax.
Group Report of 2008 SISP
32
Group Number 8-B
Solaris Project Ⅱ
5.2.2 発表内容
発表内容では、CGを見せたことにより活動内容を理解することができた、夏と冬というテーマが
面白い、グループごとの説明が分かりやすかった、後期につながるような完成度の高い成果物である、
などといった良い評価をいただいたと同時に、前期の作品は良かったが後期の説明が少なかった、計
画性を持ってはっきりとさせた方が良い、数式がどのような計算結果でどのような影響を与えている
のかが分かりにくかった、目標設定が曖昧である、などといった悪い評価をいただいた。以下に、発
表内容に関する聴講者からのコメントを示す。
●
リアルタイムで動かすことができることの限界を知りたかった。
●
後期の目標はよく分かった。
●
実際に映像を見せていただけたのは良い。
●
CGはそれっぽく見えてある程度説得力を持っている。
●
前期の作品は良かったが、後期への発表が少ない気がします。
●
目標が分かりにくかった。
●
成果物は面白そうだけど、発表練習にもっと力を入れると良い。
●
土台となるプログラムができていてちゃんと進行しているなと思いました。
●
後期につながる完成度の高い成果物。
●
積雪してほしいと思った。
●
見ていてリアルに見え面白かったです。
●
目標がとても面白そう。
●
夏と冬のテーマが良い。
●
計画性を持ってはっきりとさせた方が良いと思いました。
●
次のステップの目標で局所性のある風が吹くそうですが期待します。
●
リアリティについてもう少し工夫があると良いですね。
●
美しい画像を希望。
●
数式がイマイチどのような計算結果がどんな影響を与えているのか分かりにくかった。
●
自然現象をプログラムで表現するのは面白い。
●
作っている方は大変だったかもしれないが、外の人間が見るとそれほどのものとは思えない。
●
雪に風を加えた時に動きが一意的なので動きに個体差を加えては。
●
パーティクルを設置する際ただ消えるのではなく自然に表現できるよう一工夫してみては。
●
プロジェクトの目標を簡単に言えばリアリティのあるCG、リアルタイムに反応するCGを作る
ということだと感じたが、計画としてはしっかりしていると感じたが、目標設定が曖昧だと感じ
Group Report of 2008 SISP
33
Group Number 8-B
Solaris Project Ⅱ
た。
●
冬が技術的に簡単。
●
雪のCGには感動しましたがもう少し分かりやすい説明がほしかったです。
●
冬グループのコンテンツが夏と比べて少し地味。
●
最終成果物が明確に記されていた。
●
数式、ベクトルなどのプログラムへの応用などの説明がなされていてそれを使って何をしたいの
かの説明も少しあった。
●
季節ごとにストリーミングを作るのは良い発想だと思う。
●
後期は発展したものを作るのが良いと思った。
●
ダイヤモンドダストに期待できる。
●
すごく面白いことをやっているので、最終発表時にできあがるのが楽しみです。
●
試作と背景の色を違う色にしてほしかった。
●
雪のグラフィックがきれいだった。
●
どちらも分析に関してはできているので後は実現するだけだと感じました。
●
余裕があれば春や秋も作って四季を表現できるときれいだと思います。
●
なぜこれをすることにしたのかという哲学とか思想の説明がほしかった。
●
実際にCGを見せてくれたことから活動内容がすごく分かりやすかった。
●
専門用語が少し多くて言葉が分からなかったところがあった。
●
もう少し具体的に聞きたかった。
●
グループごとの説明が分かりやすかった。
●
Seems to be a clear plan … but is there a final application for this intriguing idea?
●
この他にも、今後が楽しみであるというコメントがいくつか寄せられていた。
Group Report of 2008 SISP
34
Group Number 8-B
Solaris Project Ⅱ
5.2.3 反省点と改善案
以下に、中間発表の反省点を示す。
●
発表練習が不足していた。
メンバー全員が、発表する内容を把握し切れず、発表用の原稿をほぼそのまま読みながら説明して
しまった。そのことにより、聴講者の方を向かず、下を向いたりパワーポイントを見たりということ
が終始続いた。

分かりにくい表現があった。
聴講者に理解してほしいという気持ちが強かったことが原因となり、内容を深く突っ込んで説明し
たつもりが、逆に混乱させてしまった。また、説明したい部分の内容が数式や物理的な理論であった
部分は説明や理解が難しく、分かりにくい表現となった。

声があまり大きくなかった。
大講義室は広く、それに加え、周りの発表に声をかき消されてしまい、聴講者に上手く届かなかっ
た。中でも声の小さい発表者がいたことにより、その人の発表した部分だけ聞き取りにくいという結
果となった。

目標が分かりにくかった。
最終目標の説明が少し曖昧であったことにより、聴講者としては、私たちが何を目標にこれまでプ
ロジェクトの活動を進め、これからプロジェクトを進めていくのかということが明確に捉えることが
できなかった。

スライドがあまり良くなかった。
スライドの背景の色が貼り付けてある画像の色とかぶったり、雪景色の背景に降雪の写真を貼り付
けたことにより、画像が見にくくなっていた。また、スライドの中で説明した文章に工夫が足りない
との意見もあった。

スケジュールを守れなかった。
中間発表用の原稿やパワーポイントの作成の締め切りをはじめ、自分たちがこれまでに決定してき
たすべての作業の締め切りを守ることができなかったため、十分なものができず、発表練習の不足に
もつながってしまった。
Group Report of 2008 SISP
35
Group Number 8-B
Solaris Project Ⅱ
以下に、最終発表への改善案を示す。

原稿を見ずに発表する練習をする。
前期では、中間発表の準備に取りかかる作業が遅れてしまっていたので、後期では、最終発表の準
備をするための期間を前期よりも多めに設定し、何度も原稿を繰り返し読むことにより、発表の流れ
や内容を理解する。

もっと分かりやすい表現を考える。
数式や物理的な理論は特に説明することが困難であり、口頭のみの発表ではそれらの内容を伝え切
ることができないので、数式や物理的な理論の説明を記載したプリントを別に作成し、補助資料とし
て聴講者に配る。

もっと大きな声で発表する。
中間発表は広い大講義室で行ったが、スタジオやモールなどでの発表に比べると私たちの方が聴講
者に声を伝えやすい。このことを考慮し、たとえ周りがざわついていても聴講者にきちんと届くくら
い声を張り上げて発表する。

目標を明確にする。
前期を振り返ってみても分かるように、プロジェクト全体としての目標はこれといったものがほと
んどなく、明確にすることができなかったので、後期では、はじめに目標を設定し、その内容に沿っ
て作業を進める。

スライドを工夫する。
背景の色と画像の色をきちんと区別することができるように工夫し、背景の濃さによって文字の色
を調節する。また、前期よりも具体的かつ効果的な文章を作成し、聴講者がそれぞれのスライドを見
ただけで私たちが説明したい内容を理解することができるようにする。

実行可能なスケジュールを立てる。
後期は、背伸びをしたり実行することができないようなスケジュールを立てることにより、それぞ
れの作業の締め切りを延ばしてしまうことがないよう慎重に締め切りを検討し、適度かつ実行可能な
スケジュールを立てる。
(文責:猪股)
Group Report of 2008 SISP
36
Group Number 8-B
Solaris Project Ⅱ
第6章 最終発表
6.1 発表内容
6.1.1 内容
最終発表は、プロジェクト全体としての内容、夏グループとしての内容、冬グループとしての内容
の大きく3つに分けて行った。
プロジェクト全体としての内容では、本プロジェクトの背景について触れ、プロジェクト全体とし
ての目的や最終目標を示し、プロジェクト活動の流れを紹介し、まとめを述べた。
夏グループとしての内容では、夏グループとしてのコンセプトや目標を示し、担当リストを見せ、
前期の試作としてゲルストナー波や波紋について触れ、最終作品の説明としてリアルな水面や砲弾の
発射・着弾について説明し、成果としてできたことと心残りなことを述べた。
冬グループとしての内容では、冬グループとしてのコンセプトや目標を示し、担当リストを見せ、
前期の試作として垂直かつ等速な降雪や一方向の風による降雪について触れ、最終作品の説明として
建物周りの風による降雪やダイヤモンドダストについて説明し、成果としてできたことと心残りなこ
とを述べた。
6.1.2 形式
最終発表では、パワーポイントの内容をもとに作成した発表用の原稿に沿って説明した。また、大
講義室にある2つのスクリーンを用い、1つはパワーポイント、もう1つは前期と後期に制作したC
Gをそれぞれ映し出すことにより発表した。
発表中は、指し棒を用いることにより、スクリーン上で流れているCGとスライドごとに載せてあ
る図や式を指し示しながら発表を行った。また、実際にCGを操作しながら発表を行った。
6.2 評価アンケートの集計
以下の3つの図は、最終発表時に聴講者に記入していただいた評価アンケートの評価点数をもとに
発表技術と発表内容に分けて平均値を出し、聴講者全員の平均値、聴講者のうち教員に特定した場合
の平均値、聴講者のうち学生に特定した場合の平均値の3つの種類に分け、それぞれを表に示したも
のである。
平均値
発表技術
発表内容
7.28
8.00
聴講者全員の評価アンケートの集計結果
Group Report of 2008 SISP
37
Group Number 8-B
Solaris Project Ⅱ
平均値
発表技術
発表内容
8.00
8.67
教員に特定した場合の評価アンケートの集計結果
平均値
発表技術
発表内容
7.22
7.95
学生に特定した場合の評価アンケートの集計結果
聴講者全員の評価の平均値を見てみると、発表技術、発表内容ともになかなか良い評価が得られて
いることが見受けられ、特に、発表内容に関しては、これまでプロジェクトで行ってきた活動の内容
が評価されたと言っても良いであろう。しかし、発表技術、発表内容ともに4~10と、評価にかな
りのばらつきが見られる。
聴講者のうち、教員に特定した場合と学生に特定した場合の評価の平均値を見てみると、発表技術、
発表内容ともに教員により高い評価をいただいたことが見受けられるが、平均値の差は、発表技術、
発表内容ともに1.0以下であり、それほど大きな差はない。
6.2.1 発表技術
発表技術では、CGを見せながらの説明で分かりやすかった、プレゼンテーションの流れが良かっ
た、大講義室の2つの画面を上手く使っていた、今までやってきたことを丁寧に説明していて分かり
やすかった、などといった良い評価をいただいたと同時に、違うプロジェクトの声で発表が聞こえな
かったのでもう少し声を出した方が良い、スライドの文字が多いので要点がよく分からなかった、ス
ライドをそのまま読んでいるだけなのでもっと説得するように説明すると良い、実際にCGを操作し
たかった、などといった悪い評価をいただいた。以下に、発表技術に関する聴講者からのコメントを
示す。
教員
●
分かりやすくて良いが、一部の流れがつかめないところがあった。
●
まとめが短すぎる気がする。
●
スライドが学会での正式な形式となっており見やすかった。
●
いくつかのスライドでめくるのが早く、読めなかった。
●
Good speaking style but a little stiff.
●
Superb presentation : Media ( graphics, etc ) / double screen.
Group Report of 2008 SISP
38
Group Number 8-B
Solaris Project Ⅱ
学生
●
デモを見ながらの説明で分かりやすかった。×6
●
冬グループの発表は声が小さく聞き取りにくかった。×3
●
パワーポイントがまとまっていたので理解できました。
●
スライドの文字が多いので要点がよく分かりませんでした。×2
●
スライドをそのまま読んでいるだけなので、もっと説得するように説明すると良いと思います。
×4
●
言葉が詰まるところがあったのでもう少し練習した方が良かった。
●
聴衆を見て発表すると良い。
●
夏グループ冬グループで担当リストを流すのが早く、見せるならきちんと見せてもらいたい。
●
冬グループのCGの解説が分かりにくい。
●
目次はいらない。
●
デモを使い、実際にプロジェクトの結果を見せてもらえたので嬉しかった。
●
全体的に言葉による説明に力が感じられない。
●
違うプロジェクトの声で聞こえなかったので、もう少し声を出した方が良い。×5
●
詳しい解説(プログラム的な)があって分かりやすかった。
●
課題が示されていて良かった。
●
難しい言葉(専門用語)の説明が分かりにくかった。
●
だいたいのことは伝わりました。
●
作成したプログラムの技術が優秀であった。
●
見やすい。
●
雪のCGは美しかった。
●
早口すぎます。
●
スライドを動かすのが早すぎます。
●
カンペを見ながらの発表はちょっと残念です。
●
冬グループ分かりやすい。
●
システムをいじりたかった。×2
●
プレゼンの流れは良かったと思います。×3
●
大講義室の2つの画面を上手く使っていたと思います。×3
●
怒らないでほしいです。
●
4月から今までやってきたことを丁寧に説明していて分かりやすかった。×2
●
悪くはないけど、もう少し固くない文面がいいと思う。
Group Report of 2008 SISP
39
Group Number 8-B
Solaris Project Ⅱ
●
スライドの内容は分かりやすかったが、テンポが少し悪かったように見られる。
●
今後に生かすという曖昧な表現ではなく、具体的に述べてほしかった。
●
全体的に分かりやすく、声も聞き取りやすかった。
●
学術的な説明と、概要のバランスが取れていたと思う。
●
見ている側からすると発表者が暗くて見えないのですが。
6.2.2 発表内容
発表内容では、どちらのグループも学生レベルを超えた素晴らしいCGができていた、前期と後期
での目標の違いやできたこととできなかったことが明確で分かりやすかった、絵や公式を入れて説明
しているので分かりやすかった、雪やダイヤモンドダストがきれいである、などといった良い評価を
いただいたと同時に、成果発表なのに成果が伝えられていなかった、もう少しまとめをしっかりした
方が良い、プロジェクト活動の流れの説明は何の意味も持たない、できなかったことがあるがどこま
でできたのか紹介してほしかった、などといった悪い評価をいただいた。以下に、発表内容に関する
聴講者からのコメントを示す。
教員
●
実装できているということにプロジェクトの目標が達成できていると感じます。
●
第2グループの雪の動きが良かった。
●
Seemed to achieve goals as planned well done.
●
Technically very proficient - congratulation - but I wonder why this project was decide
… is there some application in mind for the future?
●
If you have a follow up plan, I'd be very interested to see how it develops.
学生
●
実際に触れてみたかった。
●
夏休みは何もしなかったのか気になった。
●
流れがまとまっていて分かりやすかった。×2
●
誰が何をやったのかとかは聞いている側としては必要ないのかなと思いました。
●
成果発表なのに成果が伝えられていなかったと思います。×2
●
できなかったものを次のプロジェクト学習を行う学生にちゃんと伝えるべきだと思います。
●
各グループの役割分担は?
●
冬グループもう少し大きい声で。×2
Group Report of 2008 SISP
40
Group Number 8-B
Solaris Project Ⅱ
●
冬グループの建物の影響を受ける雪がそれっぽい。
●
本物のダイヤモンドダストとの比較をしたい。
●
波紋や雪の降り方全て物理運動の計算を用いて表現できている点が素晴らしかった。
●
それなりに内容は分かりやすかったと思う。
●
もう少しまとめをしっかりした方がいいと思う。×3
●
実際に裏で動いている内容を見て、細かいところまで考えられていると感じました。
●
「プロジェクト活動の流れ」の説明は何の意味も持たないと思います。
●
しっかりした目標設定ができていて十分な計画が行われていたと思う。
●
背景や目的は明確であったと思います。
●
CGがとてもきれいで、すごいと思いました。×2
●
積雪の実装が見てみたかったです。
●
面白いです。×2
●
成果物の完成度が高かったです。
●
画面は文字が多く、疲れました。
●
デモとからめた説明が良かった。
●
成果物などとても分かりやすかった。
●
難しいプログラミング言語を使って、雪の動きを再現していたのですごいと思った。
●
夏班、冬班とも学生レベルを超えた素晴らしいCGができていたと思います。×4
●
部屋を利用していたので聞き取りやすかった。
●
できなかったことがあるが、どこまでできたのか紹介してほしかった。
●
前期と後期での目標の違い、できたこととできなかったことが明確で 分かりやすかったと思う。
×2
●
少ない人数でよくやったと思います。
●
パワーポイントの中身が見やすかったと思います。
●
自分は物理が苦手なのですが、絵や公式を入れて説明してくれているので、 分かりやすかったで
す。×3
●
自分たちの知らないところの分野だったので、面白かった。
●
結局ソラリスとは?
●
夏班、冬班ともに前期の成果物よりもとても良くなっているよう感じた。
●
ダイヤモンドダストが良い。×3
●
雪がすごくきれいだと思いました。×2
●
まとめの説明がいらなかった。
Group Report of 2008 SISP
41
Group Number 8-B
Solaris Project Ⅱ
●
リアルタイムCGはすごかったです。
6.2.3 反省点と改善案
以下に、最終発表での反省点を示す。
●
発表する時の声が小さかった。
中間発表時にも聴講者に指摘をいただいたが、未だに改善されていない。大講義室の広さや周囲の
プロジェクトの発表者の声も私たちの声の聞き取りにくさの原因として考えられるが、発表内容を正
確に伝えたいために、そちらの方に気持ちが集中してしまったことも原因として考えられる。
●
スライドに書かれている内容をそのまま読んでいた。
スライドの内容に沿った発表を行おうという気持ちが強すぎてしまったせいか、目的やコンセプト、
最終目標などの文章的な説明を、スライドに書かれてある文章をそのまま読むようにして行ってしまっ
た。そのせいで、聴講者から説得力のない説明であるとコメントされてしまった。
●
聴講者がCGに触れられる機会を用意することができなかった。
聴講者の中にはおそらく高校生も数人おり、もしかしたら実際にCGを操作したかった方々もいた
はずである。聴講者に私たちの発表を聞きにきてもらうために宣伝用のCGを制作したものの、それ
は見物用であり、操作することのできるCGを別に用意することまでは考えていなかった。
●
まとめの部分が曖昧であった。
最終発表用のスライドの一番最後に記載したプロジェクト全体としてのまとめの説明が曖昧であっ
た。特に、プロジェクトの経験を今後に生かすという表現が非常に曖昧であり、今後の何にどのよう
に生かすのかということを明確に説明しなかった。
●
スライドごとの文字の量が多かった。
どのスライドを見ても比較的文字数が多く、聴講者の中には文字数が多いことにより、スクリーン
を見ることが疲れたという方がいた。教員やTAにもスライドごとの文字数が多いのではとのアドバ
イスをいただいたにもかかわらず、改善することができなかった。
Group Report of 2008 SISP
42
Group Number 8-B
Solaris Project Ⅱ
●
できなかったことに対しその中でどこまでできたのかを伝えなかった。
冬グループとしての発表の最後の方で、プロジェクトでの活動の中でできたこととできなかったこ
とを説明したが、できなかったことの部分の説明で、なぜできなかったのかという原因のみを示し、
できなかったけれどその中でどこまでならできたということを示さなかった。
以下に、来年度のプロジェクトへの参考とするための改善案を示す。
●
より大きな声かつ聴講者の方を向いて発表する。
大講義室は確かに広いが、スタジオやモールでの発表と比較すると周囲の雑音は少なく聴講者に声
を伝えやすいので、もっと大きな声で発表するのが良い。また、スライドを見ながらの説明により声
が横の方へ伝わってしまったので、もう少し聴講者の方を向いて発表するのが良い。
●
もう少し自分たちの言葉で説明する。
もちろんそれぞれのスライドの内容に沿って発表することは変わらないが、ただスライドに書かれ
てある文章をそのまま伝えるのではなく、言葉のニュアンスを変えずにもう少し工夫した表現を考え
たり、スライドに書かれてある文章の後に補足説明を述べるのが良い。
●
聴講者がCGに触れる機会を設ける。
制作した宣伝用のCGを聴講者に見せることの他に、聴講者に実際にCGを操作して楽しんでもら
うことのできる機会を用意するのが良い。具体的には、プロジェクトメンバーのPCを1~2台用意
し、CGを実装し操作マニュアルを貼り付けた状態で発表場所の近くに置いておくのが良い。
●
もう少し具体的にまとめる。
まとめの部分は、プロジェクト全体としての内容をきれいに締めくくるために半ば強引に発表内容
に組み込んだものなので、もし最後にまとめを述べる場合には、説明が必要なことや本当に伝えたい
ことを、具体的な内容を交えて説明するのが良い。
●
スライドごとの文字の量を減らす。
それぞれのスライドに書かれていない内容を説明することは聴講者を混乱させてしまうことにつな
がるが、図などを用いて説明することにより、スライドごとに減らした文章量を補うことができるの
で、重要な文章やキーワードのみをスライドに記載し、その他は図などで説明するのが良い。
Group Report of 2008 SISP
43
Group Number 8-B
Solaris Project Ⅱ
●
できなかったことに対しその中でどこまでできたのかを伝える。
最終発表では、実装することのできた部分のみを説明し、実装にたどり着けなかった部分はどこま
でできたのかということを説明しなかったので、実装はできなかったけれどここまでならできたとい
うことを示し、実装するために努力したことを伝えるのが良い。
6.3 中間発表と最終発表の比較
中間発表と最終発表とでは、聴講者によって評価された発表技術と発表内容のそれぞれの点数や聴
講者からいただいたコメントに違いが見られた。ここでは中間発表と最終発表をいくつかの観点から
比較し、その違いを以下に示す。
聴講者全員の評価の平均値を比較してみると、発表技術、発表内容ともに最終発表の方が中間発表
よりも高く評価されていることが見受けられる。また、教員に特定した場合の評価の平均値や学生に
特定した場合の評価の平均値も同様に、発表技術、発表内容ともに最終発表の方が中間発表よりも高
く評価されていることが見受けられる。特に、発表技術に関しては、中間発表と最終発表とでは1.
23もの評価の平均値の差があり、中間発表での失敗や反省点を振り返り、改善案を元に最終発表へ
向けて準備してきたということを聴講者に評価していただいた。
発表技術に関する聴講者からのコメントでは、CGを操作しながら説明していたことが良かった、
発表者の声が小さい、などといった中間発表と最終発表に共通するコメントをいただいた。また、中
間発表に比べ、最終発表では、原稿を読みながら発表していたというコメントが減り、説明が分かり
やすかったというコメントが増えた。
発表内容に関する聴講者からのコメントでは、CGがきれいでそれっぽく見えた、専門用語が多く
て分からない言葉があった、などといった中間発表と最終発表に共通するコメントをいただいた。ま
た、中間発表に比べ、最終発表では、目標の設定が曖昧であるというコメントが減り、成果物の完成
度が高かったというコメントが増えた。
(文責:猪股)
Group Report of 2008 SISP
44
Group Number 8-B
Solaris Project Ⅱ
第7章 今後の課題と結果
7.1 後期の問題点
前期と違い、「積雪」「ダイヤモンドダスト」「局所的な風」という明確な目標があったのにもか
かわらず、作業期間がかなり長くなってしまった。これはそれぞれの現象が、予想以上に複雑な物理
方程式を用いて表現される事と、見本となるプログラムが見つからず、作業期間の予測が甘くなって
しまったことが問題点に挙げられる。また、現実感のある地形生成を目標としたフラクタル地形が実
装できなかったことも問題点に挙げられる。
7.2 問題解決に向けての改善案
事前の下調べにより、見本となるプログラムや文献があるかどうかしっかりと調査する。特定の分
野で使われる物理方程式を調べてから、目標を立てていく。目標を立てる際に実現可能な目標かしっ
かりと計画してから、作業をする。明確な目標を立てる事と、期限内にその目標を実現させることは
別問題だということを知っておく。
・良かった点
脚きりという形で「積雪」の実装を行わなかったことで、「ダイヤモンドダスト」「局所的な風」
を実装することができた。3つの目標のうちのひとつである「積雪」ができなかったのは残念だが、
他の2つができたので、十分目標達成できたと思われる。また、メンバー全員が何らかの形で実装に
かかわる事ができ、CGプログラミング技術の習得という目的も沿って後期の活動を行う事ができた
点もあげられる。
7.3 後期活動日程
後期活動では一ヶ月ごとの日程を以下のように定めた。
・9月:文献探索
・10月:文献解読
・11月:プログラム実装
・12月:最終発表準備
この流れに従い、後期のプロジェクト学習を開始した。
Group Report of 2008 SISP
45
Group Number 8-B
Solaris Project Ⅱ
7.4 後期活動詳細
7.4.1 文献の探索
前期に引き続き、ダイヤモンドダストや局所的な風の文献の検索を再び行い、前期の倍以上の文献
を検索することができた。特に「ダイヤモンドダスト」や「局所的な風」などは気象学、物理学など
の多彩な文献を発見することができた。
7.4.2 文献の解読
前期と同様、文献に載っている物理方程式や自然現象の解説を理解し、解析した結果をドキュメン
ト資料にまとめていった。作業手順が分からなかった前期よりもスムーズに作業が進み、前期よりも
多くの文献を解読することができた。だが、解読した「積雪」など文献解読はできたが、実装には至
らない物もあった。
7.4.3 実装
製作したドキュメントや検索した文献を基にして、プログラミング言語 C++とDirectXを使い、プロ
グラム実装作業を行った。物理現象からプログラミングの式を作り、自然現象を表現することに努め
た。実装作業の大半ができた11月後半から、プログラミングのデバック作業を行った。デバック作業
では、実装したプログラムに適当な初期値を入れ、実際にプログラムを動かし、プログラム動作を確
認した。
7.4.4 結果
実装が間に合わないと判断した「積雪」は、風との関係のメカニズムが分からず、実装までにはい
たらなかった。「フラクタル」は実装まで作業が進んだが、完成直前にフラクタル地形が生成されな
いバグができてしまい、残念ながら完成までには至らなかった。「ダイヤモンドダスト」「局所的な
風」は完成させることができた。
(文責:田辺)
Group Report of 2008 SISP
46
Group Number 8-B
Solaris Project Ⅱ
付録 CG の概要
1 CG について
CG とはコンピュータを使って画像を処理・生成する技術またはそのような技術を用いて作成された
画像のことである。CG には二次元の表現と三次元の表現がある。二次元は写真を取り込んで加工する
ことなどがあり、三次元はゲームなどの仮想世界の表現などがある。私たちのプロジェクトでは CG を
制作するために C++、DirectGraphics を用いた。
2 C++について
C++は汎用プログラミング言語の一つであり、高度な機能を使用してもプログラムの実行性能が低下
しすぎないように、言語仕様・ライブラリに様々な工夫が施されていて、 1990 年代以降、C++は最もよ
く利用されるプログラミング言語の一つとなっている。今回は DirectGraphics を扱うための言語とし
てこれを用いた。C#という選択肢も存在したが、C++を用いた DirectGraphics の参考書が多数存在し、
プロジェクトメンバー全員が C 言語を触れていて、社会人になってからも役に立つという 3 点を考慮し
て今回は C++を選択した。
3 DirectGraphics について
DirectX は Microsoft 社 が 制 作 し た ゲ ー ム お よ び マ ル チ メ デ ィ ア 処 理 用 の API の 集 合 で あ る 。
DirectGraphics はその DirectX の一部である。
次に DirectX に関係する語群 について説明する。API とはあるプラットフォーム向けのソフトウェ
アを開発する際に使用できる命令や関数の集合のこと。また、それらを利用するためのプログラム上
の手続きを定めた規約のことである。プラットフォームとはアプリケーションソフトを動作させる際
に基盤となる OS の種類や環境・設定のことである。OS とはコンピュータ全体を管理するソフトウェア
のことである。ソフトウェアとはコンピュータを動作させる手順・命令をコンピュータが理解できる
形式に記述したものである。
次に DirectGraphics について説明する 。2D と 3D を同時に表示する時に面倒な手続きを解消するた
めに 2D 描画を扱う DirectDraw と 3D 描画を扱う Direct3D が統合されて作られた物が DirectGraphics
である。また、DirectGraphics は Microsoft Windows、Xbox、Xbox 360 向けのゲーム開発で広く利用
されている。
(文責:前小屋)
Group Report of 2008 SISP
47
Group Number 8-B
Solaris Project Ⅱ
参考文献
[1] N2Factory. DirectX Game Graphics Programming Ver.2.1 Vista. ソフトバンククリエイティ
ブ株式会社, 2007.
[2] 森木大樹. 雪の不規則な動きを考慮した降雪のリアルタイムモデリング. 2003.
[3] IT用語辞典 e-Words. http://e-words.jp/
[4] 標準 Window API. http://wisdom.sakura.ne.jp/system/winapi/win32/index.html
[5] Mark Deloura. Game Programming Gems. 株式会社ボーンデジタル.
[6] Programmer's Studio. http://members3.jcom.home.ne.jp/progstudio/dx_tips2.html
[7] あるウィンドウをアクティブにしない方法( Windows API Topics ).
http://www.arcpit.co.jp/winapi/api_02/ap020214.htm
[8] DirectX! Vol.65. http://monsho.hp.infoseek.co.jp/dx/dx65.html
[9] 散乱光と云うもの 繊維製品の品質管理を行う為の必要な知識・ノウハウ.
http://textileinfo.com/ja/quality/2007/0513.html
[10] 下澤雄太.込山和毅.鈴木悠平.深澤至貴.複勢晋. 風の流れの可視化.
http://www.takasaki.ed.jp/ssh/research/report/h19report-research-9.pdf
[11] 横山大輔. パーティクルシステムを用いた排気ガスのリアルタイムシュミレーション. 2004.
http://www.oishi.info.waseda.ac.jp/~aguchi/thesis/1g00p137.pdf
[12] 安藤大志. リアルタイム3DCGにおける風を考慮した降雪表現に関する研究. 2003.
http://www.teu.ac.jp/aqua/3D/2003/Paper/99p027.pdf
Group Report of 2008 SISP
48
Group Number 8-B