2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2026-04-21 10:58:44 +00:00
Files
OpenAssetTools/raw/iw4/techniques/particle_cloud.tech.template
2026-04-19 23:02:19 +01:00

85 lines
1.9 KiB
Plaintext

#options MODE (default, spark, spark_fountain)
#switch PREMUL
#switch OUTDOOR
#switch SPOT
#if MODE == "spark"
#define SPARK_SUFFIX "_spark"
#elif MODE == "spark_fountain"
#define SPARK_SUFFIX "_sparkf"
#else
#define SPARK_SUFFIX ""
#endif
#ifdef OUTDOOR
#define OUTDOOR_SUFFIX "_outdoor"
#else
#define OUTDOOR_SUFFIX ""
#endif
#ifdef PREMUL
#define PREMUL_SUFFIX "_premul"
#else
#define PREMUL_SUFFIX ""
#endif
#ifdef SPOT
#define SPOT_SUFFIX "_spot"
#switch SHADOW
#ifdef SHADOW
#define SHADOW_SUFFIX "_shad"
#else
#define SHADOW_SUFFIX ""
#endif
#else
#define SPOT_SUFFIX ""
#define SHADOW_SUFFIX ""
#endif
#filename "particle_cloud" + SPARK_SUFFIX + OUTDOOR_SUFFIX + PREMUL_SUFFIX + SPOT_SUFFIX + SHADOW_SUFFIX + ".tech"
#set VERTEX_SHADER "\"" + "particle_cloud" + SPARK_SUFFIX + OUTDOOR_SUFFIX + SPOT_SUFFIX + ".hlsl" + "\""
#set PIXEL_SHADER "\"" + "particle_cloud" + SPARK_SUFFIX + OUTDOOR_SUFFIX + SPOT_SUFFIX + SHADOW_SUFFIX + PREMUL_SUFFIX + ".hlsl" + "\""
{
stateMap "default";
vertexShader 3.0 VERTEX_SHADER
{
worldViewMatrix = constant.worldViewMatrix;
#if MODE == "spark"
worldViewMatrix1 = constant.worldViewMatrix1;
worldViewMatrix2 = constant.worldViewMatrix2;
#endif
#ifdef OUTDOOR
worldOutdoorLookupMatrix = constant.worldOutdoorLookupMatrix;
#endif
projectionMatrix = constant.projectionMatrix;
#ifdef SPOT
inverseViewMatrix = constant.inverseViewMatrix;
#endif
}
pixelShader 3.0 PIXEL_SHADER
{
colorMapSampler = material.colorMap;
#ifdef OUTDOOR
outdoorMapSampler = sampler.outdoor;
#endif
#ifdef SHADOW
shadowmapSamplerSpot = sampler.shadowmapSpot;
#endif
#ifdef SPOT
lightSpotDir = constant.lightSpotDir;
lightSpotFactors = constant.lightSpotFactors;
lightPosition = constant.lightPosition;
lightDiffuse = constant.lightDiffuse;
#endif
}
vertex.position = code.position;
vertex.texcoord[0] = code.texcoord[0];
}