シラバス参照

授業情報/Class Information

科目一覧へ戻る 2024/03/27 現在

基本情報/Basic Information

遠隔授業(授業回数全体の半分以上)の場合は、科目名の先頭に◆が付加されています(2023年度以降)
開講科目名
/Course
ゲームグラフィックス特論B/Advances in Game Graphics B
時間割コード
/Course Code
S2201080_S6
開講所属
/Course Offered by
システム工学研究科/Graduate School of Systems Engineering
ターム・学期
/Term・Semester
2024年度/Academic Year  第2クォーター/2Q
曜限
/Day, Period
火/Tue 2
開講区分
/Semester offered
第2クォーター/2Q
単位数
/Credits
1.0
学年
/Year
1,2
主担当教員
/Main Instructor
床井 浩平
科目区分
/Course Group
_ 
授業形態
/Lecture Form
講義
教室
/Classroom
北3号館B101/北3号館B101
開講形態
/Course Format
ディプロマポリシー情報
/Diploma Policy

担当教員情報/Instructor Information

教員名
/Instructor
教員所属名
/Affiliation
床井 浩平 システム工学部(教員)
授業の概要・ねらい
/Course Aims
3次元コンピュータグラフィックスの理論と実装方法のうち、特に 3D ゲームなどのインタラクティブなアプリケーションを実現する上で必要になるリアルタイムレンダリングの技術やアニメーションの技術の学習を通して現在のCGシステムで用いられている各種の技術や考え方を理解し、それを応用したシステムを実装するための知識とノウハウを習得します。第1クォータ科目の「ゲームグラフィックス特論A」に続く内容であり、教科書的な内容にとどまらず現実のシステムで応用されている技術の具体的な内容の一端に触れることを目指します。ゲームグラフィックス特論Aではグラフィックスハードウェアの基本的な構造とコンピュータグラフィックスの基礎的な理論、およびそれらにもとづくグラフィックスプログラミングについて解説します。
到達目標
/Course Objectives
CGシステムの構成や座標変換・隠面消去・陰影付けなどの基本技術、およびそれらのグラフィックスハードウェアを用いた実装に対する理解をもって合格とします。
成績評価の方法・基準
/Grading Policies/Criteria
宿題 40%, 小テスト 10%, 期末テスト 50% とします. 宿題は (未提出 - 0, 期限遅れ - 2, 出した - 3, 動いた - 4, 頑張った - 5) という評価を行います.   
教科書
/Textbook
特に指定しません. 講義資料を用意します.
参考書・参考文献
/Reference Book
以下の参考書は講義内では使用しませんが、講義内容のベースとなるものです。
・Tomas Akenine-Moller, Eric Haines, Naty Hoffman, "Real-Time Rendering (4th. Ed.)," A K Peters/CRC Press ISBN 978-1138627000 17,443円
・Dave Shreiner, "OpenGL Programming Guide (9th. Ed.)," Addison Wesley, ISBN 978-0134495491 7,189円
・David Wolff, "OpenGL 4 Shading Language Cookbook (3rd. Ed.)," Packt Publishing, ISBN 978-1789342253 7,574円.
履修上の注意 ・メッセージ
/Notice for Students
数学にプログラミングを複合した内容であり, 多少難解な部分があるかも知れません. 自分で実装しなければ理解できない部分もあると思いますので, 講義で課す宿題を含め, 自分で積極的に試してみる必要があります. 使い物になる能力を身に付けることを目標にします.
履修する上で必要な事項
/Prerequisite
毎回,講義内容に対する理解を問う小テストと実際にプログラミングを行う宿題を課して確認します.課題の内容は毎回の講義資料の最後に示しています.課題プログラムのひな型は GitHub 上に置いています。これをダウンロードし、修正ののち、Moodle にアップロードしてください。なお、プログラムの開発環境には以下のいずれかが必要です。
・Windows 10 以降で Visual Studio 19 以降 (Intel)
・macOS Big Sur 11.3 以降で Xcode 13 以降 (Intel / Apple Silicon)
・Ubuntu 20.04 以降相当 (g++, libopengl-dev, libglfw3-dev, libgtk-3-dev のパッケージが必要)
履修を推奨する関連科目
/Related Courses
ゲームグラフィックス特論A
授業時間外学修についての指示
/Instructions for studying outside class hours
本授業の授業計画に沿って,毎回1.5時間の準備学習と3時間の復習および宿題を行ってください.宿題は実際にプログラミングを行うものを課します.自宅で学習する場合は,OpenGL 4.1 以降が動作するパソコンが必要になります.開発環境は,Windows 10 の場合は Visual Studio 2017 以降 (Community Edition で構いません) に「C++によるデスクトップ開発」ワークロードをインストールしたもの, macOS では 10.12 (Sierra) 以降で Xcode 10 以降をインストールしたもの,Linux では g++ 5.4 以降,GLFW 3.3 以降,および OpenGL (GLX) のドライバがインストールされている必要があります.詳しくは https://tokoik.github.io/GLFWdraft.pdf を参照してください.
その他連絡事項
/Other messages
講義 Web ページ https://tokoik.github.io/gg/
OpenGL 参考資料 https://tokoik.github.io/GLFWdraft.pdf
講義動画 (第1回)
https://web.microsoftstream.com/video/82c2acba-1564-4a82-adb2-48847d269c9b
授業理解を深める方法
/How to deepen your understanding of classes
この講義では講義内容を理解し実際に活用できるようにするために,毎回プログラミングの宿題を課しています.プログラミングは授業を聞いたり本を読んだりするだけで身につくものではなく,考えていることをアルゴリズム化し,実際にコードを書くという作業を何度も繰り返し,期待した結果やより良い結果を得るために試行錯誤することをによって身につくものです.したがって,もしわからない・うまく動かないということがあっても,それを放置せず,積極的に質問してください.ソースソースコードは GitHub https://github.com/tokoik 上にありますから,そこで質問していただいても結構です.

また,宿題で使っている「補助プログラム」は,それ自体で実験用のアプリケーションなどを開発できる簡単なフレームワークになっています.このドキュメントも GitHub Pages https://tokoik.github.io/gg/html/annotated.html 上に用意していますので,講義以外でも活用してくれると嬉しいです.

【「アクティブ・ラーニング」実施要項 ③発見学習・体験学習、⑥学生自らが実施する調査やトレーニングを必要とする学習、⑦発展的な課題に取り組むことを促す仕掛けをともなう学習】
オフィスアワー
/Office Hours
水曜日・第2時限
科目ナンバリング
/Course Numbering
S60095J10099T592
No. 回(日時)
/Time (date and time)
主題と位置付け(担当)
/Subjects and instructor's position
学習方法と内容
/Methods and contents
備考
/Notes
1 1. テクスチャマッピング (1) - テクスチャ座標の生成とマップのサンプリング 図形の表面に画像を貼り付けて表示する方法を説明します。画像をテクスチャメモリに読み込み、それを貼り付ける図形表面上の位置から画像上の位置(テクスチャ座標)を求めて、その位置の画像の色をサンプリングする手順を説明します。
2 2. テクスチャマッピング (2) - さまざまな材質のマッピング テクスチャマッピングでは、画像によって物体表面の色(反射率)以外の様々な反射特性を制御することができます。これによって、さまざまな質感を表現する方法について説明します。
3 3. 環境による照明 - 環境マッピングとイメージベースドライティング テクスチャマッピングにおいて画像上の位置(テクスチャ座標)を求める方法を工夫することで、物体表面に画像を貼り付けるだけでなく、映り込みや照明の効果を得る方法について説明します。また、それに用いる画像データの圧縮方法について説明します。
4 4. 影 - シャドウボリュームとシャドウマッピング 物体が落とす影を表現するいくつかの方法について説明します。また、そのうちのテクスチャマッピングを応用した手法であるシャドウマッピングについて説明します。
5 5. 大域照明 - 環境遮蔽と映り込み・屈折マッピングおよび大域照明概説 照明効果(陰影付け)において、直接光以外の成分による効果の表現方法について説明します。また屈折マッピングを用いた光の透過の表現方法についても説明します。
6 6. 遅延レンダリング - フレームバッファオブジェクトと Render To Texture レンダリング結果を直接画面に表示せず、レンダリングの異なる要素を別々にレンダリングして、その後にそれらを合成して画面表示を行うことにより、様々な映像効果を表現する手法について説明します。
7 7. ジオメトリシェーダ - GPU によるレンダリングプリミティブの生成と破棄 グラフィックスハードウェア内で図形を生成したり消去したりする方法について説明します。
8 8. まとめと試験 これまでに学んだことの復習と、それを用いたプログラムの作成を試験に代えて課します。

科目一覧へ戻る