Advertisement
Guest User

ENB - NLA enbeffect.fx - Broken AO

a guest
Mar 6th, 2016
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.34 KB | None | 0 0
  1. //++++++++++++++++++++++++++++++++++++++++++++
  2. // ENBSeries effect file
  3. // visit http://enbdev.com for updates
  4. // Copyright (c) 2007-2013 Boris Vorontsov
  5. //++++++++++++++++++++++++++++++++++++++++++++
  6.  
  7.  
  8.  
  9. //post processing mode. Change value (could be 1, 2, 3, 4). Every mode have own internal parameters, look below
  10. #ifndef POSTPROCESS
  11. #define POSTPROCESS 3
  12. #endif
  13.  
  14. //use original game processing first, then mine
  15. //#define APPLYGAMECOLORCORRECTION
  16.  
  17.  
  18.  
  19. //+++++++++++++++++++++++++++++
  20. //internal parameters, can be modified
  21. //+++++++++++++++++++++++++++++
  22. //modify these values to tweak various color processing
  23. //POSTPROCESS 1
  24. float EAdaptationMinV1=0.01;
  25. float EAdaptationMaxV1=0.07;
  26. float EContrastV1=0.95;
  27. float EColorSaturationV1=1.0;
  28. float EToneMappingCurveV1=6.0;
  29.  
  30. //POSTPROCESS 2
  31. //float EBrightnessV2=2.5;
  32. float EAdaptationMinV2=0.05;
  33. float EAdaptationMaxV2=0.05;//0.125;
  34. float EToneMappingCurveV2=8.0;
  35. float EIntensityContrastV2=1.0;
  36. float EColorSaturationV2=1.0;
  37. float EToneMappingOversaturationV2=180.0;
  38.  
  39. //POSTPROCESS 3
  40. float EAdaptationMinV3=0.05;
  41. float EAdaptationMaxV3=0.125;
  42. float EToneMappingCurveV3=4.0;
  43. float EToneMappingOversaturationV3=60.0;
  44.  
  45. //POSTPROCESS 4
  46. float EAdaptationMinV4=0.2;
  47. float EAdaptationMaxV4=0.125;
  48. float EBrightnessCurveV4=0.7;
  49. float EBrightnessMultiplierV4=0.45;
  50. float EBrightnessToneMappingCurveV4=0.5;
  51.  
  52.  
  53.  
  54. //parameters for ldr color correction, if enabled
  55. float ECCGamma
  56. <
  57. string UIName="CC: Gamma";
  58. string UIWidget="Spinner";
  59. float UIMin=0.2;//not zero!!!
  60. float UIMax=5.0;
  61. > = {1.0};
  62.  
  63. float ECCInBlack
  64. <
  65. string UIName="CC: In black";
  66. string UIWidget="Spinner";
  67. float UIMin=0.0;
  68. float UIMax=1.0;
  69. > = {0.0};
  70.  
  71. float ECCInWhite
  72. <
  73. string UIName="CC: In white";
  74. string UIWidget="Spinner";
  75. float UIMin=0.0;
  76. float UIMax=1.0;
  77. > = {1.0};
  78.  
  79. float ECCOutBlack
  80. <
  81. string UIName="CC: Out black";
  82. string UIWidget="Spinner";
  83. float UIMin=0.0;
  84. float UIMax=1.0;
  85. > = {0.0};
  86.  
  87. float ECCOutWhite
  88. <
  89. string UIName="CC: Out white";
  90. string UIWidget="Spinner";
  91. float UIMin=0.0;
  92. float UIMax=1.0;
  93. > = {1.0};
  94.  
  95. float ECCBrightness
  96. <
  97. string UIName="CC: Brightness";
  98. string UIWidget="Spinner";
  99. float UIMin=0.0;
  100. float UIMax=10.0;
  101. > = {1.0};
  102.  
  103. float ECCContrastGrayLevel
  104. <
  105. string UIName="CC: Contrast gray level";
  106. string UIWidget="Spinner";
  107. float UIMin=0.01;
  108. float UIMax=0.99;
  109. > = {0.5};
  110.  
  111. float ECCContrast
  112. <
  113. string UIName="CC: Contrast";
  114. string UIWidget="Spinner";
  115. float UIMin=0.0;
  116. float UIMax=10.0;
  117. > = {1.0};
  118.  
  119. float ECCSaturation
  120. <
  121. string UIName="CC: Saturation";
  122. string UIWidget="Spinner";
  123. float UIMin=0.0;
  124. float UIMax=10.0;
  125. > = {1.0};
  126.  
  127. float ECCDesaturateShadows
  128. <
  129. string UIName="CC: Desaturate shadows";
  130. string UIWidget="Spinner";
  131. float UIMin=0.0;
  132. float UIMax=1.0;
  133. > = {0.0};
  134.  
  135. float3 ECCColorBalanceShadows <
  136. string UIName="CC: Color balance shadows";
  137. string UIWidget="Color";
  138. > = {0.5, 0.5, 0.5};
  139.  
  140. float3 ECCColorBalanceHighlights <
  141. string UIName="CC: Color balance highlights";
  142. string UIWidget="Color";
  143. > = {0.5, 0.5, 0.5};
  144.  
  145. float3 ECCChannelMixerR <
  146. string UIName="CC: Channel mixer R";
  147. string UIWidget="Color";
  148. > = {1.0, 0.0, 0.0};
  149.  
  150. float3 ECCChannelMixerG <
  151. string UIName="CC: Channel mixer G";
  152. string UIWidget="Color";
  153. > = {0.0, 1.0, 0.0};
  154.  
  155. float3 ECCChannelMixerB <
  156. string UIName="CC: Channel mixer B";
  157. string UIWidget="Color";
  158. > = {0.0, 0.0, 1.0};
  159.  
  160.  
  161.  
  162. //+++++++++++++++++++++++++++++
  163. //external parameters, do not modify
  164. //+++++++++++++++++++++++++++++
  165. //keyboard controlled temporary variables (in some versions exists in the config file). Press and hold key 1,2,3...8 together with PageUp or PageDown to modify. By default all set to 1.0
  166. float4 tempF1; //0,1,2,3
  167. float4 tempF2; //5,6,7,8
  168. float4 tempF3; //9,0
  169. //x=generic timer in range 0..1, period of 16777216 ms (4.6 hours), w=frame time elapsed (in seconds)
  170. float4 Timer;
  171. //x=Width, y=1/Width, z=ScreenScaleY, w=1/ScreenScaleY
  172. float4 ScreenSize;
  173. //changes in range 0..1, 0 means that night time, 1 - day time
  174. float ENightDayFactor;
  175. //changes 0 or 1. 0 means that exterior, 1 - interior
  176. float EInteriorFactor;
  177. //enb version of bloom applied, ignored if original post processing used
  178. float EBloomAmount;
  179.  
  180.  
  181.  
  182. texture2D texs0;//color falloutnv
  183. texture2D texs1;//bloom falloutnv
  184. texture2D texs3;//bloom enb
  185. texture2D texs4;//adaptation enb
  186. texture2D texs7;//palette enb
  187.  
  188. sampler2D _s0 = sampler_state
  189. {
  190. Texture = <texs0>;
  191. MinFilter = POINT;//
  192. MagFilter = POINT;//
  193. MipFilter = NONE;//LINEAR;
  194. AddressU = Clamp;
  195. AddressV = Clamp;
  196. SRGBTexture=FALSE;
  197. MaxMipLevel=0;
  198. MipMapLodBias=0;
  199. };
  200.  
  201. sampler2D _s1 = sampler_state
  202. {
  203. Texture = <texs1>;
  204. MinFilter = LINEAR;//
  205. MagFilter = LINEAR;//
  206. MipFilter = NONE;//LINEAR;
  207. AddressU = Clamp;
  208. AddressV = Clamp;
  209. SRGBTexture=FALSE;
  210. MaxMipLevel=0;
  211. MipMapLodBias=0;
  212. };
  213.  
  214. sampler2D _s3 = sampler_state
  215. {
  216. Texture = <texs3>;
  217. MinFilter = LINEAR;//
  218. MagFilter = LINEAR;//
  219. MipFilter = NONE;//LINEAR;
  220. AddressU = Clamp;
  221. AddressV = Clamp;
  222. SRGBTexture=FALSE;
  223. MaxMipLevel=0;
  224. MipMapLodBias=0;
  225. };
  226.  
  227. sampler2D _s4 = sampler_state
  228. {
  229. Texture = <texs4>;
  230. MinFilter = LINEAR;//
  231. MagFilter = LINEAR;//
  232. MipFilter = NONE;//LINEAR;
  233. AddressU = Clamp;
  234. AddressV = Clamp;
  235. SRGBTexture=FALSE;
  236. MaxMipLevel=0;
  237. MipMapLodBias=0;
  238. };
  239.  
  240. sampler2D _s7 = sampler_state
  241. {
  242. Texture = <texs7>;
  243. MinFilter = LINEAR;
  244. MagFilter = LINEAR;
  245. MipFilter = NONE;
  246. AddressU = Clamp;
  247. AddressV = Clamp;
  248. SRGBTexture=FALSE;
  249. MaxMipLevel=0;
  250. MipMapLodBias=0;
  251. };
  252.  
  253. struct VS_OUTPUT_POST
  254. {
  255. float4 vpos : POSITION;
  256. float2 txcoord0 : TEXCOORD0;
  257. };
  258. struct VS_INPUT_POST
  259. {
  260. float3 pos : POSITION;
  261. float2 txcoord0 : TEXCOORD0;
  262. };
  263.  
  264.  
  265.  
  266. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  267. //
  268. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  269. VS_OUTPUT_POST VS_Quad(VS_INPUT_POST IN)
  270. {
  271. VS_OUTPUT_POST OUT;
  272.  
  273. OUT.vpos=float4(IN.pos.x,IN.pos.y,IN.pos.z,1.0);
  274.  
  275. OUT.txcoord0.xy=IN.txcoord0.xy;
  276.  
  277. return OUT;
  278. }
  279.  
  280.  
  281.  
  282. //falloutnv shader specific externals, do not modify
  283. float4 _c1 : register(c1);
  284. float4 _c2 : register(c2);
  285. float4 _c19 : register(c19);
  286. float4 _c20 : register(c20);
  287. float4 _c22 : register(c22);
  288.  
  289. float4 PS_C1DAE3F7(VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
  290. {
  291. float4 _oC0=0.0; //output
  292.  
  293. float4 r0;
  294. float4 r1;
  295. float4 r2;
  296. float4 r3;
  297. float4 r4;
  298. float4 r5;
  299. float4 r6;
  300. float4 r7;
  301. float4 r8;
  302. float4 r9;
  303. float4 r10;
  304. float4 r11;
  305.  
  306.  
  307. float4 _v0=0.0;
  308.  
  309. _v0.xy=IN.txcoord0.xy;
  310. r1=tex2D(_s0, _v0.xy); //color
  311.  
  312. //apply bloom
  313. float4 xcolorbloom=tex2D(_s3, _v0.xy);
  314.  
  315. xcolorbloom.xyz=xcolorbloom-r1;
  316. xcolorbloom.xyz=max(xcolorbloom, 0.0);
  317. r1.xyz+=xcolorbloom*EBloomAmount;
  318.  
  319. r11=r1; //my bypass
  320. _oC0.xyz=r1.xyz; //for future use without game color corrections
  321.  
  322.  
  323. #ifdef APPLYGAMECOLORCORRECTION
  324. //apply original
  325.  
  326. // float3 BlurScale;
  327. // float4 Cinematic;
  328. // sampler2D DestBlend;
  329. // float4 Fade;
  330. // float4 HDRParam;
  331. // sampler2D Src0;
  332. // float4 Tint;
  333. // Registers:
  334. // Name Reg Size
  335. // ------------ ----- ----
  336. // HDRParam c1 1
  337. // BlurScale c2 1
  338. // Cinematic c19 1
  339. // Tint c20 1
  340. // Fade c22 1
  341. // Src0 s0 1
  342. // DestBlend s1 1
  343. //todo apply uv offsets to coordinates
  344. r0=tex2D(_s0, IN.txcoord0.xy);//r0=tex2D(_s0, IN.txcoord1.xy);
  345. r1=tex2D(_s1, IN.txcoord0.xy);
  346. r0.w=max(r1.w, _c1.x);
  347. r0.w=1.0/r0.w;
  348. r1.w=r0.w * 0.5;
  349. r0.w=r0.w * _c1.x;
  350. r1.xyz=r1 * r1.w;
  351. r2.xyz=max(r1, 0.0);
  352. r0.xyz=r0.w * r0 + r2.xyz;
  353. r0.w=dot(r0.xyz, float3(0.298999995, 0.587000012, 0.114));
  354. r1.xyz=lerp(r0.w, r0, _c19.x);
  355. r0.xyz=_c20 * r0.w - r1;
  356. r0.xyz=_c20.w * r0 + r1;
  357. r0.xyz=_c19.w * r0 - _c19.y;
  358. r0.xyz=_c19.z * r0 + _c19.y;
  359. r1.xyz=lerp(r0, _c22, _c22.w);
  360. r1.w=_c2.z;
  361. _oC0=r1;
  362.  
  363. #endif //APPLYGAMECOLORCORRECTION
  364.  
  365.  
  366.  
  367. float4 color=_oC0;
  368.  
  369.  
  370. //adaptation in time
  371. float4 Adaptation=tex2D(_s4, 0.5);
  372. float grayadaptation=max(max(Adaptation.x, Adaptation.y), Adaptation.z);
  373.  
  374. #if (POSTPROCESS==1)
  375.  
  376. grayadaptation=max(grayadaptation, 0.0);
  377. grayadaptation=min(grayadaptation, 50.0);
  378. color.xyz=color.xyz/(grayadaptation*EAdaptationMaxV1+EAdaptationMinV1);//*tempF1.x
  379.  
  380. float cgray=dot(color.xyz, float3(0.27, 0.67, 0.06));
  381. cgray=pow(cgray, EContrastV1);
  382. float3 poweredcolor=pow(color.xyz, EColorSaturationV1);
  383. float newgray=dot(poweredcolor.xyz, float3(0.27, 0.67, 0.06));
  384. color.xyz=poweredcolor.xyz*cgray/(newgray+0.0001);
  385.  
  386. float3 luma=color.xyz;
  387. float lumamax=300.0;
  388. color.xyz=(color.xyz * (1.0 + color.xyz/lumamax))/(color.xyz + EToneMappingCurveV1);
  389.  
  390. #endif
  391.  
  392.  
  393.  
  394. #if (POSTPROCESS==2)
  395.  
  396. grayadaptation=max(grayadaptation, 0.0);
  397. grayadaptation=min(grayadaptation, 50.0);
  398. color.xyz=color.xyz/(grayadaptation*EAdaptationMaxV2+EAdaptationMinV2);//*tempF1.x
  399.  
  400. //color.xyz*=EBrightnessV2;
  401. color.xyz+=0.000001;
  402. float3 xncol=normalize(color.xyz);
  403. float3 scl=color.xyz/xncol.xyz;
  404. scl=pow(scl, EIntensityContrastV2);
  405. xncol.xyz=pow(xncol.xyz, EColorSaturationV2);
  406. color.xyz=scl*xncol.xyz;
  407.  
  408. float lumamax=EToneMappingOversaturationV2;
  409. color.xyz=(color.xyz * (1.0 + color.xyz/lumamax))/(color.xyz + EToneMappingCurveV2);
  410.  
  411. #endif
  412.  
  413.  
  414. #if (POSTPROCESS==3)
  415.  
  416. grayadaptation=max(grayadaptation, 0.0);
  417. grayadaptation=min(grayadaptation, 50.0);
  418. color.xyz=color.xyz/(grayadaptation*EAdaptationMaxV3+EAdaptationMinV3);//*tempF1.x
  419.  
  420. float lumamax=EToneMappingOversaturationV3;
  421. color.xyz=(color.xyz * (1.0 + color.xyz/lumamax))/(color.xyz + EToneMappingCurveV3);
  422.  
  423. #endif
  424.  
  425. //color.xyz=tex2D(_s0, _v0.xy) + xcolorbloom.xyz*float3(0.7, 0.6, 1.0)*0.5;
  426. //color.xyz=tex2D(_s0, _v0.xy) + xcolorbloom.xyz*float3(0.7, 0.6, 1.0)*0.5;
  427. //color.xyz*=0.7;
  428.  
  429.  
  430. #if (POSTPROCESS==4)
  431.  
  432. grayadaptation=max(grayadaptation, 0.0);
  433. grayadaptation=min(grayadaptation, 50.0);
  434. color.xyz=color.xyz/(grayadaptation*EAdaptationMaxV4+EAdaptationMinV4);
  435.  
  436. float Y = dot(color.xyz, float3(0.299, 0.587, 0.114)); //0.299 * R + 0.587 * G + 0.114 * B;
  437. float U = dot(color.xyz, float3(-0.14713, -0.28886, 0.436)); //-0.14713 * R - 0.28886 * G + 0.436 * B;
  438. float V = dot(color.xyz, float3(0.615, -0.51499, -0.10001)); //0.615 * R - 0.51499 * G - 0.10001 * B;
  439. Y=pow(Y, EBrightnessCurveV4);
  440. Y=Y*EBrightnessMultiplierV4;
  441. // Y=Y/(Y+EBrightnessToneMappingCurveV4);
  442. // float desaturatefact=saturate(Y*Y*Y*1.7);
  443. // U=lerp(U, 0.0, desaturatefact);
  444. // V=lerp(V, 0.0, desaturatefact);
  445. color.xyz=V * float3(1.13983, -0.58060, 0.0) + U * float3(0.0, -0.39465, 2.03211) + Y;
  446.  
  447. color.xyz=max(color.xyz, 0.0);
  448. color.xyz=color.xyz/(color.xyz+EBrightnessToneMappingCurveV4);
  449.  
  450. #endif
  451.  
  452.  
  453.  
  454. //pallete texture (0.082+ version feature)
  455. #ifdef E_CC_PALETTE
  456. color.rgb=saturate(color.rgb);
  457. float3 brightness=Adaptation.xyz;//tex2D(_s4, 0.5);//adaptation luminance
  458. // brightness=saturate(brightness);//old version from ldr games
  459. brightness=(brightness/(brightness+1.0));//new version
  460. brightness=max(brightness.x, max(brightness.y, brightness.z));//new version
  461. float3 palette;
  462. float4 uvsrc=0.0;
  463. uvsrc.y=brightness.r;
  464. uvsrc.x=color.r;
  465. palette.r=tex2Dlod(_s7, uvsrc).r;
  466. uvsrc.x=color.g;
  467. uvsrc.y=brightness.g;
  468. palette.g=tex2Dlod(_s7, uvsrc).g;
  469. uvsrc.x=color.b;
  470. uvsrc.y=brightness.b;
  471. palette.b=tex2Dlod(_s7, uvsrc).b;
  472. color.rgb=palette.rgb;
  473. #endif //E_CC_PALETTE
  474.  
  475.  
  476.  
  477. #ifdef E_CC_PROCEDURAL
  478. float tempgray;
  479. float4 tempvar;
  480. float3 tempcolor;
  481. /*
  482. //these replaced by "levels"
  483. //+++ gamma
  484. if (ECCGamma!=1.0)
  485. color=pow(color, 1.0/ECCGamma);
  486.  
  487. //+++ brightness like in photoshop
  488. color=color+ECCAditiveBrightness;
  489.  
  490. //+++ lightness
  491. tempvar.x=saturate(ELightness);
  492. tempvar.y=saturate(1.0+ECCLightness);
  493. color=tempvar.x*(1.0-color) + (tempvar.y*color);
  494. */
  495. //+++ levels like in photoshop, including gamma, lightness, additive brightness
  496. color=max(color-ECCInBlack, 0.0) / max(ECCInWhite-ECCInBlack, 0.0001);
  497. if (ECCGamma!=1.0) color=pow(color, ECCGamma);
  498. color=color*(ECCOutWhite-ECCOutBlack) + ECCOutBlack;
  499.  
  500. //+++ brightness
  501. color=color*ECCBrightness;
  502.  
  503. //+++ contrast
  504. color=(color-ECCContrastGrayLevel) * ECCContrast + ECCContrastGrayLevel;
  505.  
  506. //+++ saturation
  507. tempgray=dot(color, 0.3333);
  508. color=lerp(tempgray, color, ECCSaturation);
  509.  
  510. //+++ desaturate shadows
  511. tempgray=dot(color, 0.3333);
  512. tempvar.x=saturate(1.0-tempgray);
  513. tempvar.x*=tempvar.x;
  514. tempvar.x*=tempvar.x;
  515. color=lerp(color, tempgray, ECCDesaturateShadows*tempvar.x);
  516.  
  517. //+++ color balance
  518. color=saturate(color);
  519. tempgray=dot(color, 0.3333);
  520. float2 shadow_highlight=float2(1.0-tempgray, tempgray);
  521. shadow_highlight*=shadow_highlight;
  522. color.rgb+=(ECCColorBalanceHighlights*2.0-1.0)*color * shadow_highlight.x;
  523. color.rgb+=(ECCColorBalanceShadows*2.0-1.0)*(1.0-color) * shadow_highlight.y;
  524.  
  525. //+++ channel mixer
  526. tempcolor=color;
  527. color.r=dot(tempcolor, ECCChannelMixerR);
  528. color.g=dot(tempcolor, ECCChannelMixerG);
  529. color.b=dot(tempcolor, ECCChannelMixerB);
  530. #endif //E_CC_PROCEDURAL
  531.  
  532. _oC0.w=1.0;
  533. _oC0.xyz=color.xyz;
  534. return _oC0;
  535. }
  536.  
  537.  
  538.  
  539. //switch between vanilla and mine post processing
  540. technique Shader_C1DAE3F7 <string UIName="ENBSeries";>
  541. {
  542. pass p0
  543. {
  544. VertexShader = compile vs_3_0 VS_Quad();
  545. PixelShader = compile ps_3_0 PS_C1DAE3F7();
  546.  
  547. ColorWriteEnable=ALPHA|RED|GREEN|BLUE;
  548. ZEnable=FALSE;
  549. ZWriteEnable=FALSE;
  550. CullMode=NONE;
  551. AlphaTestEnable=FALSE;
  552. AlphaBlendEnable=FALSE;
  553. SRGBWRITEENABLE=FALSE;
  554. }
  555. }
  556.  
  557.  
  558.  
  559. //original shader of post processing
  560. technique Shader_ORIGINALPOSTPROCESS <string UIName="Vanilla";>
  561. {
  562. pass p0
  563. {
  564. //VertexShader = compile vs_3_0 VS_Quad();
  565. VertexShader=
  566. asm
  567. {
  568. // Parameters:
  569. // float4 geometryOffset;
  570. // float4 texOffset0;
  571. // float4 texOffset1;
  572. // Registers:
  573. // Name Reg Size
  574. // -------------- ----- ----
  575. // geometryOffset c0 1
  576. // texOffset0 c1 1
  577. // texOffset1 c2 1
  578. //
  579. vs_1_1
  580. def c3, 2, -2, 0, 0
  581. dcl_position v0
  582. dcl_texcoord v1
  583. mov r0.xy, c0
  584. mad oPos.xy, r0, -c3, v0
  585. add oT0.xy, v1, c1
  586. add oT1.xy, v1, c2
  587. mov oPos.zw, v0
  588. };
  589. PixelShader=
  590. asm
  591. {
  592. // Parameters:
  593. // float3 BlurScale;
  594. // float4 Cinematic;
  595. // sampler2D DestBlend;
  596. // float4 Fade;
  597. // float4 HDRParam;
  598. // sampler2D Src0;
  599. // float4 Tint;
  600. // Registers:
  601. // Name Reg Size
  602. // ------------ ----- ----
  603. // HDRParam c1 1
  604. // BlurScale c2 1
  605. // Cinematic c19 1
  606. // Tint c20 1
  607. // Fade c22 1
  608. // Src0 s0 1
  609. // DestBlend s1 1
  610. //
  611. ps_2_x
  612. def c0, 0.5, 0, 0, 0
  613. def c3, 0.298999995, 0.587000012, 0.114, 0
  614. dcl t0.xy
  615. dcl t1.xy
  616. dcl_2d s0
  617. dcl_2d s1
  618. texld r0, t1, s1
  619. texld r1, t0, s0
  620. max r0.w, r1.w, c1.x
  621. rcp r0.w, r0.w
  622. mul r1.w, r0.w, c0.x
  623. mul r0.w, r0.w, c1.x
  624. mul r1.xyz, r1, r1.w
  625. max r2.xyz, r1, c0.y
  626. mad r0.xyz, r0.w, r0, r2
  627. dp3 r0.w, r0, c3
  628. lrp r1.xyz, c19.x, r0, r0.w
  629. mad r0.xyz, r0.w, c20, -r1
  630. mad r0.xyz, c20.w, r0, r1
  631. mad r0.xyz, c19.w, r0, -c19.y
  632. mad r0.xyz, c19.z, r0, c19.y
  633. lrp r1.xyz, c22.w, c22, r0
  634. mov r1.w, c2.z
  635. mov oC0, r1
  636. };
  637. ColorWriteEnable=ALPHA|RED|GREEN|BLUE;
  638. ZEnable=FALSE;
  639. ZWriteEnable=FALSE;
  640. CullMode=NONE;
  641. AlphaTestEnable=FALSE;
  642. AlphaBlendEnable=FALSE;
  643. SRGBWRITEENABLE=FALSE;
  644. }
  645. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement