PeriDyno 1.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
FXAA.cpp
Go to the documentation of this file.
1#include "FXAA.h"
2#include <glad/glad.h>
3#include "Utility.h"
4
5#include "screen.vert.h"
6#include "fxaa.frag.h"
7
8namespace dyno
9{
11 : RelativeContrastThreshold(1.f / 8.f)
12 , HardContrastThreshold(1.f / 16.f)
13 , SubpixelBlendLimit(3.f / 4.f)
14 , SubpixelContrastThreshold(1.f / 4.f)
17 {
20 SCREEN_VERT, sizeof(SCREEN_VERT),
21 FXAA_FRAG, sizeof(FXAA_FRAG));
22 }
23
25 {
26 if (mScreenQuad) {
27 mScreenQuad->release();
28 delete mScreenQuad;
29 }
30 if (mShaderProgram) {
31 mShaderProgram->release();
32 delete mShaderProgram;
33 }
34 }
35
36 void FXAA::apply(int width, int height)
37 {
38 mShaderProgram->use();
39
40 mShaderProgram->setInt("Input", 1); // GL_TEXTURE1
41 mShaderProgram->setVec2("InvTexSize", { 1.f / width, 1.f / height });
42
43 mShaderProgram->setInt("EndpointSearchIterations", EndpointSearchIterations);
44 mShaderProgram->setFloat("RelativeContrastThreshold", RelativeContrastThreshold);
45 mShaderProgram->setFloat("HardContrastThreshold", HardContrastThreshold);
46 mShaderProgram->setFloat("SubpixelBlendLimit", SubpixelBlendLimit);
47 mShaderProgram->setFloat("SubpixelContrastThreshold", SubpixelContrastThreshold);
48
49 mScreenQuad->draw();
50 }
51}
float SubpixelContrastThreshold
Definition FXAA.h:36
float HardContrastThreshold
Definition FXAA.h:34
bool UseHighQualityEndpoints
Definition FXAA.h:38
void apply(int width, int height)
Definition FXAA.cpp:36
Program * mShaderProgram
Definition FXAA.h:42
float SubpixelBlendLimit
Definition FXAA.h:35
Mesh * mScreenQuad
Definition FXAA.h:43
float RelativeContrastThreshold
Definition FXAA.h:33
int EndpointSearchIterations
Definition FXAA.h:37
static Mesh * ScreenQuad()
Definition Mesh.cpp:134
static Program * createProgramSPIRV(const void *vs, size_t vs_len, const void *fs, size_t fs_len, const void *gs=0, size_t gs_len=0)
Definition Shader.cpp:202
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25