2021/11/12 b4 立花友也
TRANSCRIPT
1.先週の活動内容
金 月 火 水 木
3限 週報 週報 週報 週報 週報
4限 プログラミング プログラミング プログラミング プログラミング プログラミング週報作成
5限 プログラミング プログラミング プログラミング プログラミング プログラミング週報作成
サンプルソースを最初から読み解いた<理由>・MC法処理についての論文などがあるが、マーチングキューブ法を使用したり、MC法の説明を書いているだけで、過程やソースコードは書いていない
・プログラムをまったく理解できないのは根本的に何か間違っているのではないか、見落としているものがあるのではないか
今までのCGの考え方に問題が見つかった
読み解いていくと・・・
3.1.1 プログラムをみて新しく分かったこと
マーチングキューブ法で物体を処理
CGの点座標とポリゴンのデータが出力
マーチングキューブ法でメタボールを作成
メタボールでCGを表現
CGの点座標とポリゴンのデータが出力
今までの考え 実際
3.1.2 CGの作成方法について条件の定義
(マーチングキューブ法・OpenGLの描画条件)
CGにしたい物体の点座標の入力
CGを描画(・メタボール・マーチングキューブ法[MC法])
・ポリゴンのサイズ・どの角度から物体を見るか
・メタボール・・・物体を複数の球の集まりで表現する
・マーチングキューブ法・・・物体を三角形の面で表現する方法
3.2.1 マーチングキューブ法について
物体を格子状の立方体(キューブ)で分けて、各立方体の頂点での濃度(密度)を調べる。
濃度が一定である部分に面を構成し、図形を作成する手法
各頂点で面を構成 するorしないか で2通り立方体は頂点が8つあるので 28 = 256 通りのパターンから構成される(上下左右対称を除くと計15パターン)
3.2.3 プログラムでのMC
20
2122
23
24
252627
図形データは(1100,0000,1010)2
28 29210211
どこの辺に頂点が発生するかを表現する
edgeTableを参照 (𝑐0𝑎)16
16進数で処理
triTableを参照{3, 1, 10, 11, 3, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}
最大5個の三角形(3×5=15配列)で図形を表現
3.3 マーチングテトラヘドラ法
・三角錐で表された物体で、上下反転を含めた計16種類で表される・基本はマーチングキューブと同じだがパターンが少なく精度もよい
マーチングキューブ
マーチングテトラヘドラ
3.4 メタボールについて
・物体を球(ボール)の集合で表す手法
・隣接する球の空間がある一定の密度になると影響しあい、空間に面を構成する(球同士が引っ付きあおうとする)
処理方法は理解できていない
(内部的な処理でプログラムは動いたので理屈だけわかれば問題ない)
問題点・改善点
・現状1×1×1の立方体内でしか表現できない→座標を100分の1などして立方体内に収めることで解決
・プロットデータを抜き出す方法の模索(数か所当てがあるので調べてみる)
理由:POV-ray(CGレンダリングソフト)に読み込ませるために必要
・静止状態でのCG表現までしか理解できていないので、ステップごとに読み込みCGが動くようにする
達成度
・マーチングキューブ法・メタボールの特性を用いて立方体を作ることができた・11月末までに達成の目途を立てていたところまでできた
100%
・問題点の解決(プロットデータを抜きだすことを最優先)
今後の予定