ShaderLab: pemetaan saluran data legacy vertex
Petunjuk praprosesor di HLSL

HLSL di Unity

Dalam Unity, Anda menggunakan bahasa pemrograman HLSL untuk menulis program shaderProgram yang berjalan di GPU. More info
Lihat di Glossary
.

Bagian manual ini mencakup informasi tentang menggunakan HLSL dengan cara khusus Unity. Untuk informasi umum tentang menulis HLSL, lihat Dokumentasi HLSL Microsoft.

Sitemap Unity awalnya menggunakan bahasa Note:, maka nama beberapa kata kunci Unity (Cg) dan ekstensi file (CGPROGRAM). Unity tidak lagi menggunakan Cg, tetapi nama-nama ini masih digunakan..cginc). Unity no longer uses Cg, but these names are still in use.

Menambahkan kode HLSL ke kode ShaderLab Anda

Anda menempatkan kode HLSL di dalam blok kode dalam kode ShaderLabBahasa Unity untuk mendefinisikan struktur benda-benda Shader. More info
Lihat di Glossary
Anda. Mereka biasanya terlihat seperti ini:

  Pass {
      // ... the usual pass state setup ...
      
      HLSLPROGRAM
      // compilation directives for this snippet, e.g.:
      #pragma vertex vert
      #pragma fragment frag
      
      // the shader program itself
      
      ENDHLSL

      // ... the rest of pass ...
  }

Untuk informasi lebih lanjut tentang blok kode naungan, lihat ShaderLab: menambahkan program naungan.

HLSL syntax

HLSL memiliki dua sintaks: sintaks bergaya langsungX 9, dan sintaks gaya DirectX 10 + yang lebih modern. Perbedaannya sebagian besar dalam bagaimana fungsi pengambilan tekstur bekerja:

  • Sintaks legacy menggunakan sampler2D, tex2D() dan fungsi serupa. Ini sintaks bekerja pada semua platform.
  • Sintaks DX10 + menggunakan fungsi Tekstur2D, SamplerState dan .Sample(). Beberapa bentuk sintaks ini tidak bekerja pada platform OpenGL, karena tekstur dan sampler tidak berbeda benda di OpenGL.

Unity menyediakan perpustakaan naungan yang mengandung makro praprosesor untuk membantu Anda mengelola perbedaan ini. Untuk informasi lebih lanjut, lihat makro naungan built-in.

ShaderLab: pemetaan saluran data legacy vertex
Petunjuk praprosesor di HLSL