High Level Shader Language: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
SieBot (discussione | contributi)
Xqbot (discussione | contributi)
m Bot: Modifico: ko:고급 셰이더 언어; modifiche estetiche
Riga 3:
L''''HLSL''' permette di scrivere complessi calcoli grafici che possono essere eseguiti molto velocemente dalla [[GPU]], e rappresenta inoltre il primo passo per una [[pipeline grafica]] completamente programmabile. Un linguaggio analogo, il [[GLSL]] (OpenGL Shading Language), è presente nelle librerie grafiche [[OpenGL]].
 
== Struttura dell'HLSL ==
L'HLSL nasce come risposta all'esigenza di scrivere shader più velocemente che con il linguaggio [[asm]].
 
Questo ha una sintassi [[C (linguaggio)|C-Like]], con le dovute modifiche e integrazioni.
 
=== Uno shader di esempio ===
float4x4 matTotal : worldviewprojection;
float4x4 matWorld : world;
Riga 58:
Nel '''pass''' poi si specificano quali funzioni devono essere utilizzate e quale versione dello shader.
 
== Come si utilizza uno shader ==
 
=== Caricamento di uno Shader ===
'''Direct3D9''' ha vari modi per creare uno shader.
Le operazioni da fare, fondamentalmente, sono caricare lo shader, immettergli i valori che chiede (nel caso dello shader sopra, ha bisogno della matrice totale, della texture dell'oggetto da [[render]]izzare e della [[matrice]] world.
Riga 70:
In alternativa è possibile usare '''D3DXCompileShaderFromFile''' o '''D3DXAssembleShaderFromFile''', che compila e assembla uno shader da un file, creando una classe Pixel o Vertex Shader.
 
=== Immissione dei valori richiesti ===
 
Una volta caricato lo shader, si devono immettere i valori che intende.
Riga 82:
Una volta immessi i vari valori, è necessario chiamare la funzione CommitChanges() per aggiornare lo [[shader]].
 
=== Utilizzo dello shader nel rendering ===
 
Nella funzione del rendering, sarà necessario utilizzare lo shader per poterne vedere i risultati, in questo modo.
Riga 98:
</pre>
 
=== Versioni dell'HLSL ===
Il linguaggio HLSL si è evoluto nel tempo, arrivando a toccare 4 versioni principali e varie secondarie.
La differenza tra le versioni è, basilarmente, il limite massimo di istruzioni, oltre a una serie di aggiunte importanti.
 
== Voci correlate ==
* [[Shader]]
* [[DirectX]]
Riga 116:
[[fr:High Level Shader Language]]
[[ja:High Level Shader Language]]
[[ko:High고급 Level셰이더 Shader Language언어]]
[[nl:High Level Shader Language]]
[[ru:HLSL]]