Pengenalan jala
aset mesh

Data Mesh

Halaman ini berisi informasi tentang data yang mengandung mesh, dan bagaimana toko Unity data di kelas MeshGrafik utama primitif Unity. Mesh membuat sebagian besar dunia 3D Anda. Unity mendukung mesh poligon triangulat atau Quadrangulasi. Nurbs, Nurms, permukaan Subdiv harus dikonversi ke poligon. More info
Lihat di Glossary
.

Overview

A mesh didefinisikan oleh properti ini:

  • Vertices: Koleksi posisi di ruang 3D, dengan atribut tambahan opsional.
  • Topology: Jenis struktur yang mendefinisikan setiap wajah permukaan.
  • Indices: Koleksi integer yang menjelaskan bagaimana simpul menggabungkan untuk menciptakan permukaan, berdasarkan topologi.

Selain mesh deformable ini mengandung keduanya:

  • Bentuk campuran: Data yang menggambarkan versi cacat yang berbeda dari mesh, untuk digunakan dengan animasi.
  • Bind poses: Data yang menggambarkan pose "base" dari kerangka dalam mesh berkelok-kelok.

Vertex data

Elemen data simpul disebut vertex attributes.

Setiap simpul dapat memiliki atribut berikut:

Secara internal, semua data simpul disimpan dalam array terpisah dari ukuran yang sama. Jika mesh Anda mengandung array dengan posisi 10 vertex, itu juga memiliki array dengan 10 elemen untuk setiap atribut simpul lainnya yang digunakan.

Dalam C #, Unity menggambarkan atribut vertex yang tersedia dengan es VertexAttribute. Anda dapat memeriksa apakah contoh kelas Mesh memiliki atribut vertex yang diberikan dengan fungsi Mesh.HasVertexAttribute.

Position

vertex position mewakili posisi simpul di object space.

Unity menggunakan nilai ini untuk menentukan permukaan mesh.

Atribut simpul ini diperlukan untuk semua jala.

Dalam kelas Mesh, cara paling sederhana untuk mengakses data ini adalah dengan Mesh.GetVertices dan Mesh.SetVertik. Unity juga menyimpan data ini di Mesh.vertices, tetapi properti yang lebih tua ini kurang efisien dan ramah pengguna.

Normal

vertex normal mewakili arah yang poin langsung “out” dari permukaan pada posisi simpul.

Unity menggunakan nilai ini untuk menghitung cara yang cahaya memantulkan permukaan jala.

Atribut simpul ini opsional.

Dalam kelas Mesh, cara paling sederhana untuk mengakses data ini adalah dengan Mesh.GetNormals dan Mesh.SetNormals. Unity juga menyimpan data ini di Mesh.normals, tetapi properti yang lebih tua ini kurang efisien dan ramah pengguna.

Tangent

vertex tangent mewakili arah yang poin di sepanjang sumbu "u" (tekstur horizontal) permukaan pada posisi simpul.

Unity menyimpan tangent simpul dengan bagian tambahan data, dalam vektor empat komponen. Komponen x,y,z dari vektor menggambarkan tangent, dan komponen w vektor menggambarkan orientation. Unity menggunakan nilai w untuk menghitung binormal, yang merupakan produk silang tangen dan normal.

Unity menggunakan nilai tangen dan binormal dalam pemetaan normal.

Atribut simpul ini opsional.

Dalam kelas Mesh, cara paling sederhana untuk mengakses data ini adalah dengan Mesh.GetTangents dan Mesh.SetTangents. Unity juga menyimpan data ini di Mesh.tangents, tetapi properti yang lebih tua ini kurang efisien dan ramah pengguna.

Tekstur koordinat (UVs)

A mesh dapat mengandung hingga delapan set texture coordinates. Koordinat tekstur umumnya disebut UVs, dan set disebut channels.

Unity menggunakan koordinat tekstur ketika “wraps” tekstur di sekitar jala. UV menunjukkan bagian dari tekstur selaras dengan permukaan mesh pada posisi simpul.

saluran UV umumnya disebut "UV0" untuk saluran pertama, "UV1" untuk saluran kedua, dan sebagainya untuk "UV7". Saluran masing-masing peta ke semantik shaderProgram yang berjalan di GPU. More info
Lihat di Glossary
, TEXCOORD0, dan sebagainya hingga TEXCOORD1.TEXCOORD7.

Secara default, Unity menggunakan saluran pertama (UV0) untuk menyimpan UV untuk tekstur biasa seperti peta diffuse dan peta specular. Unity dapat menggunakan saluran kedua (UV1) untuk menyimpan panggang UV lightmapTekstur pra-render yang mengandung efek sumber cahaya pada objek statis di tempat kejadian. Lightmaps dilalui atas geometri adegan untuk menciptakan efek pencahayaan. More info
Lihat di Glossary
, dan saluran ketiga (UV2) untuk menyimpan data input untuk UV peta cahaya real-time. Untuk informasi lebih lanjut tentang UV Lightmap dan bagaimana Unity menggunakan saluran ini, [[wiki:LightingGiUvs|Lightmap UVs]. Untuk informasi lebih lanjut tentang UV Lightmap, lihat Lightmap UVs.

Semua atribut berkoordinasi delapan tekstur opsional.

Dalam kelas Mesh, cara paling sederhana untuk mengakses data ini adalah dengan Mesh.GetUVs dan Mesh.SetUVs. Unity juga menyimpan data ini di properti berikut: Mesh.uv, Mesh.uv2, Mesh.uv3 dan sebagainya, hingga Mesh.uv8. Perhatikan bahwa sifat yang lebih tua ini kurang efisien dan ramah pengguna.

Color

vertex color mewakili warna dasar simpul, jika ada.

Warna ini ada secara independen dari setiap tekstur yang mesh dapat digunakan.

Atribut simpul ini opsional.

Dalam kelas Mesh, cara paling sederhana untuk mengakses data ini adalah dengan Mesh.GetColors dan Mesh.SetWarna. Unity juga menyimpan data ini di Mesh.colors, tetapi properti yang lebih tua ini kurang efisien dan ramah pengguna.

Blend indeks dan berat tulang

Dalam mesh berkelok-kelok, blend indices menunjukkan tulang mana yang mempengaruhi simpul, dan bone weights menjelaskan berapa banyak pengaruh tulang tersebut pada simpul.

Dalam Unity, atribut vertex ini disimpan bersama.

Unity menggunakan indeks campuran dan bobot tulang untuk menentukan mesh yang dikupas berdasarkan pergerakan kerangkanya. Untuk informasi lebih lanjut, lihat Ms. YANG.

Atribut simpul ini diperlukan untuk jaring berkelok-kelok.

Di masa lalu, Unity hanya diperbolehkan hingga 4 tulang untuk mempengaruhi simpul. Data ini disimpan dalam array BoneWeight, di array Mesh.boneWeights. Sekarang, Unity memungkinkan hingga 256 tulang untuk mempengaruhi simpul. Ini menyimpan data ini dalam bangunan BoneWeight1, dan Anda dapat mengaksesnya dengan Mesh.GetAllBoneWeights dan Mesh.SetBoneWeights. Untuk informasi lebih lanjut, baca dokumentasi API terkait.

Topology

Topologi menggambarkan jenis wajah yang dimiliki jala.

Topologi jala mendefinisikan struktur penyangga indeks, yang pada gilirannya menjelaskan bagaimana posisi simpul menggabungkan ke wajah. Setiap jenis topology menggunakan sejumlah elemen yang berbeda dalam array indeks untuk mendefinisikan satu wajah.

Unity mendukung topologi jala berikut:

  • Triangle
  • Quad
  • Lines
  • LineStrip
  • Points

Sitemap Topologi Poin tidak membuat wajah; bukan, render Unity satu titik pada setiap posisi. Semua topologi jala lainnya menggunakan lebih dari satu indeks untuk membuat wajah atau tepi.Note: The Points topology doesn’t create faces; instead, Unity renders a single point at each position. All other mesh topologies use more than one index to create either faces or edges.

Di kelas Mesh, Anda bisa mendapatkan topologi dengan Mesh.GetTopology, dan mengaturnya sebagai parameter Mesh.SetIndices.

Untuk informasi lebih lanjut tentang topologi mesh yang didukung, lihat dokumentasi untuk peringatan MeshTopology.

Sitemap Anda harus mengubah jala apa pun yang menggunakan teknik pemodelan lainnya (seperti NURBS atau NURMS/Subdivision Surfaces modelling) menjadi format yang didukung dalam perangkat lunak pemodelan Anda sebelum Anda dapat menggunakannya dalam Unity.Note: You must convert any meshes that use other modelling techniques (such as NURBS or NURMS/Subdivision Surfaces modelling) into supported formats in your modelling software before you can use them in Unity.

Index data

Array indeks mengandung bilangan bulat yang merujuk pada elemen dalam array posisi simpul. Integer ini disebut indeks.

Unity menggunakan indeks untuk menghubungkan posisi simpul ke wajah. Jumlah indeks yang membuat setiap wajah tergantung pada topology mesh.

Di kelas Mesh, Anda bisa mendapatkan data ini dengan Mesh.GetIndices, dan mengaturnya dengan Mesh.SetIndices. Unity juga menyimpan data ini di Mesh.triangles, tetapi properti yang lebih tua ini kurang efisien dan ramah pengguna.

Sitemap Topologi Poin tidak membuat wajah; bukan, render Unity satu titik pada setiap posisi. Semua topologi jala lainnya menggunakan lebih dari satu indeks untuk membuat wajah atau tepi.Note: The Points topology doesn’t create faces; instead, Unity renders a single point at each position. All other mesh topologies use more than one index to create either faces or edges.

Misalnya, untuk mesh yang memiliki array indeks yang mengandung nilai-nilai berikut:

0,1,2,3,4,5

Jika jala memiliki topologi segitiga, maka tiga elemen pertama (0,1,2) mengidentifikasi satu segitiga, dan tiga elemen berikut (3, 4, 5) mengidentifikasi segitiga lain. Tidak ada batasan jumlah wajah yang dapat berkontribusi. Ini berarti bahwa simpul yang sama dapat muncul dalam array indeks beberapa kali. Misalnya, array indeks dapat mengandung nilai-nilai ini:

0,1,2,1,2,3

Jika jala memiliki topologi segitiga, maka tiga elemen pertama (0,1,2) mengidentifikasi satu segitiga, dan tiga elemen berikut (1,2,3) mengidentifikasi segitiga lain yang saham vertices dengan yang pertama.

Winding order

Urutan simpul di setiap kelompok dalam array indeks disebut winding order. Unity menggunakan pesanan berliku untuk menentukan apakah wajah adalah front-facing atau back-facing, dan pada gilirannya apakah harus membuat wajah atau kusam itu (tidak termasuk itu dari rendering). Secara default, Unity render poligon front-facing dan poligons back-facing. Unity menggunakan order berliku searah jarum jam, yang berarti bahwa Unity menganggap wajah di mana indeks terhubung ke arah searah jarum jam menghadap ke depan.

Unity’s winding order visualized on a prism
Pesanan berliku Unity divisualkan pada prisma

Diagram di atas menunjukkan bagaimana Unity menggunakan pesanan berliku. Urutan simpul di setiap wajah menentukan arah normal untuk wajah dan Unity membandingkan ini ke arah depan perspektif cameraKomponen yang menciptakan gambar sudut pandang tertentu di tempat kejadian Anda. Output ditarik ke layar atau ditangkap sebagai tekstur. More info
Lihat di Glossary
saat ini. Jika titik-titik normal dari arah ke depan kamera saat ini, itu kembali-menghadapi. segitiga lebih dekat dipesan (1, 2, 3), yang merupakan arah searah jarum jam sehubungan dengan perspektif saat ini, sehingga segitiga menghadap ke depan. Segitiga lebih lanjut dipesan (4, 5, 6), yang dari perspektif ini adalah arah anti-arah, sehingga segitiga menghadap kembali.

Bentuk campuran

Bentuk campuran menggambarkan versi mesh yang cacat menjadi bentuk yang berbeda. Bersatu antara bentuk ini. Anda menggunakan bentuk campuran untuk morph target animasi, yang merupakan teknik umum untuk animasi wajah.

Untuk informasi lebih lanjut tentang bentuk campuran, lihat Bekerja dengan bentuk campuran.

Data ini opsional.

Bind poses

Dalam mesh berkelok-kelok, bind pose tulang menggambarkan posisinya ketika kerangka berada dalam posisi default (juga disebut pose mengikat atau pose istirahat).

Di kelas Mesh, Anda bisa mendapatkan data ini dengan Mesh.GetBindposes dan mengaturnya dengan Mesh.SetBindposes. Unity juga menyimpan data ini di Mesh.bindPoses, tetapi properti yang lebih tua ini kurang efisien dan ramah pengguna. Setiap elemen mengandung data untuk tulang dengan indeks yang sama.

Data ini diperlukan untuk memutihkan jala.

Pengenalan jala
aset mesh