※2024/5/5更新
※ 本記事では、基本情報技術者試験の対策として私が勉強したことを備忘録的にまとめておきたいと思います。
少しでも参考になれば嬉しいです。
はじめに
さて今回は、基本情報技術者試験でよく問われるCG系技術・画像処理系技術についてまとめたいと思います。
CGと画像処理、厳密には別の意味合いがあるのかもしれませんが、本記事では特に気にしていません。
分類はあまり気にせず、各技術の概要とその簡単な覚え方(あくまでも私独自の覚え方です・・・)を参考にしていただけると嬉しいです。
ちなみに私はこの参考書を使って勉強してました。
漫画形式で読みやすく、分かりやすい内容になっているため、無理なく学習を進められると思います。
過去問を解きまくり、不明点があれば参考書で知識を補う、このサイクルで試験対策するのが私のオススメです!
最新版はこちらです。
少し内容が異なる部分もあるかもしれませんが、大まかには変わらないはずですので、安心して下さい。
様々な画像処理系技術まとめ
それではさっそく、どのような技術があるのか見ていきましょう!
テクスチャマッピング
3次元CGで作られたオブジェクトの表面に、2次元画像(テクスチャ)を貼り付けることで質感を向上させる技術です。
これにより、オブジェクトの表面を塗りつぶすだけでは表現できないような質感を表すことができます。
私はヒソカの念能力で覚えてます・・・分かりますか・・・??
- 表面のリアルさ:
テクスチャマッピングは、ポリゴン(3Dオブジェクトを構成する面)に2D画像を貼り付けることで、オブジェクトの表面をリアルなものにします。木の質感、石の模様、金属の光沢など、様々な表面特性を再現するのに使われます。
- ディテールの追加:
ポリゴン単体だけでは、曲面やディテールを正確に表現するのは難しいですが、テクスチャマッピングを使うことでこれを克服できます。例えば、1つの平面のポリゴンでも、適切なテクスチャを貼ることで複雑な模様や質感を持つように見せることができます。
- 効率的なリソース利用:
テクスチャマッピングはリアルな見た目を提供する一方で、コンピュータの処理負荷を効率的に制御するのにも役立ちます。ポリゴンの数を増やすことなく、ディテールを高めることができます。
- 種類の多様性:
テクスチャマッピングは、カラーマッピング(色情報の付加)、法線マッピング(立体感の付与)、ディスプレースメントマッピング(凹凸の表現)など、さまざまなバリエーションがあります。それぞれのタイプは、異なる効果をもたらします。
- UVマッピング:
ポリゴンにテクスチャを貼るためには、ポリゴンの頂点に対応する2D座標(UV座標)を定義する必要があります。これによって、ポリゴン上のどの位置にテクスチャのどの部分を配置するかを指定します。UVマッピングはテクスチャマッピングの前に行う準備作業です。
テクスチャマッピングは、視覚的なリアリズムを実現するための重要な手段であり、ゲーム開発者やCGアーティストにとっては欠かせない技術です。オブジェクトに命を吹き込み、没入感ある世界を構築するために、テクスチャマッピングの力を活用しています。
ブレンディング
画像同士の色を混ぜ合わせる技術のことです。
基本情報技術者試験の過去問には、半透明にさせる技術と書かれていましたが、色々調べてみると正確な表現ではないように感じました。大切なのは、要素同士を滑らかに組み合わせて新たな視覚的な効果を生み出すという点です。何も半透明にすること = ブレンディングではないような気がします。(有識者の方々ご意見ください・・・)
- 要素の融合:
ブレンディングは、複数の要素(画像、色、テクスチャなど)を組み合わせる際に使用されます。これによって、要素同士の境界が滑らかに溶け合い、新たな視覚的な効果を生み出します。
- 透明度の制御:
ブレンディングは透明度をコントロールするのにも利用されます。透明な要素を他の要素と組み合わせて、奥行きや光の透過感を表現することができます。例えば、ガラスの表現や炎のようなエフェクトがこれに該当します。
- カラーエフェクトの創造:
ブレンディングは色相、彩度、明度などの要素を変えることで、特定のカラーエフェクトを創造するのに役立ちます。これによって、昼夜の移り変わりや、異次元の風景などを表現することができます。
- レイヤーコントロール:
複数のレイヤー(画像やテクスチャのスタック)を持つ場合、それらのレイヤーをブレンディングすることで、奥行きや立体感を演出することができます。これによって、2Dの平面でも立体的な見た目を持たせることができます。
- 種類のバリエーション:
ブレンディングにはさまざまなタイプがあります。加算ブレンディング(光を重ねるような効果)、乗算ブレンディング(暗い要素を強調する効果)、アルファブレンディング(透明度の制御)などがあり、それぞれ異なる効果をもたらします。
- シェーダープログラミングとの結びつき:
ブレンディングは、シェーダープログラミングとも密接に関連しています。シェーダーは、要素同士の組み合わせや視覚効果の生成においてブレンディングを制御する役割を果たします。
ブレンディングは、グラフィックスデザインやゲーム制作において、静止画から動画まで幅広いコンテンツで重要な役割を果たしています。異なる要素を魅力的に融合させ、視覚的な魔法を生み出すために、ブレンディングのテクニックをマスターすることは、クリエイティブな世界での力強い武器となることでしょう。
レイトレーシング
コンピュータ上の物体に対し、陰影や光の反射を表現する際に使われる技術です。
ある点において観察される光を逆に追跡し、物体表面に光学的な演算処理を施すことで、あたかも画面の外から光が入り込んでいるように表現します。
レイ(光線)をトレーシング(追跡)するということですね。
この技術のおかげで、水面に反射して移る物体や、光による影の揺らぎなどを表現できます。
- 光の挙動の再現:
レイトレーシングは、光の挙動を物理法則に基づいて計算し、シーン内のオブジェクトや環境との相互作用をシミュレートします。その結果、リアルな光と影が得られます。
- レイトレーサーの動作:
レイトレーシングは、レイトレーサーと呼ばれるアルゴリズムを使用しています。これは、光線をシーン内に発射し、その光線がどのように反射、屈折、吸収されるかを計算して、最終的な画像を生成します。
- リアルな反射と屈折:
レイトレーシングは、鏡面反射や屈折(ガラスや水中での光の曲がり具合)を非常にリアルに再現します。これによって、表面の質感や素材の特性がより自然なものになります。
- 影の表現:
レイトレーシングは、影の計算も高精度で行います。光源からの影の落ち方や、影同士が干渉することでできる影の効果もきちんとシミュレートされます。
- 複雑な効果の実現:
レイトレーシングは、グローバルイルミネーション(光の拡散や散乱)、アンビエントオクルージョン(周囲光の影響)、フォトンマッピングなど、さまざまな複雑な光学効果を実現するのに使われます。
- 計算コストの課題:
レイトレーシングは非常にリアルな結果を提供しますが、その分計算コストが高いため、リアルタイムでの使用には高性能なハードウェアが必要です。しかし、技術の進化により、これも解決が進んでいます。
- 現実感の向上:
レイトレーシングは、映画業界やゲーム業界で次世代のビジュアルを実現するための鍵とされています。リアルな影や光の反射が、視覚的な臨場感を引き上げます。
レイトレーシングは、CGの未来を切り拓くための重要なテクニックです。現実の光と影を再現することで、コンピュータ生成の映像がますますリアルで感情豊かなものになることでしょう。
シェーディング
コンピュータ上の物体表面に対し、陰影をつけることで立体感を出す技術です。
光源の位置、物体の色や形状、物体周辺の環境など、様々な要素を考慮し、色の濃淡を調整することで物体の立体感を出します。
シェード(影)を付ける技術ですね。
- オブジェクトの外観決定:
シェーディングは、オブジェクトの外観を制御するための手法です。オブジェクトの色、質感、陰影、光の反射などを調整し、それによってオブジェクトがどのように見えるかを決定します。
- モデルの表面特性の再現:
シェーディングは、オブジェクトの表面特性を模倣するために使われます。金属の光沢、布の質感、ガラスの透明感など、さまざまな素材の特性を再現できます。
- 光との相互作用:
シェーディングは、光源とオブジェクトの相互作用を考慮しています。光がオブジェクトに当たった際の反射や屈折、陰影の表現によって、リアルな光の挙動を再現します。
- フラット / グーロー / フォンシェーディング:
シェーディングにはさまざまな手法があります。フラットシェーディングはオブジェクトを平坦な色で塗りつぶすだけですが、グーローシェーディングやフォンシェーディングは陰影を考慮してオブジェクトを描画します。
- シェーダーの利用:
シェーディングは、シェーダーと呼ばれるプログラムを使用して行われます。シェーダーは、光の挙動や陰影の計算を制御し、リアルな外観を実現します。
- リアルタイムレンダリングへの応用:
シェーディングは、リアルタイムの3Dレンダリングにも使われます。ゲームやアプリケーション内で、動的にオブジェクトの外観を変化させることが可能です。
- アートの表現力向上:
シェーディングは、アーティストの表現力を向上させる道具としても利用されます。繊細な陰影や質感の微妙な変化を通じて、作品に奥行きや情感を与えることができます。
シェーディングは、デジタルアートや3Dグラフィックスの制作において、オブジェクトの外観を決定する重要な技術です。光と色の相互作用を通じて、リアルな世界を再現したり、ファンタジックな世界を創り出すことができる魔法のような手法です。
レンダリング
3次元CGで作成した物体のデータを元に、プログラム上で演算をかけ、ディスプレイに表示できるようにする処理のことです。
最終段階として、作成したものを映像化したり、画像化したりする処理ということですね。
レイトレーシングやシェーディング、テクスチャマッピングなどもレンダリングの一種だそうです。
ちなみに英語では、「表現」や「解釈」といった意味を持ちます。
- 光と影の計算:
レンダリングは、光の挙動をシミュレートし、オブジェクトの表面がどのように光を反射し、影をつくるかを計算します。これによって、リアルな陰影や光の効果を得ることができます。
- テクスチャの適用:
テクスチャは、オブジェクトの外観や質感を与えるために使われます。レンダリングでは、テクスチャを3Dモデルに適用して、オブジェクトの表面に細かいディテールを加えます。
- カメラの視点設定:
レンダリングでは、カメラの位置やアングルを設定します。これによって、シーン内のどの部分をどの角度から見るかを指定し、最終的な画像の構図を決定します。
- シェーディングの適用:
シェーディングは、オブジェクトの色、光沢、質感などを制御するために使用されます。シェーディングは、光とオブジェクトの相互作用をシミュレートし、リアルな見た目を実現します。
- レイトレーシングの活用:
レイトレーシングは、リアルな光の挙動や影をより正確に再現するために使われることがあります。これによって、高度なリアルタイムレンダリングが可能になります。
- レンダリングエンジンの役割:
レンダリングは、専用のソフトウェアやエンジンを通じて行われます。これらのツールは、上記の要素を統合して最終的な画像を生成します。
- レンダリングの時間と品質のトレードオフ:
高品質なレンダリングは時間がかかることがあります。リアルな光や影を再現するためには多くの計算が必要ですが、リアルタイム性を重視する場合は品質を犠牲にすることもあります。
レンダリングは、デジタルアートやCG制作において、最も重要なステップの一つです。リアルな外観や美しい映像を実現するために、光学や物理学の原理を応用したレンダリングの魔法が、私たちの目の前で展開されています。
モーフィング
コンピュータ上で、ある物体から別の物体へ変化する様子を表す際、2つの物体の中間の様子をコンピュータ演算によって補うことで物体が自然に変化しているように表す映像処理手法のことです。
モーフィングという言葉と、外見の変化と紐づけられるかが鍵ですね。
(Among Usの役職・・・分かりますか??)
- 形状の変化:
モーフィングは、オブジェクトやキャラクターの形状を滑らかに変化させる技法です。例えば、人間から動物への変化、液体の流れるような変化など、幅広い表現が可能です。
- キーフレームとインタポレーション:
モーフィングは、キーフレームと呼ばれる特定の時点での形状を設定し、それらの形状間を補完するインタポレーションを行います。これによって、滑らかな変化を実現します。
- ベジェ曲線の利用:
モーフィングには、ベジェ曲線などの数学的な曲線が利用されます。これによって、形状の変化が滑らかに繋がり、自然な見た目を実現します。(ベジェ曲線・・・詳しく知りたい・・・)
- フレーム間の差分計算:
モーフィングは、変化する形状の各頂点の座標を計算し、フレーム間の差分を計算します。この差分を適用することで、形状の変化を実現します。
- 顔の表情変化に応用:
モーフィングは、キャラクターの顔の表情変化にも広く使われます。笑顔から驚き、怒りへの変化など、人物の感情をリアルに演出するのに役立ちます。 - CGアニメーションでの活用:
モーフィングは、CGアニメーション制作において特に重要な技法です。キャラクターやオブジェクトの変身、変化をリアルに描写するのに使用されます。
- 物理法則に基づくモーフィング:
最近の技術では、物理法則に基づいてモーフィングを行うこともあります。流体の運動や物体の変形など、現実世界に即した表現を実現します。
モーフィングは、デジタルアートやアニメーション制作において、変化や変身の美しい表現を実現するための重要な技法です。形状の変化がリアルで滑らかに描かれることで、魔法のような感覚を醸し出すことができます。
アンチエイリアシング
物体の輪郭部分に背景の画素値との平均化処理を施し、輪郭を滑らかに表現する技術です。
コンピュータ上で文字や図形を描画した際、ピクセルの限界により輪郭は少なからずギザギザしてしまいます。
とりわけ解像度が低くなると、ギザギザが目立ち滑らかな文字や図形とはなりません。
このギザギザがエイリアシング(ジャギー)と呼ばれ、それを目立たなくさせる技術のため、アンチエイリアシングと呼ばれます。
- ジャギーの解消:
アンチエイリアシングは、特に斜めの線や曲線に現れるジャギー(ギザギザ)を軽減するための技術です。これによって、線や曲線が滑らかに見えるようになります。
- サンプリングとの関係:
アンチエイリアシングは、サンプリングという概念に基づいています。画像をピクセル単位で区切って、各ピクセルの色や明るさを計算する際に、周囲のピクセルも参考にして滑らかな結果を得ることが目的です。
- 多様な手法の活用:
アンチエイリアシングには、さまざまな手法があります。SSAA(スーパーサンプリング)、MSAA(マルチサンプリング)、FXAA(Fast Approximate Anti-Aliasing)などが一般的に使用されます。
- コンピュータの処理負荷:
アンチエイリアシングは、より美しい結果を得るために計算を重ねるため、コンピュータの処理負荷を増加させることがあります。そのため、高解像度の画像や高品質な映像制作に向いています。
- 3Dグラフィックスへの影響:
アンチエイリアシングは、特に3Dグラフィックスにおいて顕著な効果を発揮します。立体感や奥行きが強調され、CGのリアルさが向上します。
- 設定の調整:
アンチエイリアシングの効果やレベルは、ソフトウェアやゲーム内で調整できることがあります。処理速度とのバランスを取りながら、滑らかな画像を実現できます。
- VRやモバイルへの適用:
最近では、VRやモバイルデバイスなどでもアンチエイリアシングの技術が活用されています。リソースの制約がある場合でも、美しい映像を提供する一助となっています。
アンチエイリアシングは、デジタル画像や3Dグラフィックスの品質向上に欠かせない技術です。ジャギーやノイズを軽減し、美しい滑らかな映像を実現することで、デジタル世界の魅力を一層引き立てています。
クリッピング
画像や画面のうち、表示領域以外のデータは消去し、処理にかかる計算量を減らす画像処理方法のことです。
表示させたい部分だけクリッピング(切り抜き・切り取り)して不必要な部分は消してしまおう、ということですね。
クリップって何となくイメージできますかね??最近YouTubeとかでもよくピックアップされていますよね。切り抜き動画みたいなイメージです。
- 表示領域の制限:
クリッピングは、表示領域や範囲を指定して、その範囲外の部分を表示しないようにする技術です。これによって、必要な部分だけを抜き出して表示することができます。
- 不要な部分の非表示化:
クリッピングは、特に画像やグラフィックスにおいて、不要な部分を非表示化するために使われます。例えば、画像内の余白や周囲の情報をカットすることができます。
- 描画効率の向上:
クリッピングは、描画処理の効率を向上させる役割も果たします。表示すべき範囲以外の描画処理を省略することで、パフォーマンスの向上が期待されます。
- 2Dおよび3Dに適用可能:
クリッピングは、2D画像や3Dグラフィックスの両方に適用可能です。2Dの場合は平面的なクリッピングが、3Dの場合は視錐台の内外判定に基づくクリッピングが行われます。
- アプリケーションごとの応用:
クリッピングは、さまざまなアプリケーションで応用されます。ウェブブラウジング、画像編集ソフトウェア、ゲームエンジンなどで、コンテンツの見せ方を制御するのに使われます。
- アルファクリッピング:
アルファクリッピングは、アルファ値(透明度)を基準に、透明な部分を非表示化する技術です。不透明度に基づいてクリッピング範囲を決定することができます。(ブレンディングの時もありましたよね・・・??アルファ・・・)
- ハードウェアクリッピング:
グラフィックスハードウェアは、一部のクリッピング処理をハードウェアレベルで行うことができます。これによって、処理速度の向上が図られます。
クリッピングは、デジタルコンテンツの見せ方を制御し、美しく整えるための重要なテクニックです。必要な部分だけを引き立てて表示することで、見やすさやパフォーマンス向上を実現し、デジタル世界の魅力を最大限に引き出す魔法の一環と言えるでしょう。
最後に
さて今回は、基本情報技術者試験でよく問われるCG系技術・画像処理系技術についてまとめました。
アーティストやクリエイターは、これらの魔法を駆使して、リアルな風景やファンタジーの世界を作り上げます。映画やゲーム、アニメーションなど、私たちが楽しむコンテンツの背後には、これらのテクニックが息づいています。
覚え方として基本的には、英単語の意味合いそのままな技術が多いですね。
丸暗記しようとすると難しいかもしれませんが、英語の意味をイメージし、紐づけて覚えましょう。
★テクスチャマッピング
3次元CGで作られたオブジェクトの表面に、2次元画像(テクスチャ)を貼り付けることで質感を向上させる技術
★ブレンディング
画像同士の色を混ぜ合わせる技術
★レイトレーシング
物体に対し、陰影や光の反射を表現する際に使われる技術
★シェーディング
物体表面に対し、陰影をつけることで立体感を出す技術
★レンダリング
3次元CGで作成した物体をディスプレイに表示できるようにする処理技術
★モーフィング
物体が自然に変化しているように表す技術
★アンチエイリアシング
輪郭を滑らかに表現する技術
★クリッピング
表示領域以外のデータは消去し、処理にかかる計算量を減らす技術
目指せ、試験合格!
前回まとめた記事もぜひ読んでもらえると嬉しいです。
基本情報以外の勉強記事も是非!
オススメ参考書 & Udemy講座
過去問編
兎にも角にも過去問を解かないことには始まりません。解いて解いて解きまくりましょう!
特に以下の参考書は問題数が多いのでオススメです。
この1冊だけ買って、とりあえず1周すれば合格がかなり近くなると思います!
科目A+B両方合わせて4セット収録されてるとかヤバすぎます・・・
知識網羅編
以下は知識網羅編として、講義系の参考書、動画をピックアップしています。
1からしっかりと学習し、知識を身に着けたい方はとてもオススメです。
過去問を解きまくり、不明点を参考書で補う。これが最高の勉強サイクルです~
私が勉強する際に使用していたオススメ参考書は以下です。
上記シリーズの最新版は以下です。(内容はそこまで変わらないはずですが・・・)
私がぜひオススメしたい、Udemyの講座もいくつかピックアップしておきます。
誰かに解説してもらった方が分かりやすい場合もありますからね~
画像でもボタンでも、どちらを押下しても講座へ飛べるようにしてありますので是非!
コメント