ShaderLab: kombinasi tekstur legacy
HLSL di Unity

ShaderLab: pemetaan saluran data legacy vertex

Note: Fungsi ShaderLabBahasa Unity untuk mendefinisikan struktur benda-benda Shader. More info
Lihat di Glossary
pada halaman ini adalah legacy, dan didokumentasikan untuk kesan ke belakang hanya. Jika file sumber shaderProgram yang berjalan di GPU. More info
Lihat di Glossary
Anda termasuk kode HLSL, Unity mengabaikan perintah ini sepenuhnya. Jika file sumber naungan Anda tidak termasuk kode HLSL, Unity mengkompilasi perintah ini ke program naungan biasa pada impor.

Kompatibilitas pipa Render

Feature name Built-in Render PipelineA series of operations that take the contents of a Scene, and displays them on a screen. Unity lets you choose from pre-built render pipelines, or write your own. More info
See in Glossary
Universal Render Pipeline (URP) High Definition Render Pipeline (HDRP) Custom SRP
Legacy vertex data channel mapping Yes No No No

Overview

Perintah BindChannels memungkinkan Anda untuk menentukan bagaimana peta data simpul ke perangkat keras grafis. Secara default, angka Unity dari mengikat untuk Anda, tetapi dalam beberapa kasus Anda ingin yang kustom digunakan.

Misalnya Anda dapat memetakan set UV primer untuk digunakan dalam tahap tekstur pertama dan set UV sekunder untuk digunakan dalam tahap tekstur kedua; atau memberi tahu perangkat keras yang warna simpul harus dipertimbangkan.

Syntax

BindChannels { Bind "source", target }

Menentukan bahwa data vertex source peta ke hardware target.

Source bisa menjadi salah satu dari:

  • Vertex: posisi vertex
  • NormalArah tegak lurus ke permukaan jala, diwakili oleh vektor. Unity menggunakan normal untuk menentukan orientasi objek dan menerapkan pencukur. More info
    Lihat di Glossary
    : vertex normal
  • Tangent: vertex tangent
  • Texcoord: primer UV koordinat
  • Texcoord1: koordinasi UV sekunder
  • Color: per-vertex warna

Target bisa menjadi salah satu dari:

  • Vertex: posisi vertex
  • Normal: vertex normal
  • Tangent: vertex tangent
  • Texcoord0, Texcoord1, ...: koordinasi tekstur untuk tahap tekstur yang sesuai
  • Texcoord: berkoordinasi tekstur untuk semua tahap tekstur
  • Color: warna simpul

Details

Unity menempatkan beberapa pembatasan di mana sumber dapat dipetakan ke target mana. Sumber dan target harus cocok untuk Vertex, Normal, Tangent dan Color. Tekstur berkoordinasi dari 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
(Texcoord dan Texcoord1) dapat dipetakan menjadi target berkoordinasi tekstur (Texcoord untuk semua tahap tekstur, atau TexcoordN untuk tahap tertentu).

Ada dua kasus penggunaan khas untuk BindChannels:

  • Shaders yang mengambil warna simpul ke akun.
  • Shaders yang menggunakan dua set UV.

Examples

// Maps the first UV set to the first texture stage
// and the second UV set to the second texture stage
BindChannels {
   Bind "Vertex", vertex
   Bind "texcoord", texcoord0
   Bind "texcoord1", texcoord1
}
// Maps the first UV set to all texture stages
// and uses vertex colors
BindChannels {
   Bind "Vertex", vertex
   Bind "texcoord", texcoord
   Bind "Color", color
}
ShaderLab: kombinasi tekstur legacy
HLSL di Unity