- Dokumentacja
- Funkcje klienta
- dxCreateShader
Funkcja
dxCreateShader
Tworzy shader z pliku .fx zasobu albo z kodu podanego jako tekst. W Trilogy Hub shader wykonuje podmianę tekstury: obraz podany przez dxSetShaderValue pod parametrem tekstury zastępuje tekstury świata wskazane przez engineApplyShaderToWorldTexture (np. własne billboardy, napisy na budynkach, oklejenie aut). Materiał gry zostaje (oświetlenie, odbicia), zmienia się sam obraz. Efekty pikselowe i wierzchołkowe z kodu HLSL nie są wykonywane.
Składnia
element, string dxCreateShader(string filepath [, int priority = 0, float maxDistance = 0, bool layered = false, string elementTypes = "world,vehicle,object,other"])Argumenty
filepathstring- Ścieżka do pliku .fx w zasobie albo kod shadera.
priorityint, opcjonalny = 0- Pierwszeństwo, gdy kilka shaderów trafia w tę samą teksturę.W MTA:SA inny typ: table macros = {}
maxDistancefloat, opcjonalny = 0- Dla zgodności ze starszymi skryptami.
layeredbool, opcjonalny = false- Dla zgodności ze starszymi skryptami.W MTA:SA inny typ: float maxDistance = 0
elementTypesstring, opcjonalny = "world,vehicle,object,other"- Dla zgodności ze starszymi skryptami.W MTA:SA inny typ: bool layered = false
Różnice względem MTA:SA
- Argumenty zaznaczone innym kolorem różnią się od MTA:SA.
- Tych argumentów z MTA:SA tu nie ma:
string elementTypes = "world,vehicle,object,other"
W MTA:SA
dxCreateShader(string filepath/raw_data, table macros = {}, float priority = 0, float maxDistance = 0, bool layered = false, string elementTypes = "world,vehicle,object,other")Zwraca
Element shader i nazwa techniki z pliku albo false, gdy pliku nie da się wczytać.
Przykład
local shader = dxCreateShader("texture gTexture; technique replace { pass P0 { Texture[0] = gTexture; } }")
local image = dxCreateTexture("billboard.png")
dxSetShaderValue(shader, "gTexture", image)
engineApplyShaderToWorldTexture(shader, "heat_02")
Zobacz też
dxSetShaderValueUstawia parametr shadera. Gdy parametr jest teksturą zadeklarowaną w kodzie .fx (albo shader nie ma żadnej), a wartością jest tekstura (dxCreateTexture, render target, przeglądarka) lub ścieżka obrazu, ten obraz staje się nową teksturą podmienianą w świecie. Liczby i wektory są zapamiętywane dla zgodności ze starszymi skryptami.engineApplyShaderToWorldTexturePodmienia teksturę świata San Andreas o podanej nazwie na obraz shadera. Nazwa może zawierać znaki*i?(np."vehiclegrunge*"). Bez elementu podmiana działa na wszystkich obiektach z tą teksturą, także wczytanych później; z elementem (pojazd, obiekt, postać) - tylko na nim. Nazwy tekstur widocznych teraz w grze zwracaengineGetVisibleTextureNames.engineApplyTextureToWorldTexturePodmienia teksturę świata na teksturę skryptu bez pisania shadera: wystarczy tekstura zdxCreateTexture, render target, zrzut ekranu albo przeglądarka. Działa jakengineApplyShaderToWorldTexture(wzorce*i?, opcjonalny element). Render target i przeglądarka dają żywy obraz, np. telewizor w grze pokazujący stronę WWW.