ppessao.c 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. //!SSAO - PostProcessEffectType.SSAO
  2. class PPESSAO: PPEClassBase
  3. {
  4. static const int POSTPROCESS_OPTION_VALUE_LOW = 0;
  5. static const int POSTPROCESS_OPTION_VALUE_MEDIUM = 1;
  6. static const int POSTPROCESS_OPTION_VALUE_HIGH = 2;
  7. static const int POSTPROCESS_OPTION_VALUE_HIGHEST = 3;
  8. static const int PARAM_NUMPASSES = 0;
  9. static const int PARAM_INTENSITY = 1;
  10. static const int PARAM_RADIUSNEAR = 2;
  11. static const int PARAM_RADIUSFAR = 3;
  12. static const int PARAM_COSANGLE0 = 4;
  13. static const int PARAM_COSANGLE1 = 5;
  14. static const int PARAM_MAXDISTANCE = 6;
  15. static const int PARAM_MAXBLURDISTANCE = 7;
  16. static const int PARAM_NEARINTENSITY = 8;
  17. static const int PARAM_FARINTENSITY = 9;
  18. static const int PARAM_FARINTENSITYDIST = 10;
  19. static const int PARAM_NUMBLURPASSES = 11;
  20. static const int PARAM_BLURSIZE = 12;
  21. static const int PARAM_COLORAMOUNT = 13;
  22. static const int PARAM_COLORSSAOAMOUNT = 14;
  23. override int GetPostProcessEffectID()
  24. {
  25. return PostProcessEffectType.SSAO;
  26. }
  27. override string GetDefaultMaterialPath()
  28. {
  29. //return "Graphics/Materials/postprocess/hbao"; //"default-default", with no option taken into account (c++)
  30. GameOptions options = new GameOptions;
  31. ListOptionsAccess loa = ListOptionsAccess.Cast( options.GetOptionByType( OptionAccessType.AT_POSTPROCESS_EFFECTS ) );
  32. string ret = "";
  33. switch (loa.GetIndex())
  34. {
  35. case POSTPROCESS_OPTION_VALUE_LOW:
  36. ret = "Graphics/Materials/postprocess/hbao_low";
  37. break;
  38. case POSTPROCESS_OPTION_VALUE_MEDIUM:
  39. ret = "Graphics/Materials/postprocess/hbao_medium";
  40. break;
  41. case POSTPROCESS_OPTION_VALUE_HIGH:
  42. ret = "Graphics/Materials/postprocess/hbao_high";
  43. break;
  44. case POSTPROCESS_OPTION_VALUE_HIGHEST:
  45. ret = "Graphics/Materials/postprocess/hbao_highest";
  46. break;
  47. }
  48. return ret;
  49. }
  50. //TODO - defaults are taken from c++ directly, instead of material files! Add support for options switching
  51. override void RegisterMaterialParameters()
  52. {
  53. RegisterParameterScalarInt(PARAM_NUMPASSES,"NumPasses",2,2,8);
  54. RegisterParameterScalarFloat(PARAM_INTENSITY,"Intensity",15.0,0.0,1000.0);
  55. RegisterParameterScalarFloat(PARAM_RADIUSNEAR,"RadiusNear",60.0,0.0,200.0);
  56. RegisterParameterScalarFloat(PARAM_RADIUSFAR,"RadiusFar",5.0,0.0,200.0);
  57. RegisterParameterScalarFloat(PARAM_COSANGLE0,"CosAngle0",0.1,0.0,2.0);
  58. RegisterParameterScalarFloat(PARAM_COSANGLE1,"CosAngle1",1.0,0.0,2.0);
  59. RegisterParameterScalarFloat(PARAM_MAXDISTANCE,"MaxDistance",1.5,0.0,10000.0);
  60. RegisterParameterScalarFloat(PARAM_MAXBLURDISTANCE,"MaxBlurDistance",0.2,0.0,10.0);
  61. RegisterParameterScalarFloat(PARAM_NEARINTENSITY,"NearIntensity",0.2,0.0,1.0);
  62. RegisterParameterScalarFloat(PARAM_FARINTENSITY,"FarIntensity",5.0,0.0,20.0);
  63. RegisterParameterScalarFloat(PARAM_FARINTENSITYDIST,"FarIntensityDistance",20.0,0.0,1000.0);
  64. RegisterParameterScalarInt(PARAM_NUMBLURPASSES,"NumBlurPasses",1,0,8);
  65. RegisterParameterScalarInt(PARAM_BLURSIZE,"BlurSize",1.0,1.0,4.0);
  66. RegisterParameterScalarFloat(PARAM_COLORAMOUNT,"ColorAmount",0.5,0.0,1.0);
  67. RegisterParameterScalarFloat(PARAM_COLORSSAOAMOUNT,"ColorSsaoAmount",0.25,0.0,1.0);
  68. }
  69. };