BsRenderBeastOptions.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #pragma once
  2. #include "BsRenderBeastPrerequisites.h"
  3. #include "BsRenderer.h"
  4. namespace BansheeEngine
  5. {
  6. /**
  7. * @brief Texture filtering options for RenderBeast.
  8. */
  9. enum class RenderBeastFiltering
  10. {
  11. Bilinear, /**< Sample linearly in X and Y directions within a texture mip level. */
  12. Trilinear, /**< Sample bilinearly and also between texture mip levels to hide the mip transitions. */
  13. Anisotropic /**< High quality dynamic filtering that improves quality of angled surfaces */
  14. };
  15. /**
  16. * @brief A set of options used for controlling the
  17. * rendering of the RenderBeast renderer.
  18. */
  19. struct BS_BSRND_EXPORT RenderBeastOptions : public CoreRendererOptions
  20. {
  21. /**
  22. * @brief Type of filtering to use for all textures on scene elements.
  23. */
  24. RenderBeastFiltering filtering = RenderBeastFiltering::Anisotropic;
  25. /**
  26. * @brief Maximum number of samples to be used when performing anisotropic
  27. * filtering. Only relevant if ::filter is set to RenderBeastFiltering::Anisotropic.
  28. */
  29. UINT32 anisotropyMax = 16;
  30. /**
  31. * @brief Number of samples per pixel. More samples means less aliasing but this may
  32. * seriously increase fillrate and memory consumption on the GPU.
  33. */
  34. UINT32 msaa = 4;
  35. /**
  36. * All colors output from shaders will be automatically converted to gamma
  37. * space when written to render target(s). Normally used when the renderer
  38. * performs calculations in linear space.
  39. */
  40. bool gammaCorrect = true;
  41. /**
  42. * High dynamic range allows light intensity to be more correctly recorded
  43. * when rendering by allowing for a larger range of values. The stored light
  44. * is then converted into visible colors using a tone mapping operator depending
  45. * on average scene brightness.
  46. */
  47. bool hdr = true;
  48. };
  49. }