4日目 CG周辺の単語

そういえば仕事始めた時も分からない単語調べてメモしたとしみじみ.

でもとにかく仕事進めるのが目標なら,とりあえずやるのが近道だったり.

 

昨日の話で行けば,define and runが前者,define by runが後者なのかな.

 

人生振り返ればdefine by runで進めると最初うまくいって(ごまかして),後々詰まって,結局最初からやる.みたいな経験多かったなあ.受験勉強とかまさにそうだし.

 

動的に理解できなかったマンですね.

近道に見えてとりあえずやってみたらなんとなくうまくいって最後に困る,そんなイメージ.

 

暗記系はごまかせたけど数物はあかんって気付いて軌道修正したのが浪人してから.

高一でやったことから全部見直したなあ.いい思い出.何事もキソガダイジ.

 

コンピュータ関係の知識も同じなのかなあ.

結局基礎(ハード,ソフト含めた仕組み)が分かってなきゃ応用(コード書いたりバグ見つけたり)できないと思った.意味分からずやってもどっかで詰まるもんなー.

 

リ・カレントです.

んじゃ今日もメモから.

 

OpenGL: APIを規定した仕様.通常OSはグラフィック周りの処理を独自に設定.OpenGLWindows, Mac, Linux各OSで共通して利用できる描画指示のAPIの規格.ただし,OSやグラフィックボード(グラフィックボードを挿していない場合はCPU内蔵のGPU)がOpenGLに対応していない場合は使用不可.

OpenGLに入門する前に知っておきたかったこと - かみのメモ

 

レンダリング: 表示用のデータを元に,内容を整形して表示すること.

https://wa3.i-3-i.info/word1359.html

 

ラスタライズ方式: 描画したいずけいや物体を二次元平面に射影することで画像生成する手法.物体相互の影響が考慮されない→シャドウマッピングや環境マッピングで補完.

 

サンプリング方式: 光の反射の軌跡をシミュレートして計算することで画像を生成する手法.計算時のメモリと時間の観点から計算量を減らすノウハウが必要.

 

 

GLUT: OpenGLのプログラミングを簡単にするためのライブラリ(Utility Toolkit).プログラム実行時のウィンドウ表示やマウス、キーボードの入力を受け付ける機能を実装してくれる.

OpenGLに入門する前に知っておきたかったこと - かみのメモ

 

GLSL: OpenGL Shading Language. OpenGL用のシェーダプログラム.3D空間を描画するためのプログラム.ちなみに自分で作るシェーダはプラグラマブルシェーダ.

OpenGL が世界を描画する仕組み · けんごのお屋敷

 

ちなみにJPEG画像方式のやり方↓(引用)

  1. ピクセルのデータをRGB形式からYCrCb形式に変換する
  2. YCrCb形式のデータをサンプリングする
  3. 分割されたブロック毎に処理をする

JPEG画像形式の概要(圧縮アルゴリズム) - ウェブで用いられる画像形式。

 

サンプリング: 画像成分の分解と共に,四角い小さな画像データに分割

画像データの構造

 

●Vulkan: GPUハードウェアに近い(専門用語でlow level)API

新世代の低オーバーヘッドなグラフィックスAPI「Vulkan」,ついに正式始動

 

DirectX:Windowsで作業できるAPI.ゲームや動画などのマルチメディアが対象.ゲーム等の開発環境提供,グラフィックや動画の再生サポート.

DirectXとは?何のために入っているもの?|ドスパラ通販【公式】

 

●Metal: Apple OSで作業できるコンピュターグラフィックスAPI.元々OpenCLだったAPIから変更.GPUにほぼ直接アクセスできるらしい.

MetalエンジンがMacの動画編集ソフトにもたらすメリットまとめ – オガワダン.com

 

ドライバ: 内蔵の機器,デバイス,周辺機器などを使用できるようにするソフトウェア.

ドライバ パソコン初心者講座

 

●ThreeJS: ライブラリ.ブラウザ上で3DCGプログラミングを実現できる技術.WebGL(OpenGLのWeb版)をJavaScriptlから操作可能.

デザイナー・ノンプログラマにおすすめしたいThree.jsのカンタン3D体験 | 株式会社LIG

 

●BabylonJS: ThreeJSと同じWebGL用のライブラリ.JavaScriptで動く.

babylon.js 最初の一歩: シーンを描画する - Qiita

 

●A-Frame: WebVRを作成するオープンソースフレームワーク.ThreeJSをベースにしてH TMLで作成できる.

WebVRフレームワークA-Frameで、雪降る街の景色を作ってみました - Qiita

 

フレームワークとライブラリの違いについて↓(引用)

ライブラリが単にコードの再利用を狙ってているのに対して,フレームワークはアプリケーションの設計レベルの再利用を目的としている

(中略)

プログラムをどう動かしていくかという,プログラムの制御に関する主導権は,ライブラリではなくユーザー・コードにあります。

(中略)

フレームワークでは,ユーザー・コードはフレームワークから呼び出されます。設計を再利用するということは,フレームワークがメイン・プログラムとなり,ユーザー・コードへの制御を行うことを意味する

Part1 ソフトウエアのフレームワークとはなにか | 日経クロステック(xTECH)

 

●Open3D: 3Dデータを処理するためのオープンソースライブラリ.PCLと同じ点群処理.PythonC++から扱える.

器用なロボットの実現を目指した3Dセンシング | 画像センシング展2020

 

●Meshlab: メッシュ処理ソフトウェア.メッシュの可視化、編集,クリーニングなど可.

MeshLab とは - XSim

 

UV座標系: 3DCGモデルにテクスチャ(質感や凹凸を表現する画像やデータ)をマッピングする際,貼り付ける位置や方向を指定する座標系.横がU,縦がV.UV座標系を利用したテクスチャマッピングをUVマッピングと呼ぶ.

UV座標系 | CG用語辞典 | CGWORLD Entry.jp

 

Kinect: モーションキャプチャ技術(プロジェクトナタル)を用いた製品.v1とv2がある.

Kinect で遊ぼう - こくぶん研究室

 

●Realsense: 映像の奥行きが測定できるカメラ.いわゆるデプスカメラ(ペッパー君とかHSRの目に利用).

Intel RealSense Depth Cameraがいかにやばいかについて - Qiita

 

エンコード: データを別の形式に変換すること.人間が理解できる文字,音声,映像といったアナログ情報をコンピュータが認識できるデジタル情報へ変換すること.

 

動画コーデック: 動画データを圧縮変換(エンコード),復元(デコード)する方式.H.265はH.264の2倍の圧縮率.

H.264とH.265とは?知っておきたい動画コーデックの違い | 株式会社旭テクノロジー(ATCL) ドローン事業

 

●Xtion: エクシオン.台湾ASUS社から発売されているモーションキャプチャバイス. 

【はじめての3Dセンサー】Xtion PRO LIVEについて - Qiita

 

バスパワー: USBケーブルを通じてUSBから電源を供給する仕組み.ACアダプターやバッテリーなどから電源供給する場合はセルフパワーと呼ぶ.

 

●Oculus: アメリカのIT企業.VRヘッドセットが有名.

 

●Hololens: マイクロソフト社が開発したヘッドマウントタイプディスプレイ(HMD)方式のホログラフィックコンピュータ.

 

ホログラフィー: 光の干渉現象を用い,写真のフィルムなど感光性の媒体に記録する技術.

ホログラム: ホログラフィーにより光の情報を記録した感光媒体.

 

ホログラムによって対象が立体的に見える仕組み↓(引用)

記録のときに用いたのと同じように参照光を照射すると,ホログラ ムによって光が回折されて,元の物体光と等価な光が発生します.発生した回折光は,元の物体光の情報をすべて含 んでいます.例えば立体物を照明したときの表面からの反射光を物体光として記録すると,正面に進む光だけでなく,斜めに進む光も再生されるので,観測する人は,顔の位置を動かすと,立体物の側面も観測することができ,あたかも実物がそこにあるように見えます.

https://www.ntt.co.jp/journal/0406/files/jn200406062.pdf

 

●Git: 誰がいつどのように編集したかを正確に把握できるバージョン管理システムCUI仕様.

 

リポジトリ: ファイルやディレクトリ(フォルダ)の貯蔵庫.

ワークツリー: ユーザーが編集している作業中のディレクトリ.

インデックス: ローカルリポジトリとワークツリーの中間領域.仮置き場.

 

 Github: チーム開発を行うための機能を提供するWebサービス.複数のエンジニアがリモートリポジトリとして活用.GUI仕様.

【初心者向け】Gitとは何なのか。基本用語やその仕組みをまとめています。 | ワードプレステーマTCD

 

ライブラリとかAPIとかの知識を詰め込めた.個々の概念は理解できたが,繋がりがいまいち.

調べて思ったが,そもそも実際のコード構造が分かっていない.

 

何かしらルールあるんだろうが,そのルールの存在すら知らん.

 

ようやく明日からコード書く.

Babylon.jsを使ったデモ動画が面白そうだった.

babylon.js 最初の一歩: シーンを描画する - Qiita

 

ひとまずBabylon.jsかな.その後に前から興味あったUnity.

 

 

以上