ぼくの息抜き

ぼくの息抜き

気ままな二人が記事を書くことで息抜きしていくブログ

CSS MenuMaker

【VR,OculusGo,Unity】素人がメッシュカットについて実際に触って理解する Part1

f:id:bokunoikinuki:20180908232241p:plain

数学知識ほぼない自分でもメッシュカットについて理解し、OculusGoで気持ちよく切ることができるようになるのだろうか。

メッシュカットについて理解する

参考記事

  1. 【Unity】メッシュカッターについて その1 - ぐーるらいふ
  2. UnityEngine.Meshの内部構造解説

実践

記事にあるようにまず3Dのモデルの最小構成は1ポリゴンメッシュなるものを作る。

ポリゴンメッシュってなんだ。

  1. 3Dで新規プロジェクト作成
  2. Create Emptyでオブジェクト作成
  3. 1の参考記事のスクリプトを作成したオブジェクトにアタッチ
  4. 実行

4で実行するとピンクの一枚の三角ができた。

f:id:bokunoikinuki:20180908223101p:plain

カメラで回転すると薄い。

f:id:bokunoikinuki:20180908222939p:plain

f:id:bokunoikinuki:20180908223019p:plain

横から見るとただの薄っぺらい三角板。

わからないこと

わからないことを羅列してみる。

  1. MeshRenderer(Component)
  2. MeshFilter(Component)
  3. mesh.vertices(Meshクラス)
  4. mesh.triangles(Meshクラス)

いじって見た

1の参考記事で頂点数を変え、triangleを増やすと色々な形ができるらしい。

2の参考記事を見ながらQuadなるものを作った。

 

  1. _vertices頂点を3つから4つに
           _vertices = new Vector3[]{
                new Vector3 ( 0.0f, 5.0f , 0.0f),
                new Vector3 ( 5.0f, 0.0f , 0.0f),
                new Vector3 (-5.0f, 0.0f , 0.0f),
                new Vector3 ( 0.0f,-5.0f , 0.0f),
            };
    
  2. trianglesを増やす

           var triangles = new int[]{
                0,1,2,
                2,1,3
            };

    f:id:bokunoikinuki:20180908230001p:plain

  3. Materialを入れる
  4. _vertices変更
           _vertices = new Vector3[]{
                new Vector3 ( 0.0f, 5.0f , 0.0f),
                new Vector3 ( 5.0f, 0.0f , 0.0f),
                new Vector3 (-5.0f, 0.0f , 0.0f),
                new Vector3 ( 0.0f, 0.0f , 5.0f),
            };

    f:id:bokunoikinuki:20180908231422p:plain

わかったこと

vertices

頂点の座標,Vector3。これはわかりやすい。

 

Triangers

trianglesで2つのポリゴンを作るときのルールがややこしすぎる。

0,1,2,2,1,3ってなんだ。

f:id:bokunoikinuki:20180908230253p:plain

出典はこちら

trianglesのIndex(頂点インデックス)について

  • ポリゴンを定義する
  • 配列上での頂点のインデックスを3つずつ並べて指定
  • 時計回りor反時計回りでポリゴンの裏or表が決まる 

時計回り?面裏?わからん。しかし、1ポリゴンは三角というのはわかった。

trianglesの裏

trianglesの裏はmaterialを入れていても表示されない。

f:id:bokunoikinuki:20180908231422p:plain

MeshFilter

Meshにtrianglesやverticesなどの情報を入れてから、最後にMeshFilter.meshにMeshを代入して表示されるようになる。

Mesh

MeshFilterにおくる情報?

まとめ、感想

メッシュカットについて全く進んでいないが、ポリゴンメッシュについて理解がだいぶ深まった。