High Level Shader Language: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: Tolgo: es:HLSL |
m +template |
||
(13 versioni intermedie di 13 utenti non mostrate) | |||
Riga 1:
{{F|linguaggi di programmazione|febbraio 2012}}
L''''High Level Shader Language''' o '''HLSL''' è un linguaggio sviluppato da [[Microsoft]] per la creazione di [[shader]] da usare in [[DirectX]], ed è molto simile al linguaggio [[Cg (linguaggio di programmazione)|Cg]] di [[nVidia]].▼
|immagine =
|didascalia =
|data =
|versione =
|utilizzo =
|paradigmi =
|tipizzazione =
|specifiche =
|estensione =
|influenzato_da =
|ha_influenzato =
|implementazione_riferimento =
|sistema_operativo =
|lingua =
|licenza =
}}
▲L''''High Level Shader Language''' o '''HLSL''' è un linguaggio sviluppato da [[Microsoft]] per la creazione di [[shader]] da usare in [[DirectX]], ed è molto simile al linguaggio [[Cg (linguaggio di programmazione)|Cg]] di [[
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]].▼
▲L''''HLSL''' permette di scrivere complessi calcoli grafici che possono essere eseguiti molto velocemente dalla [[Graphics processing unit|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]].▼
▲== Struttura dell'HLSL ==
▲L'HLSL nasce come risposta all'esigenza di scrivere shader più velocemente che con il linguaggio [[assembly|asm]].
Questo ha una sintassi [[C (linguaggio)|C-Like]], con le dovute modifiche e integrazioni.
=== Uno shader di esempio ===
float4x4 matTotal
float4x4 matWorld
texture Text;
sampler TextSampler = sampler_state
Line 58 ⟶ 77:
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.
Line 70 ⟶ 89:
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.
Line 82 ⟶ 101:
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.
Line 98 ⟶ 117:
</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 è
== Voci correlate ==
* [[Shader]]
* [[DirectX]]
Line 108 ⟶ 127:
* [[GLSL]]
== Collegamenti esterni ==
▲[[Categoria:Linguaggi di programmazione]]
* {{Collegamenti esterni}}
[[Categoria:Linguaggi di programmazione]]
|